我们每天重新启动一个Apache服务器,因为内存使用量达到了极限。
虽然有价值看到这个服务器故障的答案 ,我不认为在apacheconfiguration降低MaxClients是解决未知的根问题。
下面的apache进程在MB中出现exception大的时间。 这是否意味着有内存泄漏。 这是否意味着我们应该降低MaxRequestsPerChild设置?
见http://www.devside.net/articles/apache-performance-tuning
你能从下面的数据中理解吗?
下面是什么的摘录
$top与M
收益:
20839 www-data 20 0 1008m 359m 22m S 4 4.8 1:52.61 apache2 20844 www-data 20 0 1008m 358m 22m S 1 4.8 1:51.85 apache2 20842 www-data 20 0 1008m 356m 22m S 1 4.8 1:54.60 apache2 20845 www-data 20 0 944m 353m 22m S 0 4.7 1:51.80 apache2
然后用一个单一的过程来调查
$sudo strace -p 20839
只返回这一行,这是神秘的,对我来说:
restart_syscall(<... resuming interrupted call ...> <unfinished ...>
任何见解? 谢谢。
这意味着当前的系统调用被你的strace中断,strace被要求重新运行它。 我认为你正在追踪的过程正在睡觉。
如果apache分叉太多的客户端并且服务器开始分页到磁盘,那么你应该降低MaxClients指令。
MaxClients <=(RAM-RSS_all_other_processes)/(apache_process_RSS – apache_SHR) – 1