如何衡量每个活动Apache Connection的内存使用情况?

时间:2011-01-17 16:45:22

标签: apache memory-management

我想在Ubuntu下测量一个活动Apache连接(= Thread)的内存消耗。

是否有能够执行此操作的监控工具? 如果没有,是否有人知道Apache连接大致需要多少内存?

2 个答案:

答案 0 :(得分:6)

激活mod_status模块,您将在/ server-status页面上获得报告,/server-status?q=auto上有一个更易解析的版本。如果您启用 ExtendedStatus On ,您将获得有关进程和线程的大量信息。

这是监控工具用于跟踪大量统计信息参数的页面,因此您肯定会找到所需的页面(编辑,如果它不是内存 ......)小心这个文件的安全/访问设置,它是检查服务器如何响应DOS的好工具: - )

关于内存你必须注意Apache喜欢内存,每个进程的内存多少取决于很多东西(加载的模块数量 - 检查你需要你拥有的所有内容,虚拟主机的数量等)。但是在稳定的配置上它不会移动很多(除非你使用具有高内存限制使用的PHP脚本......)。如果发现内存泄漏,请尝试限制每个进程的请求数 MaxRequests (apache会杀死他并添加一个新进程)。

编辑:实际上服务器状态中没有很多内存信息。关于监视工具,使用SNMP MIB-II的任何工具都可以跟踪每个进程的内存使用情况,如果你有一个snmpd守护进程,可以使用不同子进程(Cacti,Nagios,Munin等)的平均值/最高/最低值。检查此excellent Munin example。这不是每个apache孩子的跟踪,但它会让你知道你可以用这些工具跟踪什么。如果你不需要一个完整的监控系统,如Nagios或Centreon,有警报,用户管理,大型网络(如果你没有很多时间阅读书籍),牟尼是一个很好的工具来获取监控报告蛮快。

答案 1 :(得分:0)

我不确定是否有任何工具可以做到这一点。但你可以自己估算一下。启动apache并检查它在没有任何会话的情况下使用了多少内存。比创建大量会话并再次检查它使用了多少内存。

您可以使用JMeter创建不同的工作负载。