今天,我们的一台服务器的负载远高于平均水平,并且一直高于正常水平。我们的服务器管理员正在确保一切正常运行,但这让我怀疑服务器今天是否太忙了。这反过来又让我思考,有没有办法获得一份合理准确的报告,说明整个服务器上所有网站的活跃网站访问者数量?
所有网站都是在 Centos 4.8 上的 apache 2 上运行的 PHP/MySQL - 显然我们确实为每个网站配备了 google analytics / awstats / webaliser 之类的东西,但我只是想知道是否有可以运行的命令可以为我们提供服务器上的活跃用户统计信息?也许可以分析过去 x 分钟内活跃会话的所有会话文件?
答案1
如果您在 apache 中启用 mod_status,您可以访问一个页面,该页面将为您提供有关活动进程数、空闲进程数、它们正在处理的内容、每秒的访问次数和容量的统计信息。
http://httpd.apache.org/docs/2.0/mod/mod_status.html
如果你使用 munin 等监控框架(http://munin.projects.linpro.no/),您可以随时间查询页面并存储结果。这将为您提供随时间变化的负载图形显示,以查看是否有任何尖峰与盒子上的更高负载相关。
答案2
另一种方法是使用阿帕奇. 这是一个类似顶部,显示 Apache 信息,包括每秒请求数、每秒字节数、最受欢迎的 URL 等。