我是服务器管理的新手,我有一个拥有许多用户和动态内容的网站,以及一个拥有 2GB RAM 和一个良好多核 CPU 的虚拟服务器。但服务器同时只能为 8 个用户提供服务,如果有更多的用户请求页面,那么他们就必须等待,这真的很烦人。我知道 apache2.conf 设置不正确,但我不知道如何正确发送它们。
我猜测这些是来自 apache2.conf 的相关行:
KeepAlive On
MaxKeepAliveRequests 5
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 60
MaxRequestsPerChild 0 </IfModule>
<IfModule mpm_itk_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 60
MaxRequestsPerChild 0 </IfModule>
<IfModule mpm_worker_module>
StartServers 1
MinSpareThreads 1
MaxSpareThreads 4
ThreadLimit 64
ThreadsPerChild 25
MaxClients 60
MaxRequestsPerChild 0 </IfModule>
<IfModule mpm_event_module>
StartServers 1
MaxClients 60
MinSpareThreads 1
MaxSpareThreads 4
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0 </IfModule>
当一些用户在线时它看起来像这样:
5945 web0 16 0 207m 44m 8200 S 8 2.2 0:00.24 php-cgi
5947 web0 21 0 207m 44m 8200 S 6 2.2 0:00.19 php-cgi
5946 web0 15 0 207m 44m 8200 S 8 2.2 0:00.23 php-cgi
5950 web0 16 0 207m 44m 8200 S 7 2.2 0:00.22 php-cgi
5956 web0 18 0 184m 25m 8132 R 4 1.3 0:00.11 php-cgi
5958 web0 18 0 172m 12m 7200 R 1 0.6 0:00.03 php-cgi
1344 root 15 0 89176 4516 2136 S 0 0.2 0:02.68 apache2
5611 www-data 15 0 89836 4452 1424 S 0 0.2 0:00.47 apache2
5454 www-data 15 0 89704 4420 1424 S 1 0.2 0:00.49 apache2
5927 www-data 15 0 89840 4416 1412 S 0 0.2 0:00.03 apache2
5892 www-data 15 0 89840 4400 1424 S 1 0.2 0:00.04 apache2
5916 www-data 15 0 89704 4304 1428 S 0 0.2 0:00.01 apache2
5546 www-data 15 0 89516 4260 1424 S 0 0.2 0:00.47 apache2
5893 www-data 15 0 89516 4248 1412 S 1 0.2 0:00.10 apache2
5570 www-data 15 0 89484 4228 1424 S 0 0.2 0:00.43 apache2
5689 www-data 15 0 89484 4224 1424 S 1 0.2 0:00.32 apache2
5538 www-data 15 0 89484 4220 1424 S 1 0.2 0:00.63 apache2
5879 www-data 16 0 89484 4220 1424 S 0 0.2 0:00.04 apache2
5910 www-data 15 0 89484 4212 1412 S 1 0.2 0:00.06 apache2
5796 www-data 15 0 89476 4208 1412 S 1 0.2 0:00.25 apache2
5769 www-data 16 0 89484 4204 1412 S 0 0.2 0:00.21 apache2
5926 www-data 15 0 89484 4200 1412 S 0 0.2 0:00.02 apache2
有人能给我一些关于如何纠正设置的建议吗?提前谢谢了。
答案1
问题不在于 Apache,似乎您内存不足 - 根据您的服务器描述。尝试优化您的 PHP 脚本并使用操作码缓存,如 APC/Xcache。只需确认一下,运行“sar -r”并查看输出。