使用XCache的Apache PHP,我是否需要优化Apache模块?

时间:2015-01-05 12:00:19

标签: php apache

在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。

1 个答案:

答案 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是​​否是一个好主意。