我们每天都重新启动 apache 服务器,因为 RAM 使用量达到了极限。
虽然有价值看到这个 serverfault answer,我不认为降低MaxClientsapache 配置是解决未知根问题的方法。
下面的 apache 进程以 MB 为单位出现异常大并且时间很长。这是否意味着存在内存泄漏。这是否意味着我们应该降低 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
Run Code Online (Sandbox Code Playgroud)
然后调查一个单一的过程
$sudo strace -p 20839
Run Code Online (Sandbox Code Playgroud)
只返回这一行,对我来说是神秘的:
restart_syscall(<... resuming interrupted call ...> <unfinished ...>
Run Code Online (Sandbox Code Playgroud)
任何见解?谢谢。
该行意味着当前的系统调用被 strace 中断,并且 strace 要求重新运行它。我认为您正在跟踪的进程正在休眠。
如果 apache 分叉了太多客户端并且服务器开始分页到磁盘,那么您应该降低该MaxClients指令。
最大客户端数 <= (RAM - RSS_all_other_processes)/(apache_process_RSS - apache_SHR) - 1
| 归档时间: |
|
| 查看次数: |
9582 次 |
| 最近记录: |