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