你值得拥有:25个Linux性能监控工具

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

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

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

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

这个使用ASCII码显示方式的命令行工具是一个显示全部进程活动的性能监控工具。它能够展现每日的系统日志以进行长期的进程活动分析,并高亮显示过载的系统使用资源。它包含了CPU,内存,交换空间,磁盘和网络层的度量指标。全部这些功能只需在终端运行atop便可。数据库

  1. # atop

固然你也可使用交互界面来显示数据并进行排序。小程序

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

Nmon是Nigel's Monitor缩写,它最先开发用来做为AIX的系统监控工具。若是使用在线模式,可使用光标键在屏幕上操做实时显示在终端上的监控信息。使用捕捉模式可以将数据保存为CSV格式,方便进一步的处理和图形化展现。缓存

更多的信息参考咱们的nmon性能监控文章服务器

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

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

  1. # slabtop --sort=a
  2. # slabtop -s b
  3. # slabtop -s c
  4. # slabtop -s l
  5. # slabtop -s v
  6. # slabtop -s n
  7. # slabtop -s o

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

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

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

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

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

Saidar是一个简单轻量的系统信息监控工具。虽然它没法提供大多性能报表,可是它可以经过一个简单明了的方式显示最有用的系统运行情况数据。你能够很容易地看到运行时间、平均负载、CPU、内存、进程、磁盘和网络接口统计信息。

  1. Usage: saidar [-d delay] [-c] [-v] [-h]
  2.  
  3. -d 设置更新时间(秒)
  4. -c 彩色显示
  5. -v 显示版本号
  6. -h 显示本帮助

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

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

  1. 交互模式的一些快捷操做:
  2.  
  3. 全局命令: <回车/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
  4. 统计区的命令: l, m, t, 1
  5. 任务区的命令:
  6. 外观: b, x, y, z 内容: c, f, H, o, S, u 大小: #, i, n 排序: <, >, F, O, R
  7. 色彩方案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
  8. 窗口命令: -, _, =, +, A, a, G, g, w

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

Sysdig是一个可以让系统管理员和开发人员之前所未有方式洞察其系统行为的监控工具。其开发团队但愿改善系统级的监控方式,经过提供关于存储,进程,网络和内存子系统的统一有序以及粒度可见的方式来进行错误排查,并能够建立系统活动记录文件以便你能够在任什么时候间轻松分析。

简单例子:

  1. # sysdig proc.name=vim
  2. # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
  3. # sysdig evt.type=chdir and user.name=root
  4. # sysdig -l
  5. # sysdig -L
  6. # sysdig -c topprocs_net
  7. # sysdig -c fdcount_by fd.sport "evt.type=accept"
  8. # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
  9. # sysdig -c topprocs_file
  10. # sysdig -c fdcount_by proc.name "fd.type=file"
  11. # sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
  12. # sysdig -c topprocs_cpu
  13. # sysdig -c topprocs_cpu evt.cpu=0
  14. # sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"
  15. # sysdig evt.type=open and fd.name contains /etc

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

 

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

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

  1. $ netstat | head -20
  2. $ netstat -r
  3. $ netstat -rC
  4. $ netstat -i
  5. $ netstat -ie
  6. $ netstat -s
  7. $ netstat -g
  8. $ netstat -tapn

10.tcpdump - 洞察网络封包

tcpdump能够用来查看网络链接封包内容。它显示了传输过程当中封包内容的各类信息。为了使得输出信息更为有用,它容许使用者经过不一样的过滤器获取本身想要的信息。能够参照的例子以下:

  1. # tcpdump -i eth0 not port 22
  2. # tcpdump -c 10 -i eth0
  3. # tcpdump -ni eth0 -c 10 not port 22
  4. # tcpdump -w aloft.cap -s 0
  5. # tcpdump -r aloft.cap
  6. # 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和状态信息。一些例子以下:

  1. # ss -tnap
  2. # ss -tnap6
  3. # ss -tnap
  4. # ss -s
  5. # ss -tn -o state established -p

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

lsof命令,意为“list open files”, 用于在许多类Unix系统中显示全部打开的文件及打开它们的进程。在大部分Linux发行版和其余类Linux操做系统中系统管理员用它来检查不一样的进程打开了哪些文件。

  1. # lsof +p process_id
  2. # lsof | less
  3. # lsof –u username
  4. # lsof /etc/passwd
  5. # lsof –i TCP:ftp
  6. # lsof –i TCP:80

你能够找到 更多例子 在lsof 文章

16.iftop - 相似top的了网络链接工具

iftop是另外一个基于网络信息的相似top的程序。它可以显示当前时刻按照带宽使用量或者上传或者下载量排序的网络链接情况。它同时提供了下载文件的预估完成时间。

更多信息能够参考网络流量iftop文章

 

17.iperf - 网络性能工具

iperf是一个网络测试工具,可以建立TCPUDP数据链接并在网络上测量它们的传输性能。它支持调节关于时间,协议和缓冲等不一样的参数。对于每个测试,它会报告带宽,丢包和其余的一些参数。

若是你想用使用这个工具,能够参考这篇文章: 如何安装和使用iperf

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

Smem是最早进的Linux命令行工具之一,它提供关于系统中已经使用的和共享的实际内存大小,试图提供一个更为可靠的当前内存使用数据。

  1. $ smem -m
  2. $ smem -m -p | grep firefox
  3. $ smem -u -p
  4. $ smem -w -p

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

2、图形化或基于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多个监控插件能够“即插即用*”。

相关文章
相关标签/搜索