在Centos 6.5机器中,3个CPU总共9 GHz,8 GB RAM,Plesk 12。 PHP 5.4.36,Apache / 2.2.15,Apache将PHP作为PHP模块运行,XCache 3.2.0。
目前我在热门时间看到180-200个同时访问者。平均每人40-50人次 当前的httpd.conf值:
Timeout 60
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
xcache.ini值:
xcache.size 24M
xcache.count 1
xcache.slots 8K
xcache.var_size 1M
xcache.var_count 1
xcache screenshot 1
xcache screenshot 2
我正在检查我可以做些什么来优化Apache。我检查了top
州,就像这样:
Top results image
请注意,每个Apache进程需要55-100 MB,其中每个httpd进程的共享内存为18米。
我很好奇是否禁用某些Apache模块是好还是坏
因为XCache是否有意义禁用未使用的模块?
或者禁用它们是不合逻辑的,因为在高峰时间系统会创建30-32个httpd进程并且它不需要太多?
目前活跃的apache模块是这样的:screenshot
httpd process' memory, cpu and count graph
编辑:
我重新启动httpd进程,我看到以下值:
top image
请注意,平均httpd进程减少了67 mb到34 mb。
答案 0 :(得分:0)
根据您提供的非常有限的信息,可能会有一些使您的网站更快的内容,但是can't use VIRT, RES and SHRD to measure per process memory usage。
删除不需要的模块对内存使用的影响非常小 - 但这是一种很好的做法,因为它对安全性有很大影响。你是否使用xcache是无关紧要的。
KeepAliveTimeout 15
这太傻了。
由于您的Keepalive已被禁用,因此它无法执行任何操作。如果它们被启用,那么在没有流量的套接字连接上会有很多httpd进程。它应该是最大 3(并且假设您在很慢的连接上有很多客户端)。如果您的站点特别是AJAX,那么在Apache前面使用基于事件的代理。
虽然我对开源软件的多样性表示赞赏,但我怀疑使用PHP 5.6运行xcache是否是一个好主意。