一个朋友在qq问我apache并发优化怎么做,我说网上有文章,服务器设置并发他设置了,但是访问量不是很高的时候就已经死了,简单看了下配置,没有问题,简单推荐下apache还是和linux 配合,win下还是有些需要优化的地方不太好,后来看错误日志,分析出连接后未设置超时时间,本文做个记录。是上线的服务器,打码厚一些。
服务器配置还是不错的 16g+e5620*2

 ’
QQ20190331-141930@2x.png
QQ20190331-141942@2x.png
问题就在这里。

其实我win下的设置不是很懂,也是边谷歌边弄,上线服务器就是多备份了。
QQ20190331-141950@2x.png
根据日志谷歌了一下,没有什么有用的,把php的session开启了也还是存在问题。
下面说下解决方法:
QQ20190331-141956@2x.png
一个是设置并发的。
另一个是设置timeout时间。否则的话存在大量空连接,占用线程。
httpd-default.conf设置
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我们需要调节以下参数:
Timeout 20
该参数为连接超时,缺省的300秒显然太大,缩小该参数就会减少同时连接数,即用户实际占用的线程数,这样就可以起到配合上面ThreadsPerChlid参数的作用。
KeepAlive On
该参数为是否保持活连接,目前网站中一个页面一般会包含多个文件,所以相应用户访问时会有多个请求,因此开启可以提高服务器性能。
MaxKeepAliveRequests 50
该参数为最大的活连接请求数,可以根据网页实际包含的文件数目自行调节。
KeepAliveTimeout 5
该参数为活连接的超时时间,一般只要设置成小于Timeout即可。
这样设置后,Apache在响应请求和防止恶意攻击方面就取得较为平衡的效果,当然由于内存回收机制和进程管理不同,Windows下长期运行 Apache还是不如Unix稳定,因此我们可以让Apache在每天凌晨访问人数少时自动重启一次,以回收资源。用Windows自带的计划任务就可以 简单的实现。这样,我们就使Apache在Windows平台下像Unix一样长期稳定的提供服务了。
ps:最后还是让他写了个定时重启apache的脚本。防止在出现这种情况。

标签: none

添加新评论