- 每天 1,200,000 个请求
- 每天 30,000 <> 个文件
- 5500 个唯一 IP
- WordPress + 缓存
- debian lenny + php + suhosin 补丁 + mysql
- 4GB 内存
- 单 SATA 磁盘
- 英特尔(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz
我正在使用默认的 Apache 配置,但有时会出现僵尸 Apache 进程。
有任何想法吗?
我的配置可以在 pastebin.ca/1934046 上读取。
答案1
您使用的是 prefork MPM 吗? 可能吧,所以我会选择它。
MaxSpareServers
并且StartServers
彼此之间距离太远。另一件事是,查看您启用了哪些模块,然后只启用您需要的模块,这样您的 apache2 进程就会更小:进程越小,意味着在更少的内存中运行更多的进程。
我可以建议你的另一件事是监视你通常拥有的 Apache 进程数并从这里进行调整。如果你总是以低 30 和高 80 运行,你可以让备用服务器保持更高的水平。
另外,查看一下保持活动配置,您可能希望将其MaxKeepAliveRequests
调高,也可能调低KeepAliveTimeout
。如果开始出现太多僵尸,您可以完全关闭保持活动或将请求数设置为一个较慢的数字(这样 Apache 子进程将更快地被回收),但这会对性能造成影响。
无论如何,如果不监控并查看 Apache 或操作系统上是否存在需要解决的瓶颈,就无法准确调整它。查看vmstat
并检查进程数量、它们正在做什么等等,这样您就可以识别瓶颈。