linux + apache + mpm_worker + mod_fcgid + php5

我正在使用基于VPS的网站托pipe,发现默认的apache2 + prefork + mod_php对于我的VPS来说太耗费资源以达到可接受的并发性。 (吃RAM)

所以我最近切换到apache2 + mpm_worker + mod_fcgid + php5

以下是我对相关模块的configuration。

<IfModule mpm_worker_module> StartServers 4 MinSpareThreads 10 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 25 MaxClients 200 MaxRequestsPerChild 1000 </IfModule> <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php # Where to look for the php.ini file? DefaultInitEnv PHPRC "/etc/php5/apache2" # Maximum requests a process handles before it is terminated MaxRequestsPerProcess 1000 # Maximum number of PHP processes MaxProcessCount 10 # Number of seconds of idle time before a process is terminated IPCCommTimeout 240 IdleTimeout 240 #Or use this if you use the file above FCGIWrapper /usr/bin/php5-cgi-wrapper .php </IfModule> 

问题是,当负载testing我的网站时,我无法饱和我的服务器CPU。 大量的networking带宽也是可用的。 内存利用率低于我的1GB VPS的20%。 但是加载时间仍然在增加。

我不知道我做错了什么。

我正在缓慢提高50-200个并发请求/连接的数量。 这就是服务器上的负载。

我用iotop来衡量磁盘io。 那里没有什么重要的东西。 在高峰过程中3-5k / sec。

那么,如果它的磁盘IO,我作为一个托pipe的VPS发挥很小的空间。

我只是尝试加载从PHP输出caching的纯HTML文件,以排除任何延迟在PHP的前端。 瓶颈是不是PHP。 图表是一样的。

这应该是一个并发问题!