专业编程基础技术教程

网站首页 > 基础教程 正文

linux必备的4个命令行系统性能监控工具

ccvgpt 2025-05-27 12:55:35 基础教程 12 ℃

Linux的命令行工具是非常强大的,它们能够为我们提供详细的系统信息和性能指标。这些工具可以帮助我们深入了解系统的运行情况,以便更好地进行调整和优化。在系统性能监控方面,命令行工具也是非常必要的,因为它们能够提供更精细的监控指标和更丰富的监控数据。在本文中,我们将介绍一些常用的Linux命令行工具,包括nmon、iostat、sar和vmstat,并且我们将说明如何利用这些工具进行系统性能监控。

nmon

nmon是一种功能非常强大的监控工具,能够提供很多有用的监控指标。

linux必备的4个命令行系统性能监控工具

  • 优点:可以实时显示多个系统指标,如CPU、内存、磁盘、网络等;可以将监控数据保存为文件,方便后续分析;支持多种操作系统,如Linux、AIX、Solaris等;界面友好,操作简单。
  • 缺点:不能显示历史数据,只能显示当前状态;不能对数据进行统计和图形化展示;不能监控应用层的性能指标,如数据库、Web服务器等。
  • 适用范围:适合用于快速查看系统的整体性能状况,或者定期收集系统的性能数据。

以下是一些示例输出:

----------------------------------------------- 一分钟平均值 --------------------------------------------
DISKREAD    DISKWRITE       DISKBUSY     NETIN     NETOUT      MEMUSED      SWAPOUT       CPU
sda          sda          util     read     writ    in  out     used  buff  cach   si   so    us  sy  id
0.00         0.00         0.00     0.00    0.00    0.00  0.00   15.3G 113.7M  1.0G  0.0  0.0   1   0  99

在这个例子中,监控了磁盘读写、磁盘使用率、网络输入输出、内存使用率、交换空间使用情况和CPU使用率等指标,以一分钟的平均值的形式展示。

其中,DISKREAD和DISKWRITE分别代表磁盘读和写的速度,DISKBUSY表示磁盘的忙碌度。NETIN和NETOUT表示网络的输入和输出速度。MEMUSED和SWAPOUT分别表示内存和交换空间的使用情况。CPU则表示CPU的使用情况,us、sy和id分别代表用户态CPU、系统态CPU和CPU空闲率。

iostat

iostat是一种监控磁盘IO性能的工具,能够提供很多有用的监控指标,包括传输率、读写速度等。

  • 优点:可以显示多种系统指标,如CPU、内存、磁盘、网络、进程等;可以显示历史数据,方便分析系统的性能趋势;可以将监控数据保存为文件,方便后续分析;可以对数据进行统计和图形化展示;支持多种操作系统,如Linux、AIX、Solaris等。
  • 缺点:不能实时显示系统指标,只能显示采样后的结果;不能监控应用层的性能指标,如数据库、Web服务器等;界面不够友好,操作较复杂。
  • 适用范围:适合用于分析系统的长期性能变化和问题,或者定期收集系统的性能数据。

以下是iostat命令输出:

Device:            tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda               1.00        32.00         0.00         0.00         32          0          0
sdb               0.00         0.00         0.00         0.00          0          0          0

在这个例子中,监控了磁盘读写情况,包括每秒传输率(tps)、每秒读取的数据量(kB_read/s)、每秒写入的数据量(kB_wrtn/s)、每秒丢弃的数据量(kB_dscd/s)、总读取(kB_read)、总写入(kB_wrtn)、总丢弃(kB_dscd)等。

其中,tps表示每秒钟的传输次数,kB_read/s和kB_wrtn/s分别表示每秒读取和写入的数据量,kB_dscd/s表示每秒丢弃的数据量。kB_read、kB_wrtn和kB_dscd则分别表示总读取、总写入和总丢弃的数据量。

sar

sar是一种功能非常强大的监控工具,能够提供很多有用的监控指标,包括CPU、内存、磁盘IO等系统性能指标,支持多种输出格式,能够满足不同的需求。

  • 优点:可以显示多种系统指标,如CPU、内存、磁盘、网络、进程等;可以显示历史数据,方便分析系统的性能趋势;可以将监控数据保存为文件,方便后续分析;可以对数据进行统计和图形化展示;支持多种操作系统,如Linux、AIX、Solaris等。
  • 缺点:不能实时显示系统指标,只能显示采样后的结果;不能监控应用层的性能指标,如数据库、Web服务器等;界面不够友好,操作较复杂。
  • 适用范围:适合用于分析系统的长期性能变化和问题,或者定期收集系统的性能数据。

以下是sar命令的输出:

Linux 5.8.0-50-generic (hostname) 	07/04/21 	_x86_64_	(2 CPU)

10:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:10:01 AM     all      1.32      0.00      0.28      0.05      0.00     98.35
10:20:01 AM     all      2.20      0.00      0.32      0.13      0.00     97.35
10:30:01 AM     all      3.84      0.00      0.48      0.19      0.00     95.49
10:40:01 AM     all      4.61      0.00      0.56      0.21      0.00     94.62
10:50:01 AM     all      4.90      0.00      0.56      0.21      0.00     94.33
11:00:01 AM     all      5.02      0.00      0.56      0.20      0.00     94.22
11:10:01 AM     all      5.01      0.00      0.57      0.21      0.00     94.22
11:20:01 AM     all      2.75      0.00      0.36      0.14      0.00     96.75
11:30:01 AM     all      1.09      0.00      0.24      0.06      0.00     98.61

在这个例子中,监控了CPU的使用情况,包括用户态CPU(%user)、系统态CPU(%system)、I/O等待时间(%iowait)、CPU空闲率(%idle)等指标,每10分钟采样一次,以表格的形式展示。

其中,%user和%system分别代表CPU在用户态和系统态的使用情况,%iowait表示CPU等待I/O操作完成的时间占总时间的百分比,%idle则表示CPU空闲的时间占总时间的百分比。

vmstat

vmstat是一种监控CPU、内存、磁盘IO等系统性能指标的工具,能够提供很多有用的监控指标,支持多种输出格式,能够满足不同的需求。

  • 优点:可以显示虚拟内存和CPU的详细信息,如页面交换、中断、上下文切换等;可以显示历史数据,方便分析系统的性能趋势;可以指定采样间隔和次数,灵活控制监控时间和频率。
  • 缺点:不能显示其他系统指标,如磁盘、网络等;不能将监控数据保存为文件,只能输出到屏幕或重定向到其他程序;不能对数据进行统计和图形化展示;不支持所有的操作系统,如AIX等。
  • 适用范围:适合用于分析虚拟内存和CPU的性能瓶颈和问题,或者定期收集虚拟内存和CPU的性能数据。

以下是vmstat的一些输出:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  81692  56080 436104    0    0     0     0    1    1  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   46   80  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   69   91  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   37   83  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   34   75  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   35   77  0  0 100  0  0
 0  0      0  81692  56080 436104    0    0     0     0   35   78  0  0 100  0  0

在这个例子中,监控了CPU、内存、磁盘IO等系统性能指标,包括运行队列(r)、等待队列(b)、交换空间使用情况(swpd)、空闲内存(free)、缓冲区使用情况(buff)、缓存使用情况(cache)、磁盘读(bi)和磁盘写(bo)的速度、中断数(in)和上下文切换数(cs)、CPU使用情况(us、sy、id、wa、st)等指标,以表格的形式展示。

其中,r表示运行队列,即正在执行的进程数;b表示等待队列,即等待CPU资源的进程数;swpd表示交换空间使用情况,即交换到磁盘的内存大小;free表示空闲内存大小;buff表示缓冲区使用情况;cache表示缓存使用情况;bi和bo分别表示磁盘读和写的速度;in和cs分别表示中断数和上下文切换数;us、sy、id、wa和st分别代表用户态CPU、系统态CPU、CPU空闲率、I/O等待率和虚拟机CPU的时间占用情况。

结论

系统监控工具是管理和优化系统性能的关键工具之一。不同的监控工具可以提供不同类型的指标和数据,用户可以根据实际需求选择最合适的工具。在使用监控工具时,需要了解各种指标的含义和使用方法,以便更好地分析和解决系统性能问题。通过监控系统性能,我们可以及时发现问题并采取措施,提高系统的可靠性、可用性和性能。

最近发表
标签列表