Linux / Unix上的性能监视

我运行了几个Windows服务器和(Debian和Ubuntu)Linux和AIX服务器。

我想持续监视这些系统上的性能,以便轻松识别瓶颈,并概述服务器上的一般活动。

在Windows上,我使用Windows性能监视器(perfmon)。 我设置了这些计数器:

对于瓶颈:

  • 处理器利用率:系统\处理器队列长度
  • 内存利用率:Memory \ Pages Input / Sec
  • 磁盘利用率:PhysicalDisk \ Current Disk Queue Length \ driveletter
  • networking问题:networking接口\输出队列长度\名称

对于一般活动:

  • 处理器利用率:Processor \%Processor Time_Total
  • 内存利用率:Process \ Working Set_Total(或每个特定的进程)
  • 内存利用率:内存\可用MBytes
  • 磁盘利用率:PhysicalDisk \ Bytes / sec_Total(或每个进程)
  • networking使用率:networking接口\字节总数/秒名称

(有关这些计数器的select的更多信息: 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不允许监视这些完全相同的措施。 是的,我应该select哪些,为什么?

如果nmon不是用于这个的工具,那么你推荐什么?

查看基本的系统度量标准并不能很好地显示性能。 它可以指示性能如何受到限制 – 但是如果要测量应用程序的性能,那么您确实需要查看实际事务。

无论如何,测量性能的工具还没有结束。 我用nagios。 它在趋势/容量pipe理方面有点欠缺,但在报告,上报,故障隔离和添加自定义脚本(如果要测量交易时需要这些脚本)方面非常灵活。 当然,有些探针可以涵盖MSWindows和Linux所列出的所有指标。

我喜欢munin,因为它很容易安装和使用。 (apt-get安装munin munin-node)

我们使用Nagios进行基本监控,使用Graphite进行性能监控。 Graphite是一个非常可扩展的解决scheme。 结合钻石插件,你几乎可以测量任何东西,没有太多的努力。

http://graphite.wikidot.com/ https://github.com/BrightcoveOS/Diamond 

有很多不错的select,其中一些是F / OSS(一些F / OSS支持合同可用,一些是完全商业化的。

我用自己的脚本(基于此 )使用http://collectd.org/从rrd文件中得到的数据中绘制漂亮的图片,并向我发送偶尔的电子邮件。 虽然(我只监视几台机器),但这可能不太适合你。

对于更大的安装,你可能需要像Zabbix (另一个开源选项,但被认为比collectd更“企业级”)。

你可以在http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systemsfind一个完整的列表。

一般来说,我有一些跟踪系统pipe理员的步骤来跟踪我使用的所有服务器。 系统命令如top,free -m,vmstat,iostat,iotop,sar,netstat等等。当你分析/debugging一个问题的时候,没有什么东西可以接近这些linux实用程序。 这些命令可以让您清楚地了解服务器内部的运行情况

SeaLion :Agent还执行上面提到的所有命令和自定义命令。 这些命令的输出可以在非常有用的时间线上访问。 当您在数百台服务器上工作时,此工具非常方便,因为安装非常简单明了。 而它的免费! 在这里输入图像说明

Nagios :它是所有监视/警报工具的首选。 这是非常可定制的,但很难为初学者设置。 虽然有一些nagios插件。

服务器密度 :基于云计算的付费服务,收集重要的Linux指标,并使用户能够编写自己的插件。

新的遗物,Zabbix和穆宁是其他一些知名的服务。

我之前遇到过类似的问题 。 你可以看看其他答案是否有帮助。