常用Linux性能监控工具

dstat

安装方式 yum install -y dstat

直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息

分组分组含义及子项字段含义
CPU状态CPU的使用率。显示了用户占比,系统占比、空闲占比、等待占比、硬中断和软中断情况。
磁盘统计磁盘的读写,分别显示磁盘的读、写总数。
网络统计网络设备发送和接受的数据,分别显示的网络收、发数据总数。
分页统计系统的分页活动。分别显示换入(in)和换出(out)。
系统统计统计中断(int)和上下文切换(csw)。

参数

-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
-d:显示磁盘读写数据大小。
-D hda,total:include hda and total。
-n:显示网络状态。
-N eth1,total:有多块网卡时,指定要显示的网卡。
-l:显示系统负载情况。
-m:显示内存使用情况。
-g:显示页面使用情况。
-p:显示进程状态。
-s:显示交换分区使用情况。
-S:类似D/N。
-r:I/O请求情况。
-y:系统状态。
--ipc:显示ipc消息队列,信号等信息。
--socket:用来显示tcp udp端口状态。
-a:此为默认选项,等同于-cdngy。
-v:等同于 -pmgdsc -D total。
--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。

<br/>

atop

安装方式 yum install -y atop

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

使用手册

<br/>

nmon

安装方式 yum install nmon

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

<br/>

saidar

安装方式yum install saidar

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

参数含义
-d设置更新时间(以秒为单位)
-c启用彩色输出
-v输出版本号
-h输出帮助信息

<br/>

top

安装方式 不用安装,常见的linux发行版都自带

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

第一行,任务队列信息,同 uptime 命令的执行结果

第二行,Tasks — 任务(进程)

第三行,cpu状态信息

第四行,内存状态

第五行,swap交换分区信息

第六行,空行

第七行以下:各进程(任务)的状态监控

在linux系统中输入man top查看其他帮助信息。

<br/>

sysdig

安装及设置较复杂,但功能强大。

<br/>

netstat

安装方式 不用安装,常见的linux发行版都自带

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

参数释义
-a显示所有socket,包括正在监听的。
-c每隔1秒就重新显示一遍,直到用户中断它。
-i显示所有网络接口的信息,格式“netstat -i”。
-n以网络IP地址代替名称,显示出网络连接情形。
-r显示核心路由表,格式同“route -e”。
-t显示TCP协议的连接情况
-u显示UDP协议的连接情况。
-v显示正在进行的工作。
-p显示建立相关连接的程序名和PID。
-b显示在创建每个连接或侦听端口时涉及的可执行程序。
-e显示以太网统计。此选项可以与 -s 选项结合使用。
-f显示外部地址的完全限定域名(FQDN)。
-o显示与与网络计时器相关的信息。
-s显示每个协议的统计。
-x显示 NetworkDirect 连接、侦听器和共享端点。
-y显示所有连接的 TCP 连接模板。无法与其他选项结合使用。

<br/>

tcpdump

安装方式 不用安装,常见的linux发行版都自带

tcpdump可以用来查看网络连接的封包内容。它显示了传输过程中封包内容的各种信息。

在linux系统中输入man tcpdump查看其他帮助信息。

<br/>

vmstat

安装方式 不用安装,常见的linux发行版都自带

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

在linux系统中输入vmstat -h查看其他帮助信息。

默认输出

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 158372 150852 1307736    0    0     1     9   19    6  1  1 98  0  0

输出说明:

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量

Memory(内存):

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:(现在的Linux版本块的大小为1024bytes)

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。【interrupt】

cs: 每秒上下文切换数。 【count/second】

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。

wa: 等待IO时间

<br/>

free

安装方式 不用安装,常见的linux发行版都自带

free是另一个能够在终端中显示内存和交换空间使用的命令行工具。由于它的简易,它经常用于快速查看内存使用或者是应用于不同的脚本和应用程序中。

在linux系统中输入man free查看其他帮助信息。

<br/>

lsof

安装方式yum install lsof

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

在linux系统中输入man lsof查看其他帮助信息。

<br/>

iftop

安装方式yum install iftop

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

在linux系统中输入iftop -h查看其他帮助信息。

<br/>

iperf

安装方式yum install iperf

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

在linux系统中输入iperf -h查看其他帮助信息。

其他工具

除了以上工具之外,还有很多其他的工具。篇幅限制,就不都列出了,可以自行谷歌。

  • Icinga
  • Nagios
  • Linux process explorer
  • Collectl
  • MRTG
  • Monit
  • Munin
  • Smem
  • ss
  • Htop
  • sar
  • slabtop