我的apache配置有问题。现在,nginx作为反向代理坐在apache的前面,提供静态资产,然后将php请求传递给apache。阿帕奇正在使用mod_php。我们确实有用户,但网站增长缓慢,所以我知道事实上Mysql不是罪魁祸首。网站不是数据库重,而是web服务重。
这个网站正在缓慢增长,这个月我们将做大约43万个大学,一次可以有80到230人在上面,但是每秒的请求永远不会超过8人。
Apache似乎保留了内存,大约一周后,这将导致服务器崩溃,并且需要重新启动。服务器是一个linode 8内核,8 GB的ubuntu12.04机器。
这是当前的配置,我们现在使用Pre叉模块:
Timeout 15
KeepAlive Off
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 256
MaxRequestsPerChild 500
</IfModule>
HostnameLookups Off如果你需要更多的信息,请告诉我。从预分叉模块中移开,我们会得到更少的内存使用和更好的性能吗?
发布于 2014-04-15 14:07:14
关于您的容量规划:如何为网站进行负载测试和容量规划?
至于内存泄漏,如果子程序在500个请求后正确终止,则Apache不应该泄漏内存。您的PHP代码(以及它所依赖的库)可能存在细微差别,导致子程序不能正确终止或消耗过多的内存。
尝试定位那些内存使用或创建时间比其他进程大得多/更早的进程。如果您幸运的话,lsof -pPID可能会给您一个提示,但更有可能的是,您前面有一些不愉快的调试。
(当然,这是假设阿帕奇是罪魁祸首--我想当然地认为你以某种方式证明了这一点)
https://serverfault.com/questions/589142
复制相似问题