apache - 如何测量每个事件 Apache 连接的内存使用情况?

标签 apache memory-management

我想测量 Ubuntu 下一个事件 Apache 连接(=线程)的内存消耗。

有没有一个监控工具可以做到这一点? 如果没有,有谁知道 Apache 连接大约需要多少内存?

最佳答案

激活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,具有警报、用户管理、大型网络(并且如果您没有很多时间阅读书籍),恕我直言,Munin 是一个获取监控报告的漂亮工具蛮快。

关于apache - 如何测量每个事件 Apache 连接的内存使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715592/

相关文章:

php - "Class not found"使用 php/silex

php - 如何捕获PHP中的错误

android - 如何使用 ThreadSafeClientConnManager.requestConnection(HttpRoute 路由,对象状态)

java - 管理多个 JVM

c - puts() 如何在没有\0 终止符的情况下找到数组的末尾?

apache - 无法在 Windows 7 上启动 Tomcat 7 服务

php - Apache 2.4 SetEnv 不工作

c - 通过 malloc 生成的数组与不是通过 malloc 生成的数组有何不同

c# - WPF内存问题

c++ - 防止 gcc 中的 std::function 分配内存或增加阈值