跳转至

分析工具

1 系统性能分析工具

1.1 top

1.1.1 基本按键操作

  • P:以占据 CPU 百分比排序
  • M:以占据内存百分比排序
  • T:以累积占用 CPU 时间排序
  • q:退出命令:按 q 键退出 top 查看页面
  • s:修改刷新时间间隔。按下 s 键,然后按下数字,即可修改刷新时间间隔为你输入的数字,单位为秒。例如:按下 s 键,在按数字 1 键,即可实现每秒刷新一次
  • u:设置只显示的指定用户下进程信息。按下 u 键,再输入用户名
  • f:设置增加显示的内容。按 f 键进入:1. 上下移到光标,按空格开启或关闭此条目;2. 左右键选中条目,在上下移动动指定位置,可以对显示栏排序

1.1.2 参数说明

  • VIRT :Virtual Memory 虚拟内存,是内存的虚拟地址,此部分中部分已经映射到了物理内存,有些还没有。
  • RES :Resident Memory 长驻内存,虚拟内存空间中已经映射到物理内存空间的那部分。
  • SHR :share Memory 共享内存,指与其它进程共享动态库的那部分内存。

1.2 free

  • 功能:显示空闲和已使用的内存
  • 语法:free [options] -b: 以 Byte 为单位显示内存使用情况; -k: 以 KB 为单位显示内存使用情况; -m: 以 MB 为单位显示内存使用情况; -g: 以 GB 为单位显示内存使用情况。 -o: 不显示缓冲区调节列; -s [n]: 多少秒刷新一次 -t: 显示内存总和列;
  • 示例
$ free -b
              total        used        free      shared  buff/cache   available
Mem:    67300700160  7164715008  1799909376  6971514880 58336075776 52455710720
Swap:             0           0           0
$ free -k
              total        used        free      shared  buff/cache   available
Mem:       65723340     6995492     1759024     6808120    56968824    51227580
Swap:             0           0           0
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          64182        6831        1717        6648       55633       50026
Swap:             0           0           0
$ free -g
              total        used        free      shared  buff/cache   available
Mem:             62           6           1           6          54          48
Swap:             0           0           0
$ free -t
              total        used        free      shared  buff/cache   available
Mem:       65723340     6994256     1760256     6808120    56968828    51228824
Swap:             0           0           0
Total:     65723340     6994256     1760256
  • 输出信息解释
total   #表示系统的总内存
used    #表示使用的内存
free    #表示空闲的内存
shared  #表示共享链接库使用的内存
buff/cache  #表示系统的page cache和buffer使用到的内存
available   #表示应用程序还可以申请到的内存

其中有如下关系 $$ 公式一:total=used+free+buff/cache $$ $$ 公式二:shared \subseteq used $$ $$ 公式三:available \le free+buff/cache $$

1.3 uptime

  • 功能:显示系统已经运行多长事件
  • 语法:uptime [options]
    • -s:显示系统从什么时候启动(格式 yyyy-mm-dd HH:MM:SS)
    • -p :以更好的格式显示
  • 示例
[root@centos7 ~]# uptime -s
2022-08-09 18:02:48
[root@centos7 ~]# uptime -p
up 13 minutes
[root@centos7 ~]# uptime
 18:16:06 up 13 min,  1 user,  load average: 0.00, 0.03, 0.04

1.4 dmseg

  • 功能:打印或控制内核环形缓冲区(ring buffer)

1.5 vmstat

vmstat(Virtual Memory Statistics)是一个用于显示系统虚拟内存使用情况的命令。它在许多 Unix-like 操作系统上都可用,包括 Linux。

1.5.1 命令参数

语法如下:

vmstat [options] [delay [count]]

常见的选项包括:

  • -a:显示所有的活动和内存信息。
  • -s:以摘要形式显示内存和交换统计。
  • -d:显示磁盘活动的统计信息。
  • -p <partition>:显示指定分区的统计信息。
  • -t:显示时间戳。
  • -w:使用宽输出格式。
  • -n <count>:设置输出的次数。

其中,delay 是每次采样之间的时间间隔,以秒为单位。count 是采样的次数。

例如,要每隔 1 秒输出一次系统的虚拟内存统计信息,可以使用以下命令:

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 1228800 208664992 1178948 41652060    0    0     0     1    0    0  0  0 100  0  0
 0  0 1228800 208665328 1178948 41652060    0    0     0     0 7922 13989  0  0 99  0  0
 2  0 1228800 208664032 1178948 41652068    0    0     0     0 8902 14507  0  1 99  0  0

要以摘要形式显示内存和交换统计信息,可以使用以下命令:

$ vmstat -s 
    263855456 K total memory
     12359404 K used memory
     19004764 K active memory
     25067888 K inactive memory
    208665184 K free memory
      1178948 K buffer memory
     41651928 K swap cache
     16383996 K total swap
      1228800 K used swap
     15155196 K free swap
     91373312 non-nice user cpu ticks
         6229 nice user cpu ticks
    146911601 system cpu ticks
  66429282432 idle cpu ticks
      1375255 IO-wait cpu ticks
            0 IRQ cpu ticks
      2123610 softirq cpu ticks
            0 stolen cpu ticks
      5788194 pages paged in
    676740836 pages paged out
       136342 pages swapped in
      2278917 pages swapped out
    276134084 interrupts
    855645562 CPU context switches
   1680251136 boot time
     65290561 forks

1.5.2 显示解释

以下是 vmstat 命令输出结果的解释:

procs  ----------memory----------  --swap--   ---io----  --system-- --------cpu--------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs   us  sy  id  wa  st
 0  0      0 123456  78901 234567   0    0     0     0    0    0    0   0 100   0   0

这里是每一列的含义:

  1. procs:这一行中的数据是与进程相关的统计信息。
  2. r:正在运行的进程数。
  3. b:等待资源(如 CPU 时间片或 I/O 操作)的进程数。
  4. memory:这一行中的数据是关于内存使用情况的统计信息。
  5. swpd:已交换到磁盘的虚拟内存大小(单位:KB)。
  6. free:空闲内存大小(单位:KB)。
  7. buff:用作缓冲的内存大小(单位:KB)。(缓存尚未“写入”磁盘的内容)
  8. cache:用作缓存的内存大小(单位:KB)。(用来缓存从磁盘“读取”的内容
  9. swap:这一行中的数据是与交换空间(swap space)相关的统计信息。
  10. si:每秒从磁盘交换到内存的数据量(单位:KB)。
  11. so:每秒从内存交换到磁盘的数据量(单位:KB)。
  12. io:这一行中的数据是与 I/O 操作相关的统计信息。
  13. bi:每秒从块设备读取的数据量(单位:块)。
  14. bo:每秒写入块设备的数据量(单位:块)。
  15. system:这一行中的数据是与系统级操作相关的统计信息。
  16. in:每秒的中断数。
  17. cs:每秒的上下文切换数。
  18. cpu:这一行中的数据是关于 CPU 使用情况的统计信息。
  19. us:用户空间程序消耗 CPU 时间的百分比。
  20. sy:系统内核消耗 CPU 时间的百分比。
  21. id:空闲 CPU 时间的百分比。
  22. wa:等待 I/O 完成的 CPU 时间的百分比。
  23. st:由于虚拟化而被偷取的 CPU 时间的百分比。

请注意,输出中的数字表示的是每秒平均值。要理解系统的性能情况,需要综合考虑这些指标以及其他相关的系统监控工具的输出。

1.5.3 分析示例

当使用 vmstat 分析性能瓶颈时,让我们结合一些具体的数据来进行解释。假设您的系统正在经历性能问题,用户报告应用程序响应变慢。您运行了以下命令来监测系统状态:

vmstat 1 5

以下是示例输出的一部分:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
 2  1      0 123456  78901 234567   2    1    10    20  100  200   5   8  80   7   0
 1  0      0 124560  78902 234568   3    0    12    22  110  210   6   9  79   6   0
 0  1      0 121212  78905 234570   1    3     8    18   95  180   4   6  85   5   0
 3  0      0 122344  78903 234566   4    0    11    23  105  195   5   7  82   6   0
 2  1      0 120432  78900 234571   1    2     9    19   98  185   4   8  81   6   0

现在,我们将根据这个示例输出进行分析:

  1. CPU 利用率
  2. us(用户空间 CPU 使用率)和 sy(系统内核 CPU 使用率)的平均值约为 5% 和 7%。这些值相对较低,表明 CPU 并没有非常繁忙。
  3. id(空闲 CPU 时间)的平均值约为 80%。这表明大部分时间 CPU 处于空闲状态。
  4. 内存
  5. si(每秒从磁盘交换到内存的数据量)和 so(每秒从内存交换到磁盘的数据量)的平均值相对较低。这表明系统没有频繁的内存交换,内存瓶颈可能不是主要问题。
  6. I/O 操作
  7. bi(每秒从块设备读取的数据量)和 bo(每秒写入块设备的数据量)的平均值也相对较低。这表明磁盘活动相对较少。

基于以上信息,以下是一种可能的分析:

  • CPU 利用率相对较低,而且空闲时间较多。这可能表明系统的瓶颈并不在 CPU 资源方面。
  • 内存交换(siso)的量也相对较低,表明内存交换不是导致性能问题的主要原因。
  • I/O 活动(bibo)也相对较低,表示磁盘活动并不是系统性能问题的主要原因。

综上所述,根据 vmstat 的输出,目前的数据没有显示出明显的瓶颈,CPU、内存和磁盘的使用情况都相对较低。在这种情况下,您可能需要进一步探索其他可能的问题,比如网络瓶颈、应用程序代码问题或者其他外部因素。此外,考虑使用其他性能监控工具来获取更多详细信息,以更准确地定位性能问题的根本原因。

1.6 mpstat

  • 安装:yum install -y sysstat mpstat (Multiprocessor Statistics),它是一个用于监测 多处理器 系统中 CPU 性能的工具。它提供了关于每个 CPU 核心的利用率、负载、中断等统计信息,有助于管理员和系统分析师了解系统的多核心 CPU 的使用情况。mpstat 主要用于分析和监控多处理器系统中的 CPU 性能,并提供有关每个核心的详细信息。

mpstat 常用于以下方面: 1. 性能分析和监控:通过查看每个 CPU 核心的利用率和负载,管理员可以了解系统的 CPU 使用情况,识别繁忙的核心以及潜在的性能瓶颈。 2. 优化资源分配:在多核心系统中,合理分配任务和进程至不同的核心可以提高性能和效率。mpstat 可以帮助管理员决定如何分配任务,以平衡负载和避免资源浪费。 3. 性能瓶颈分析:通过分析中断统计信息,mpstat 可以帮助确定系统是否存在中断导致的性能问题,从而有助于进行优化。 4. 系统调优:通过监视不同核心的用户时间、系统时间和闲置时间,mpstat 可以帮助管理员调整系统设置,以优化性能。

1.6.1 命令参数

mpstat 命令用于监控多处理器系统中每个处理器的性能统计信息。它可以显示各个 CPU 核心的利用率、闲置时间、用户和系统时间等。以下是 mpstat 命令的基本语法:

mpstat [options] [delay [count]]

常见的选项包括: - -u:显示 CPU 利用率的统计信息。 - -I { SUM | CPU | SCPU | ALL }:显示中断统计信息。一般使用 SUM 汇总统计数量,其它的输出太多。 - -P { cpu [,...] | ON | ALL }:显示指定的 CPU 核心的统计信息,例如 -P 0,2 将显示第 0 和第 2 个核心的信息。ON 表示所有在线的处理器,ALL 表示所有处理器。 - -A:显示所有的 CPU 核心的统计信息,等价于 -u -I ALL -P ALL

其中,delay 是每次采样之间的时间间隔,以秒为单位。count 是采样的次数。 一般都会使用 -P 指定要采样的 cpu 核心。

例如,要显示所有 CPU 0 号和 1 号核心的 CPU 利用率统计信息,每隔 1 秒输出一次,总共 2 次,可以使用以下命令:

$ mpstat -u -P 0,1 1 2 
Linux 3.10.0-1160.el7.x86_64 (web137)   2023年08月16日  _x86_64_        (56 CPU)

16时25分18秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
16时25分19秒    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
16时25分19秒    1    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
16时25分20秒    0    1.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   98.00
16时25分20秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
平均时间:    0    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   98.99
平均时间:    1    0.50    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.50

如果要统计中断次数信息,使用如下命令:

$ mpstat -I SUM -P 0,1 1 2 
Linux 3.10.0-1160.el7.x86_64 (web137)   2023年08月16日  _x86_64_        (56 CPU)

16时28分36秒  CPU    intr/s
16时28分37秒    0    400.99
16时28分37秒    1    446.53
16时28分38秒    0    366.00
16时28分38秒    1    155.00
平均时间:    0    383.58
平均时间:    1    301.49

1.6.2 显示解释

mpstat 命令用于监控多处理器系统中每个处理器的性能统计信息。它提供了关于每个 CPU 核心的利用率、负载、中断等方面的数据。以下是 mpstat 命令输出结果中各列的解释:

Linux 5.4.0-42-generic (hostname)   08/16/23   _x86_64_    (8 CPU)

10:43:07 AM  CPU    %usr   %nice    %sys %iowait   %irq  %soft  %steal  %guest  %gnice  %idle
10:43:07 AM  all    2.67    0.00    0.52    0.14    0.00    0.08    0.00    0.00    0.00   96.59
10:43:07 AM    0    2.89    0.00    0.74    0.17    0.00    0.06    0.00    0.00    0.00   96.14

这里是每一列的含义:

  1. 时间(Time):显示了数据采样的时间戳。
  2. CPU:CPU 核心的标识。
  3. %usr:用户空间程序消耗 CPU 时间的百分比。
  4. %nice:用户空间程序以较低优先级运行的 CPU 时间的百分比。
  5. %sys:系统内核消耗 CPU 时间的百分比。
  6. %iowait:等待 I/O 操作完成的 CPU 时间的百分比。
  7. %irq:处理硬件中断的 CPU 时间的百分比。
  8. %soft:处理软中断的 CPU 时间的百分比。
  9. %steal:被虚拟化环境偷取的 CPU 时间的百分比(虚拟机环境中)。
  10. %guest:虚拟机客户机操作系统消耗的 CPU 时间的百分比(虚拟化环境中)。
  11. %gnice:用户空间程序以较低优先级运行的 CPU 时间的百分比(虚拟化环境中)。
  12. %idle:空闲 CPU 时间的百分比。

1.7 iostat

iostat (Input/Output Statistics)命令用于显示有关系统的磁盘(I/O)和 CPU 使用情况的统计信息。它可以帮助您监控磁盘活动、磁盘性能和系统负载。 - 安装:yum install -y sysstat

1.7.1 命令参数

下面是一些常见的 iostat 命令选项:

iostat [options] [interval [count]]

常见的选项包括:

  • -c:显示 CPU 利用率统计信息。
  • -d:显示磁盘统计信息。
  • -k:以千字节为单位显示数据传输速率。
  • -m:以兆字节为单位显示数据传输速率。
  • -N <N>:指定要显示的网络统计信息。
  • -t:显示时间戳。
  • -x:显示扩展的磁盘统计信息,包括更多的列,例如设备负载、平均队列长度等。

其中,interval 是每次采样之间的时间间隔,以秒为单位。count 是采样的次数。

例如,要每隔 1 秒输出一次系统的 CPU 利用率统计信息,可以使用以下命令:

iostat -c 1

要显示磁盘统计信息,可以使用以下命令:

iostat -d

要以扩展格式显示磁盘统计信息,可以使用以下命令:

iostat -dx

请注意,iostat 命令的选项和输出格式可能会因操作系统的不同而有所变化。要获取更准确的信息,可以查阅操作系统的官方文档或 iostat 命令的帮助文档。

1.7.2 显示解释

iostat 命令的输出结果提供了关于系统磁盘和 CPU 的统计信息,用于监控系统的性能和资源使用情况。以下是 iostat 命令输出结果中各列的解释:

如果您运行的是 iostat -c 命令(显示 CPU 统计信息),输出可能如下:

Linux 5.4.0-42-generic (hostname)   08/16/23   _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.28    0.00    2.63    0.41    0.00   90.68

这里是每一列的含义:

  • %user:用户空间程序消耗 CPU 时间的百分比。
  • %nice:优先级较高的用户空间程序消耗的 CPU 时间的百分比(例如,使用了 nice 命令设置的)。
  • %system:系统内核消耗 CPU 时间的百分比。
  • %iowait:等待 I/O 完成的 CPU 时间的百分比。
  • %steal:由于虚拟化而被偷取的 CPU 时间的百分比。
  • %idle:空闲 CPU 时间的百分比。

如果您运行的是 iostat -d 命令(显示磁盘统计信息),输出可能如下:

Linux 5.4.0-42-generic (hostname)   08/16/23   _x86_64_    (8 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.76        34.46        56.82  275063491  453803734

这里是每一列的含义:

  • Device:磁盘设备的名称。
  • tps:每秒传输的 I/O 操作次数(即每秒的 I/O 事务数)。
  • kB_read/s:每秒从设备读取的数据量(单位:KB)。
  • kB_wrtn/s:每秒写入设备的数据量(单位:KB)。
  • kB_read:从设备读取的总数据量(单位:KB)。
  • kB_wrtn:写入设备的总数据量(单位:KB)。

如果使用 iostat -dx 命令,将显示详细的扩展磁盘统计信息,包括设备的负载、平均队列长度以及其他磁盘活动的指标。以下是 iostat -dx 命令输出结果中各列的解释:

Linux 5.4.0-42-generic (hostname)   08/16/23   _x86_64_    (8 CPU)

Device:     rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda           0.10     0.58    0.52    1.29     0.01     0.00    12.92     0.00    0.09    0.02    0.12   0.02   0.00

这里是每一列的含义: - Device:磁盘设备的名称。 - rrqm/s:每秒合并的读请求数(即读请求合并成的数量)。(“合并的”意味着操作系统从队列中拿出多个逻辑请求合并为一个请求到实际磁盘。) - wrqm/s:每秒合并的写请求数(即写请求合并成的数量)。 - r/s:每秒从设备读取的请求数(即读取请求数)。 - w/s:每秒写入设备的请求数(即写入请求数)。 - rsec/s (rkB/s, rMB/s):每秒从设备读取的数据量(单位:扇区、KB、MB)。 - wsec/s (wkB/s, wMB/s):每秒写入设备的数据量(单位:扇区、KB、MB)。 - avgrq-sz:平均 I/O 请求的大小(单位:扇区)。 - avgqu-sz:平均 I/O 请求队列长度。(在设备队列中等待的请求数。) - await:平均 I/O 操作等待时间(单位:毫秒)。 - r_await:平均读操作等待时间(单位:毫秒)。 - w_await:平均写操作等待时间(单位:毫秒)。 - svctm:平均 I/O 操作的服务时间(单位:毫秒)。 - %util:设备的利用率,即设备在一段时间内的繁忙程度(百分比)。

根据这些数据,您可以了解每个磁盘设备的读写操作、数据传输速率、请求队列情况以及服务时间。通过观察 %util 列,您可以判断设备是否过度使用,是否存在磁盘瓶颈。还可以根据 await 列的值来评估磁盘操作。

1.7.3 分析示例

当使用 iostat 命令来监测系统性能时,您可以根据输出结果来分析系统的当前情况并识别潜在的问题。让我们以一个实际的例子来说明如何进行分析。

假设您运行了以下命令来监测系统的 CPU 和磁盘使用情况:

iostat -c -d 1 5

这将每隔 1 秒输出一次系统的 CPU 和磁盘统计信息,共输出 5 次。以下是示例输出的一部分:

Linux 5.4.0-42-generic (hostname)   08/16/23   _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.28    0.00    2.63    0.41    0.00   90.68

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.76        34.46        56.82  275063491  453803734

现在,让我们根据这个示例输出进行分析:

  1. CPU 利用率
  2. %user(用户空间 CPU 使用率)和 %system(系统内核 CPU 使用率)的值告诉您系统的 CPU 活动情况。在示例中,%user 是 6.28%,%system 是 2.63%。这意味着用户和系统任务共同使用了 6.28% + 2.63% = 8.91% 的 CPU 时间。
  3. %idle(空闲 CPU 时间)的值是 90.68%,这表明有大量的 CPU 时间处于空闲状态。

  4. 磁盘活动

  5. tps(每秒 I/O 事务数)表示每秒完成的读写操作数。在示例中,设备 sda 上每秒完成了 2.76 个 I/O 操作。
  6. kB_read/s(每秒读取的数据量)和 kB_wrtn/s(每秒写入的数据量)表示磁盘的读写速率。在示例中,设备 sda 每秒读取 34.46 KB 的数据,写入 56.82 KB 的数据。

基于这些数据,我们可以得出一些分析:

  • CPU 利用率较低:%idle 的值很高,意味着 CPU 大部分时间处于空闲状态。这可能是一个好的迹象,表明系统当前没有太多的负载。
  • 磁盘活动情况:每秒完成的 I/O 操作(tps)相对较低,表明磁盘负载并不是很高。然而,读写速率(kB_read/skB_wrtn/s)较高,这可能表明有一些磁盘活动,但并不是非常密集。

这只是一个简单的例子,实际分析可能会更复杂。根据不同的输出值,您可以识别出系统中的瓶颈、资源使用情况和可能的问题。根据您的特定环境和需求,您可以采取相应的措施来优化系统性能,如增加 CPU 核心、优化磁盘使用等。

1.8 pidstat

  • 安装:yum install -y sysstat

1.8.1 命令参数

1.8.2 显示解释

1.9 dstat

dstat (dynamic statistics)是一个强大的系统监控工具,它可以提供关于系统性能和资源使用情况的实时数据。 - 安装:yum install -y dstat

1.9.1 命令参数

以下是 dstat 命令的基本语法:

dstat [options] [delay [count]]

常见的选项包括:

  • -c:显示 CPU 统计信息。
  • -d:显示磁盘统计信息。
  • -m:显示内存统计信息。
  • -n:显示网络统计信息。
  • -p:显示进程统计信息。
  • -s:显示系统统计信息。
  • -g:显示页交换统计信息。
  • -y:显示文件系统统计信息。
  • -l:显示系统负载统计信息。
  • -i:显示中断统计信息。
  • -r:显示页面统计信息。
  • -v:显示虚拟内存统计信息。
  • --socket:显示套接字统计信息。
  • --tcp:显示 TCP 统计信息。
  • --udp:显示 UDP 统计信息。
  • --unix:显示 Unix 域套接字统计信息。

其中,delay 是每次采样之间的时间间隔,以秒为单位。count 是采样的次数。

例如,要显示 CPU、内存和磁盘的统计信息,每隔 1 秒输出一次,可以使用以下命令:

dstat -c -m -d 1

1.9.2 显示解释

当使用 dstat 命令并指定相应的选项时,它会输出相应的系统性能统计数据。下面是每个选项的示例命令输出以及每个输出结果的解释:

  1. CPU 统计信息 (-c):
dstat -c 1 5

输出解释: - %usr:用户空间程序消耗 CPU 时间的百分比。 - %sys:系统内核消耗 CPU 时间的百分比。 - %nice:用户空间程序以较低优先级运行的 CPU 时间的百分比。 - %idle:空闲 CPU 时间的百分比。

  1. 磁盘统计信息 (-d):
dstat -d 1 5

输出解释: - read:每秒读取的数据量(单位:字节)。 - write:每秒写入的数据量(单位:字节)。

  1. 内存统计信息 (-m):
dstat -m 1 5

输出解释: - used:已使用的物理内存量(单位:字节)。 - buff:用作缓冲的内存量(单位:字节)。 - cach:用作缓存的内存量(单位:字节)。 - free:可用的空闲内存量(单位:字节)。

  1. 网络统计信息 (-n):
dstat -n 1 5

输出解释: - recv:每秒接收的数据量(单位:字节)。 - send:每秒发送的数据量(单位:字节)。

  1. 进程统计信息 (-p):
dstat -p 1 5

输出解释: - usr:用户空间程序消耗 CPU 时间的百分比。 - sys:系统内核消耗 CPU 时间的百分比。 - guest:虚拟机客户机操作系统消耗的 CPU 时间的百分比(虚拟化环境中)。 - wait:等待 I/O 操作完成的 CPU 时间的百分比。

  1. 系统负载统计信息 (-l):
dstat -l 1 5

输出解释: - 1m:1 分钟内的平均负载。 - 5m:5 分钟内的平均负载。 - 15m:15 分钟内的平均负载。

  1. 中断统计信息 (-i):
dstat -i 1 5

输出解释: - intr:每秒的中断数。 - ctx:每秒的上下文切换数。

  1. 页面统计信息 (-r):
dstat -r 1 5

输出解释: - swpin/s:每秒从磁盘交换到内存的数据量(单位:字节)。 - swpout/s:每秒从内存交换到磁盘的数据量(单位:字节)。

  1. 虚拟内存统计信息 (-v):
dstat -v 1 5

输出解释: - pswpin/s:每秒从磁盘交换到虚拟内存的数据量(单位:字节)。 - pswpout/s:每秒从虚拟内存交换到磁盘的数据量(单位:字节)。

请根据您的需求选择相应的选项,以获取有关系统性能的详细数据。输出结果将帮助您分析系统的性能情况,识别问题并进行优化。

1.10 sar