TranslateProject/translated/tech/20141024 Amazing 25 Linux Performance Monitoring Tools.md
2014-11-01 19:03:52 +08:00

16 KiB
Raw Blame History

25个linux性能监控工具

一段时间以来我们在网上向读者介绍了如何为Linux以及类Linux操作系统配置多种不同的性能监控工具。在这篇文章中我们将罗列一系列使用最频繁的性能监控工具并对介绍到的每一个工具提供了相应的简介链接大致将其划分为两类基于命令行的和提供图形化接口的。

基于命令行的性能监控工具

1. dstat - 多类型资源统计工具

该命令整合了vmstatiostatifstat三种命令。同时增加了新的特性和功能允许你能够看到及时的不同的资源使用情况,从而能够使你对比和整合不同的资源使用情况。通过不同颜色和代码块布局的界面帮助你能够更加清晰容易的获取信息。它同时支持将信息数据导出到cvs格式文件中,从而用其他应用程序打开,或者导入到数据库中。你可以用该命令来监控cpu内存和网络状态随着时间的变化

2. atop - 相比top更好的ASCII码体验

使用ASCII码的命令行工具来显示一个性能监控工具能够记录显示所有进程活动。它不但能够展示每日的系统日志也能够进行长期的进程活动分析同时也能够高亮过载的系统使用资源。它包含了CPU内存交换空间磁盘和网络层的度量指标。使用所用的功能只需在终端运行atop即可。当然你也可以使用交互接口来显示数据并进行排序。

# atop

3. Nmon - 类Unix系统的性能监控

Nmon为Nigel's Monitor缩写,它最早开发用来作为AIX的系统监控工具。它的特征是在线模式,该模式在终端中实时更新监控信息,同时使用光标操作来提高屏幕事件处理效率。使用捕捉模式能够将数据保存为CSV格式,方便进一步的处理和图形化展示。

更多的信息参考我们的nmon性能监控文章

4. slabtop - 显示内核slab缓存信息

个应用能够显示缓存分配器是如何管理Linux内核缓存不同类型的对象的。这个命令类似于top命令区别是它重点实时显示内核slab缓存信息。它能够显示按照不同排序条件来显示最靠前的缓存列表。它同时也能够显示一个以slab层信息填充的统计题头。举例如下

# slabtop --sort=a
# slabtop -s b
# slabtop -s c
# slabtop -s l
# slabtop -s v
# slabtop -s n
# slabtop -s o

更多信息参阅内核slab缓存文章

5. sar - 性能监控和瓶颈检查

sar 命令是为了标准输出在操作系统上所选的累积活动计数器内容信息。该基于计数值和时间间隔参数的审计系统会按照指定的时间间隔输出指定次数的监控信息。如果时间间隔参数为设置为0那么sar命令将会显示系统从开机到当时时刻的平均统计信息。有用的命令如下:

# sar -u 2 3
# sar u f /var/log/sa/sa05
# sar -P ALL 1 1
# sar -r 1 3
# sar -W 1 3

6. Saidar - 简单的统计监控工具

Saidar是一个简单轻量的系统信息监控工具。虽然它无法提供大多性能报表,但是它能够通过一个简短友好的方式显示最有用的系统运行状况数据。你可以很容易地看到up-time, average load,CPU,内存,进程,磁盘和网络接口统计信息。

Usage: saidar [-d delay] [-c] [-v] [-h]

-d Sets the update time in seconds
-c Enables coloured output
-v Prints version number
-h Displays this help information.

7. top - 经典的Linux任务管理工具

作为一个广为认知的Linux工具,top出现在大多数的类Unix操作系统任务管理中。它可以显示当前正在运行的进程的列表同时用户可以按照不同的查询条件对该列表进行排序。它主要显示了系统进程对CPU和内存的使用状况。top可以快速检查是哪个或哪几个进程挂起了你的系统。你可以在这里看到top使用的例子。 你可以在终端输入top来运行它并进入到交互模式

Quick cheat sheet for interactive mode:

    GLOBAL_Commands: <Ret/Sp> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
    SUMMARY_Area_Commands: l, m, t, 1
    TASK_Area_Commands Appearance: b, x, y, z Content: c, f, H, o, S, u Size: #, i, n Sorting: <, >, F, O, R
    COLOR_Mapping: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
    COMMANDS_for_Windows:  -, _, =, +, A, a, G, g, w

8. Sysdig - 系统进程的高级视图

Sasdig是一个能够让系统管理员和开发人员前所未有的洞察其系统行为的监控工具。其开发团队出于改善系统层次的监控方式以及通过提供关于存储,进程,网络和内存子系统的统一有序以及粒度可见的方式来进行错误排查,通过创建系统活动记录文件使得你可以在任何时间轻松分析。

简单例子:

# sysdig proc.name=vim
# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
# sysdig evt.type=chdir and user.name=root
# sysdig -l
# sysdig -L
# sysdig -c topprocs_net
# sysdig -c fdcount_by fd.sport "evt.type=accept"
# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
# sysdig -c topprocs_file
# sysdig -c fdcount_by proc.name "fd.type=file"
# sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
# sysdig -c topprocs_cpu
# sysdig -c topprocs_cpu evt.cpu=0
# sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"
# sysdig evt.type=open and fd.name contains /etc

更多信息 可以在 如何利用sysdig改善系统层次的监控和错误排查

9. netstat - 显示开放的端口和连接

它是Linux管理员使用来显示不同网络信息的工具,如查看什么端口开放和什么网络连接已经建立以及何种进程运行在这种连接之上。同时它也显示了Unix套接字的信息这些套接字在不同的程序中为打开状态。作为大多数Linux发行版本的一部分netstat的许多命令在 netstat和它的不同输出中有详细的描述。最为常用的如下:

$ netstat | head -20
$ netstat -r
$ netstat -rC
$ netstat -i
$ netstat -ie
$ netstat -s
$ netstat -g
$ netstat -tapn

10. tcpdump - 洞察网络包

tcpdump可以用来查看网络连接包的内容。它显示了传输过程中包内容的各种信息。为了使得输出信息更为有用,它允许使用者通过不同的过滤器获取自己想要的信息。可以参照的例子如下:

# tcpdump -i eth0 not port 22
# tcpdump -c 10 -i eth0
# tcpdump -ni eth0 -c 10 not port 22
# tcpdump -w aloft.cap -s 0
# tcpdump -r aloft.cap
# tcpdump -i eth0 dst port 80

你可以找到详细的描述在topdump和捕捉包文章中。

11. vmstat - 虚拟内存统计信息

vmstat是虚拟内存(virtual memory statistics)的缩写,作为一个内存监控工具,它收集和显示概括关于内存进程终端分页I/O阻塞的信息。作为一个开源程序它可以再大部分Linux发行版本中找到包括Solaris和FreeBSD。它用来诊断大部分的内存性能问题和其他相关问题

M更多信息 参考 vmstat命令文章

12. free - 内存统计信息

free是另一个能够在终端中标准输出内存和交换空间使用的命令行工具。由于它的简易它经常用于快速查看内存使用或者是应用于不同的脚本和应用程序中。在这里你可以看到这个小程序的许多应用。几乎所有的系统管理员日常都会用这个工具。:-)

13. Htop - 更加友好的top

Htop基本上是一个top改善版本它能够显示更多的统计信息和更加多彩的方式同时允许你采用不同的方式进行排序它提供了一个用户友好的接口。

你可以找到 更多的信息关于htop和top的比较文章中。

14. ss - 更现代感的网络管理替代工具

ssiproute2包的一部分。iproute2趋向于替代一整套标准的Unix网络工具组件,它曾经用来完成网络接口配置路由表和管理ARP表任务。ss工具用来存储套接字统计信息也能够类似netstat一样显示信息同时也能显示更多TCP和状态信息。一些例子如下

# ss -tnap
# ss -tnap6
# ss -tnap
# ss -s
# ss -tn -o state established -p

15. lsof - 列表显示打开的文件

lsof命令,意为“list open files”, 用于在许多类Unix系统中显示所有打开状态的文件和打开它们的进程。在大部分Linux发行版和其他类Linux操作系统中系统管理员用它来检查不同的进程打开了哪些文件。你可以在这里找到更多的例子。

# lsof +p process_id
# lsof | less
# lsof u username
# lsof /etc/passwd
# lsof i TCP:ftp
# lsof i TCP:80

你可以找到 更多例子lsof 文章

16. iftop - 类似top的了网络连接工具

iftop是一个基于网络信息的类似top的程序。它能够显示当前时刻按照带宽使用量或者上传或者下载量排序的网络连接状况。它同事提供了下载文件的预估完成时间。

更多信息可以参考网络流量iftop文章

17. iperf - 网络性能工具

iperf是一个网络测试工具,能够创建TCPUDP数据连接和测量该网络能够传输它们的性能。它支持调节关于时间,协议和缓冲等不同的参数。对于每一个测试,它会报告带宽,丢包和其他的一些参数。

如果你想用使用这个工具,可以参考这篇文章: 如何安装和使用iperf

18. Smem - 高级内存报表工具

Smem是一个比较高级的Linux命令行工具,它提供关于系统中已经使用的和共享的实际内存,试图提供一个更为可靠地当前内存使用数据。

$ smem -m
$ smem -m -p | grep firefox
$ smem -u -p
$ smem -w -p

参考我们的文章:Smem更多的例子

图形化或基于Web的性能工具

19. Icinga - Nagios的社区分支版本

Icinga是一个开源免费的网络监控程序作为Nagios的分支它获取了前者现存的大部分功能同时基于这些功能又增加了社区用户要求已久的功能和补丁。

更多信息参考安装和配置lcinga文章.

20. Nagios - 最为流行的监控工具.

作为在Linux上使用最为广泛和流行的监控方案,它有一个守护程序用来收集不同进程和远程主机的信息,这些收集到的信息都通过功能强大的web界面进行呈现。

你可以在 找到更多的信息如何安装nagios

21. Linux process explorer - Linux下的procexp

Linux process explorer是一个Linux下的图形化进程浏览工具。它能够显示不同的进程信息如进程数TCP/IP连接和每一个进程的性能指标。作为Windowsprocexp在Linux的替代品是由Sysinternals开发的,其目标是相比topps用户体验更加的友好。

查看 linux process explorer 文章获取更多信息。

22. Collectl - 性能监控工具

你可以既可以通过交互的方式使用这个性能监控工具,也可以用它产生报表并通过web服务器来访问它在磁盘上的数据。它以一种易读易管理的文件格式,记录了CPU磁盘内存网络网络文件系统进程slabs等统计信息于。

更多 关于Collectl的文章

23. MRTG - 经典网络流量监控图形工具

这是一个采用rrdtool的提供给用户图形化流量监控工具。作为最早的提供图形化界面的工具它被广泛应用在类Unix的操作系统中。查看我们关于如何使用MRTG的文章获取更多关于安装和配置的信息。

24. Monit - 简单易用的监控工具

Monit是一个用来监控进程系统加载文件系统目录文件等的开源的Linux工具。你能够让它自动化维护和修复也能够在运行错误的情景下执行动作或者发邮件报告提醒系统管理员。如果你想要用这个工具你可以查看如何使用Monit的文章

25. Munin - 为服务器提供监控和提醒服务

作为一个网络资源监控工具,*Munin能够帮助分析资源趋势查看弱节点以及导致产生性能问题的原因。开发此软件的团队系统它能够易用和用户体验友好。该软件是用Perl开发的同时采用rrdtool来绘制图形,使用了web接口**进行呈现。开发人员推广此应用时声称“插件化和易用目前已有500多个监控插件可结合使用。

更多信息可以在关于Munin的文章


via: http://linoxide.com/monitoring-2/linux-performance-monitoring-tools/

作者:Adrian Dinu 译者:译者ID 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出