apache性能问题

apache性能问题

Linux  2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux

内存4G,
4CPU
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 10
cpu MHz         : 3001.532
cache size      : 2048 KB

apache 2.2,worker模式

<IfModule mpm_worker_module>
    StartServers         5
    MaxClients         700
    MinSpareThreads     25
    MaxSpareThreads      50
    ServerLimit         15
    ThreadsPerChild    50
    MaxRequestsPerChild   0
</IfModule>

配置里,我设定的最大进程数为15,apache能够维持的很好,在夜间,用户数比较多,工作进程长时间维持在15个当用户数进一步猛增后,进程数开始失控,最多时达到25个,最大连接数也没有任何效果!


原来还遇到一种情况,当时配置是这样:
<IfModule mpm_worker_module>
    StartServers         5
    MaxClients         5000
    MinSpareThreads     45
    MaxSpareThreads      100
    ServerLimit         150
    ThreadsPerChild    50
    MaxRequestsPerChild   0
</IfModule>

当用户数比较多时,进程数达到150多个,这个时候,网络流量没有了,进程好像是不工作了,长时间处于停滞状态,手工强行重启才能解决问题.

请高手指点迷津!谢谢!
总感觉worker模式用的问题挺多,关注一下
另外补充一下:

当用户数比较多时,进程数达到150多个,这个时候,网络流量没有了,进程好像是不工作了,长时间处于停滞状态,手工强行重启才能解决问题.

--------------------------------------------------
当时系统的cpu被耗完
单个进程的内存占了多少?
apache死掉的哪次,忘了把内存消耗的情况记录下来,据平时观察,内存应该不是问题.
因为常驻内存基本上都只有几M
ThreadsPerChild 还是建议用25吧。多了可能导致不稳定
我就是怕ThreadsPerChild设置太小会增大系统开销呀
我倒是觉得在MaxClients参数保持5000不变的情况下
ServerLimit   参数降低      
ThreadsPerChild    稍微提高,整体性能会好一点,不知道我的意见对不对?
我也是这么认为的,呵呵,linux中进程增加,必然会增大系统开销,而同一进程中的线程增大,只会增大线程部分的开销,进程中的内存是共享的,只不过存在共享变量互斥的问题,但是我认为,HTTP请求的响应速度没必要哪么高,所以互斥的影响是可以忍受的,而在文件缓存的利用上就减少了不小的开销!