Apache PHP with XCache,我需要优化 Apache 模块吗?


Apache PHP with XCache, do I need to optimize Apache modules?

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

x缓存.ini值:

xcache.size  24M
xcache.count 1
xcache.slots    8K
xcache.var_size 1M
xcache.var_count    1

x缓存截图 1
x缓存截图 2

正在检查我还能做些什么来优化 Apache 。我检查了top状态,它是这样的:
热门结果图片
请注意,每个 Apache 进程需要 55-100 mb,其中每个 httpd 进程的共享内存为 18m。

我很好奇禁用某些 Apache 模块是好是坏。
因为XCache禁用未使用的模块有意义吗?
或者禁用它们不合逻辑,因为在高峰时段系统会创建 30-32 个 httpd 进程并且不需要太多?
目前活跃的 apache 模块是这样的:截图

httpd 进程的内存、CPU 和计数图

编辑:
我重新启动了httpd进程,并看到以下值:顶部图像
请注意,平均 httpd 进程减少了 67 mb 到 34 mb。

从您提供的非常有限的信息来看,可能有一些事情可以使您的网站运行得更快,但您不能使用 VIRT、RES 和 SHRD 来衡量每个进程的内存使用情况。

删除不需要的模块对内存使用的影响非常小 - 但很好的做法,因为它对安全性有很大的影响。您是否使用 xcache 无关紧要。

 KeepAliveTimeout 15

这太愚蠢了。

由于您的保持连接被禁用,因此它不会执行任何操作。如果启用它们,您将有很多 httpd 进程挂在套接字连接上,没有流量。它最多应该为 3(假设您有很多客户端的连接速度非常慢)。如果您的网站特别重 AJAX,请在 Apache 前面使用基于事件的代理。

虽然我赞赏开源软件的多样性,但我会质疑使用 PHP 5.6 运行 xcache 是否是一个好主意。