如果对你来说太肤浅的话,很抱歉提出这样的问题。考虑到下面的信息,您将如何配置httpd.conf?
当服务器繁忙时,页面的加载时间达到30秒。
Xeon 3220 / 8GB内存/ 2x250GB SATAII /10 64/1 1GiGE /8 IPS (SoftLayer),CentOS 5(64位) Plesk 9.5
Linux server.x.com 2.6.18-274.17.1.el5 #1 SMP Tue Jan 10 17:25:58 EST 2012 x86_64 GNU/Linux
服务器上的站点平均每天的浏览量约为50万次,平均每天可访问200 on。据http://whos.amung.us/stats/称,当服务器繁忙时,大约有1500名在线访问者。
top - 11:15:08 up 23 days, 12:21, 1 user, load average: 0.30, 1.09, 1.84
Tasks: 453 total, 1 running, 452 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.9%us, 2.8%sy, 0.0%ni, 90.3%id, 3.7%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 8165772k total, 8065268k used, 100504k free, 348884k buffers
Swap: 1052248k total, 208k used, 1052040k free, 6466136k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15573 mysql 15 0 601m 80m 4520 S 35.1 1.0 2026:37 mysqld
19381 apache 15 0 307m 15m 3312 S 1.0 0.2 0:02.73 httpd
13230 apache 15 0 307m 15m 3296 S 0.7 0.2 0:03.74 httpd
14152 apache 15 0 307m 15m 3284 S 0.7 0.2 0:03.91 httpd
16147 apache 15 0 307m 15m 3296 S 0.7 0.2 0:03.14 httpd
16957 apache 15 0 307m 15m 3292 S 0.7 0.2 0:03.03 httpd Timeout 60
KeepAlive On
MaxKeepAliveRequests 300
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>发布于 2012-02-18 20:39:22
需要考虑的事项:
httpd进程使用的内存量(从输出中大约使用300 of )和机器的内存量。彻底检查httpd.conf并删除任何不必要的模块以减少内存占用将是一个好主意。一旦您这样做了,您可以开始逐步提高MaxClients和ServerLimit。
您也希望提高StartServers、MinSpareServers和MaxSpareServers,但是再次逐步地这样做,并在每次更改之后对内存使用和站点性能进行一段时间的监视。
其他需要考虑的事情是将像清漆这样的东西放在Apache前面,或者像费尔南多建议的那样。
发布于 2012-02-18 18:37:20
如果可能,尝试切换到另一个try服务器,如Nginx或Lighttpd。Apache很棒,但是通常它不能很好地处理繁忙的网站。
如果你不能,没问题。以下是一些可以帮助你的小窍门:
如果应用程序不依赖于日志文件,并且使用Analytics或其他服务进行统计,则可以禁用日志。您将看到I/O下降,因为apache不必在磁盘上写入所有请求。
我更喜欢APC,因为它安装简单,稳定,并将很快成为PHP的一部分。要安装它,只需运行:
pecl install apc它们将以下行添加到php.ini中:
extension="apc.so"重新启动您的and服务器,并观察负载下降。
更改为员工或事件MPM在某些原因上会有所帮助。这取决于您所提供的文件类型。我看到了一些情况,在这种情况下,负载下降了,而其他人作为前置叉运行,或者工人并没有产生很大的影响。
注意:如果您更改了worker,并且将其作为DSO模块运行,则可以破坏PHP。先看看这个。
https://serverfault.com/questions/361501
复制相似问题