首页产品介绍产品下载学习交流市场与合作成功案例客户服务关于我们

您所在的位置: 首页 > 知识培训 > 正文
搜索:

公司、企业网站包
医院网站包
大学类网站包
政务公开类网站包
机关、企业党委网站..
信息中心网站包

        更多>>

VSB业务咨询

VSB在线技术支持

 
网站平台性能优化
2008-11-14 09:45  

    网站管理平台应用一段时间后,访问后台速度正常,访问网站速度很慢;重起后速度正常,一段时间后速度变慢。

这个问题是由于和系统安装的杀毒软件、网络底层软件冲突造成的,出现这种错误时会导致apache变慢,解决方法是修改apache的配置文件

Apache 关闭 AcceptEx() ,这个在Windows平台下适用

方法是在 httpd.conf 内加入 Win32DisableAcceptEx
    Win32DisableAcceptEx
顾名思义就是在 Windows 下关掉 AcceptEx() 功能的指令。至於 AcceptEx() 这个东西是什么,可以参考 Apache 的官方网页:
    http://httpd.apache.org/docs-2.0/mod/mpm_winnt.html#win32disableacceptex


    主要是说这 AcceptEx() Microsoft WinSock v2 API 一组提升网络效率 API 中的指令。而且在 Windows 上似乎蛮有可能出问题的。

    注:可能为了效能还是预设为开啟 AcceptEx()

    如果无预警的发生问题,可能是 Windows Update 或是防火墙、防毒软体更新了某些网路原件,造成 Microsoft WinSock v2 API 动作不正常,这时可以把这个功能先给关掉。

    依照官方说明 Win32DisableAcceptEx 这个功能,只有 2.0.49 版以后的才可以使用,所以我猜测 AcceptEx() 这个指令大概也是 2.0.49 才会开始支援(目前最新的就是 2.0.49)

    关掉 AcceptEx() 的方式只要在 httpd.conf 找到 <IfModule mpm_winnt.c> 区段,加入 Win32DisableAcceptEx 就可以了。

<IfModule mpm_winnt.c>
Win32DisableAcceptEx #
加入这一行
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>

    然后重新启动动 Apache指定的网络名不再可用再也不出现了

 

    重起后,error.log不再出现错误,但是访问仍然会变慢,因此卸载了自带的杀毒软件(趋势杀毒,带防火墙),然后换用win2003自带的防火墙,打开808080和远程控制,重起电脑

 

    问题似乎没有改善,而且log文件里面提示apache的线程数不够,因此修改了http.conf文件

 

<IfModule mpm_winnt.c>
Win32DisableAcceptEx #
加入这一行
ThreadsPerChild 1000
MaxRequestsPerChild 0

</IfModule>

    修改完后重起apache,没有再出现变慢的情况

    由于服务器的内存够大,因此顺带优化了一下tomcat的内存占用

执行tomcat\bin\Tomcat.exe

java选项中,把最小内存、最大内存占用由 256MB, 512MB 调整为1024MB1024MB

然后重起tomcat

重起服务无法解决,应该是windows系统资源被耗尽,而且很可能不是 apachetomcat耗尽的(重起服务会释放),所以从以下三个角度重新优化系统

       远程看到服务器上又安装了趋势杀毒的网络版,而且防火墙是打开状态——我已经打开了windows2003的防火墙,会不会造成重复和冲突?由于是网络版,无法在本机配置,所以就没有动

    关于Win32DisableAcceptEx这个参数:

    如果加上这个参数,会解决error.log里面的错误情况,但是一方面会造成apache效能降低,另一方面造成apache内存占用过大。

    有测试表明,打开这个参数,同时配上200个线程,apache的最大内存占用会超过2G,因此有人建议打开这个参数的情况下线程数要小于200。而保证访问速度,线程数设为了1000,有可能会造成资源不足。

    因此,在线程数设为1000的情况下去掉了这个参数,经过几个小时的观察,在error.log里没有发现指定的网络名不再可用这个错误,看来这个错误的出现与线程过小有一定关系;去掉这个参数后,apache的内存不再无限制的增长。

    由于apache的线程数增加,但是tomcat的线程数没有经过调整,造成了apachetomcat间的瓶颈,因此对tomcat做了以下优化

    打开 tomcat\conf\server.xml文件,找到

<Connector port="8009" enableLookups="false" redirectPort="8443"

      debug="0" protocol="AJP/1.3" />

改为

       <Connector port="8009" enableLookups="false" maxThreads="500"

          minSpareThreads="400" maxSpareThreads="450" redirectPort="8443"

          debug="0" protocol="AJP/1.3" />

     然后重起tomcat即可

     maxThreads:最大线程数;tomcat这个Connector上最多用的线程数

       minSpareThreads:最小保留线程数;初始化的线程数

       maxSpareThreads:最大保留线程数;超过这个线程就开始尝试释放

 

        通过调整线程就要可以消除apachetomcat间的瓶颈

上一条:网站如何能更明确的表现自身优势?
下一条:WEB标准
关闭窗口

 

  相关文章

 

 
VSB2008中标西安广播电视大学项目
祝贺大连代理商喜签山西长治市政府网站群门户项目
祝贺北京代理商喜签北京理工大学商学院网站群门户项目
祝贺广州代理商喜签韶关汽车集团网站群门户项目
使用VSB做好的网站如何上传到自己的域名中

 

许可协议 | 网站地图 | 友情链接

西安博达软件有限公司版权所有 © 2000-2008 陕ICP备05006923号
本站所有内容由VSB2008网站内容管理系统制作