如何使用 atop 工具和 atopsar 工具来获取 EC2 Linux 实例上进程的历史使用情况统计数据?

4 分钟阅读
0

我想了解如何使用 atop 工具来监控在 Amazon EC2 Linux 实例上运行的进程的历史资源使用情况,例如 CPU、内存和磁盘 I/O。我想获得有关安装 atop 和分析其日志文件的说明。

简短描述

atop 工具是一种性能监控工具,用于记录历史资源使用情况,以供日后分析。该工具还会提供实时报告。您可以检索每个进程和线程的 CPU 利用率、内存消耗和磁盘 I/O 的使用情况。atop 工具在记录统计数据时会作为后台服务。这样可以用于长期的服务器分析,默认情况下,数据会储存 28 天。

**注意:**atop 仅在安装后才会记录数据。在 atop 安装之日之前,无法检索历史性能数据。

解决方法

安装 atop

有关安装说明,请参阅如何为运行 Amazon Linux、RHEL、CentOS 或 Ubuntu 的 EC2 实例配置 ATOP 和 SAR 监控工具?

创建 atop 历史报告日志

atop 工具在 /var/log/atop 中创建日志文件。这些文件使用以下格式命名:atop_ccyymmdd。例如,atop_20210902 是 2021 年 9 月 2 日的记录。

要访问日志文件,请运行以下命令:

atop -r /var/log/atop/atop_ccyymmdd

atop_ccyymmdd 替换为要查看的日期。

请参阅以下命令和日志文件示例:

atop -r /var/log/atop/atop_20210902
ATOP - ip-172-20-139-91                2021/09/02  17:03:44                ----------------                 3h33m7s elapsed
PRC |  sys    6.51s  |  user   7.85s  |  #proc    103  |  #tslpi    81 |  #tslpu     0  |  #zombie    0  |  #exit      0  |
CPU |  sys     0%  |  user      3%  |  irq       0%  |  idle    197% |  wait      0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu000 w  0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu001 w  0%  |  ipc notavail  |  curscal   ?%  |

在以下输出示例中,记录的第一个快照是在 2021/09/02 17:03:44。要向下移动到下一个快照,请按键盘上的 t 键(小写)。要返回到上一个快照,请按 T 键(大写)。要分析特定的时段,请按 b 键,然后输入日期和时间。atop 工具会跳转到输入新时间变量中指定的时间:

NET |  lo      ----  |  pcki       2  |  pcko       2  |  sp    0 Mbps |  si    0 Kbps  |  so    0 Kbps  |  erro       0  |
Enter new time (format [YYYYMMDD]hhmm):
  PID              TID              RDDSK              WRDSK             WCANCL              DSK             CMD        1/4

要查看不同的统计数据,请按指定的快捷键。以下是快捷键示例:

  • g: 通用信息(默认)。
  • m: 内存详细信息。
  • d: 磁盘详细信息。
  • n: 网络详细信息。仅在安装了 netatop 内核模块时,此键才有效。
  • c: 每个进程的完整命令行。

要对进程列表进行排序,请使用以下快捷键:

  • C: CPU 活动。
  • M: 内存消耗。
  • D: 磁盘活动。
  • N: 网络活动。仅在安装了 netatop 内核时,此键才有效。
  • A: 最活跃的系统资源(自动模式)。

h 键,以查看帮助文档。

创建特定时间段的 atop 报告日志

要访问日志文件并且仅提取特定时间段的性能数据,请运行以下命令:

atop -r /var/log/atop/atop_ccyymmdd -b starttime -e endtime -M

atop_ccyymmdd 替换为要查看的日期。将 starttime 替换为性能时段的开始时间,将 endtime 替换为性能时段的结束时间。

例如,以下命令会返回 2024 年 4 月 22 日 08:00 至 08:10 之间捕获的内存性能数据:

$ atop -r /var/log/atop/atop_20240422 -b 0800 -e 0810
            -M

示例中使用的标志:

  • b:开始时间
  • e:结束时间
  • r:指定文件
  • M:内存

使用 atop 命令生成系统活动报告

使用 atopsar 命令生成系统活动报告。

如果您使用标志 -c,则会生成有关系统当前 CPU 利用率的报告。以下示例显示了此报告的两个结果,每个结果相隔一秒:

$ atopsar -c 1 2
ip-172-20-139-91  4.14.238-182.422.amzn2.x86_64  #1 SMP Tue Jul 20 20:35:54 UTC 2021  x86_64  2021/09/02

-------------------------- analysis date: 2021/09/02 --------------------------

18:50:16  cpu  %usr %nice %sys %irq %softirq  %steal %guest  %wait %idle  _cpu_
18:50:17  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100
18:50:18  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100

atopsar 命令可以分析指定时间范围内的数据。例如,要生成当天从 13:00 (-b) 开始到 13:35 (-e) 结束的所有报告 (-A),请运行以下命令:

atopsar -A -b 13:00 -e 13:35

要检索多个输出,请将 atopsar 的标志合并为一个命令。以下示例命令可查询 CPU 利用率处理(器)负载以及进程和线程

$ atopsar -cpP

输出示例:

ip-172-31-89-231 6.1.84-99.169.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Apr 8 19:19:48 UTC 2024 x86_64 2024/04/22

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 cpu %usr %nice %sys %irq %softirq %steal %guest %wait %idle cpu
08:00:27 all 0 0 0 0 0 0 0 4 95
08:01:27 all 0 0 0 0 0 0 0 0 100
08:02:27 all 0 0 0 0 0 0 0 0 100
08:03:27 all 0 0 0 0 0 0 0 0 100

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 pswch/s devintr/s clones/s loadavg1 loadavg5 loadavg15 load
08:00:27 203 70 1.07 0.13 0.29 0.14
08:01:27 53 31 0.07 0.05 0.23 0.13
08:02:27 59 31 0.87 0.02 0.19 0.12
08:03:27 68 35 0.22 0.00 0.15 0.10

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 clones/s pexit/s curproc curzomb thrrun thrslpi thrslpu procthr
08:00:27 1.07 1.07 114 0 1 83 58
08:01:27 0.07 0.07 114 0 1 83 58
08:02:27 0.87 0.88 109 0 1 83 53
08:03:27 0.22 0.28 105 0 1 76 52

有关 atop 检索和显示的标志和输出值的详细列表,请参阅 Linux 网站上的 atopsar

相关信息

为什么我的 EC2 Linux 实例由于资源过度使用而变得无响应?

DigitalOcean 网站上的 A guide to atop command in Linux

AWS 官方
AWS 官方已更新 1 年前