![Linux/Unix 上的性能监控](https://linux22.com/image/572722/Linux%2FUnix%20%E4%B8%8A%E7%9A%84%E6%80%A7%E8%83%BD%E7%9B%91%E6%8E%A7.png)
我运行一些 Windows 服务器和(Debian 和 Ubuntu)Linux 和 AIX 服务器。
我希望持续监控这些系统的性能,以便轻松识别瓶颈并概览服务器上的一般活动。
在 Windows 上,我使用 Windows 性能监视器 (perfmon) 来实现此目的。我设置了以下计数器:
对于瓶颈:
- 处理器利用率:系统\处理器队列长度
- 内存利用率:内存\页面输入/秒
- 磁盘利用率:PhysicalDisk\当前磁盘队列长度\驱动器号
- 网络问题:网络接口\输出队列长度\nic 名称
对于一般活动:
- 处理器利用率:处理器\% 处理器时间_总计
- 内存利用率:Process\Working Set_Total(或每个特定进程)
- 内存利用率:Memory\Available MBytes
- 磁盘利用率:PhysicalDisk\Bytes/sec_Total(或每个进程)
- 网络利用率:网络接口\字节总数/秒\nic 名称
(有关选择这些柜台的更多信息,请访问:http://itcookbook.net/blog/windows-perfmon-top-ten-counters)
这确实很有效。它让我可以在一个地方找到最常见的瓶颈。
所以我的问题是,如何在 Linux 服务器上做一些等效的事情(或者非常类似的事情)?
我对 nmon 进行了一些了解(http://www.ibm.com/developerworks/aix/library/au-analyze_aix/) 是一款为 AIX 开发的免费性能监控工具,但也可用于 Linux。但是,我不确定 nmon 是否允许我设置上述计数器。可能是因为 Linux 和 AIX 不允许监控这些完全相同的指标。如果是的话,我应该选择哪一个,为什么?
如果 nmon 不是用于此目的的工具,那么您推荐什么?
答案1
查看基本系统指标并不能很好地反映性能。它可以表明性能受到怎样的限制 - 但如果您想衡量应用程序的性能,那么您确实需要查看实际事务。
无论如何,用于测量性能的工具是无穷无尽的。我使用 nagios。它在趋势/容量管理方面有点欠缺,但在报告、升级、故障隔离和添加自定义脚本方面非常灵活(如果你想测量,你需要这些脚本)你的事务)。当然,有可用的探测器可以覆盖您列出的 MSWindows 和 Linux 的所有指标。
答案2
有许多不错的选择,其中一些是 F/OSS(一些 F/OSS 带有支持合同,一些是完全商业化的)。
我用http://collectd.org/使用我自己的脚本(基于这) 从 rrd 文件中的结果数据绘制漂亮的图形并偶尔给我发送电子邮件。不过这对你来说可能不太实用(我只监控几台机器)。
对于更大的安装,你可能需要类似扎比克斯(另一个开源选项,但被认为比 collectd 更具“企业级”性)。
您可以在以下位置找到完整列表http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems
答案3
我喜欢 munin,因为它易于安装和使用。(apt-get install munin munin-node)
答案4
一般来说,作为系统管理员,我会遵循一些步骤来跟踪我使用的所有服务器。系统命令如 top、free -m、vmstat、iostat、iotop、sar、netstat 等。当你分析/调试问题时,没有什么比这些 Linux 实用程序更重要。这些命令可以让你清楚地了解服务器内部的情况
纳吉奥斯:它是所有监控/警报工具中的佼佼者。它可高度定制,但对于初学者来说很难设置。尽管有一些 nagios 插件。
服务器密度:一种基于云的付费服务,可收集重要的 Linux 指标并让用户能够编写自己的插件。
New Relic、Zabbix 和 Munin 是其他一些知名的服务。
我遇到了一个类似问题早些时候。你可以看看其他答案是否对你有帮助。