一、操作场景
这篇以操作系统为 CentOS 7.9 及 Ubuntu 20.04的云服务器为例,介绍如何使用 atop 监控工具。
二、操作步骤
CentOS 7.9Ubuntu 20.04
三、安装 atop
1. 使用 OrcaTerm 方式登录 Linux 实例(推荐)。
2. 执行以下命令,安装 atop。
yum install atop -y
页面提示信息为 Complete! 时说明已成功安装。
四、配置并启动 atop
参考以下步骤,配置 atop 监控周期及日志保留时间。
1. 执行以下命令,使用 Vim 编辑器打开 atop 配置文件。
sudo vim /etc/sysconfig/atop
2. 按 i 进入编辑模式,修改以下配置:
·将 LOGINTERVAL=600 修改为 LOGINTERVAL=30,表示将默认的600s监控周期修改为30s。建议修改为30s,你可结合实际情况进行修改。
·将 LOGGENERATIONS=28 修改为 LOGGENERATIONS=7,表示将默认的日志保留时间28天修改为7天。为避免 atop 长时间运行占用太多磁盘空间,建议修改为7天,你可结合实际情况进行修改。
修改完成后如下:
3. 按 Esc 并输入 :wq,保存修改并退出编辑器。
4. 在 CentOS 7 及以上版本可执行以下命令,启动 atop。
systemctl restart atop
五、安装网络监控模块 netatop (默认不安装)
注意:说明:
注意:atop 默认不包含按进程统计网络流量功能。如需启用请安装并启用 netatop 模块。
1. 安装前置依赖。
yum install -y kernel-devel dkms elfutils-libelf-develyum groupinstall -y "Development Tools"
2. 下载 netatop 并编译安装。
curl -LO https://www.atoptool.nl/download/netatop-3.1.tar.gztar -zxf netatop-3.1.tar.gzcd netatop-3.1makesudo make install
3. 启动 netatop。
·systemctl start netatop: 启动 netatop 服务
·systemctl status netatop: 查看 netatop 服务状态
4. 重启 atop 服务。
sudo systemctl restart atop
六、安装 atop
1. 使用 OrcaTerm 方式登录 Linux 实例(推荐)。
2. 更新软件源中的所有软件列表。
sudo apt update
七、Running Environment
Operating System: Ubuntu 24.04.3 LTS / x86_64Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
3. 执行以下命令,安装 atop。
sudo apt-get install -y atop
八、Running Environment
Operating System: Ubuntu 24.04.3 LTS / x86_64Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
九、配置并启动 atop
参考以下步骤,配置 atop 监控周期及日志保留时间。
1. 执行以下命令,使用 Vim 编辑器打开 atop 配置文件。
sudo vim /etc/default/atop
2. 按 i 进入编辑模式,修改以下配置:
·将 LOGINTERVAL=600 修改为 LOGINTERVAL=30,表示将默认的600s监控周期修改为30s。建议修改为30s,你可结合实际情况进行修改。
·将 LOGGENERATIONS=28 修改为 LOGGENERATIONS=7,表示将默认的日志保留时间28天修改为7天。为避免 atop 长时间运行占用太多磁盘空间,建议修改为7天,你可结合实际情况进行修改。
修改完成后如下:
3. 按 Esc 并输入 :wq,保存修改并退出编辑器。
4. 执行如下命令,启动 atop。
sudo systemctl restart atop
十、安装网络监控模块 netatop (默认不安装)
注意:说明:
注意:atop 默认不包含按进程统计网络流量功能。如需启用请安装并启用 netatop 模块。
1. 安装前置依赖。
sudo apt-get updatesudo apt-get install -y linux-headers-generic dkms libelf-devsudo apt-get install -y build-essential
十一、Running Environment
Operating System: Ubuntu 24.04.3 LTS / x86_64Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
2. 下载 netatop 并编译安装。
curl -LO https://www.atoptool.nl/download/netatop-3.1.tar.gztar -zxf netatop-3.1.tar.gzcd netatop-3.1makesudo make install
3. 启动 netatop。
·systemctl start netatop: 启动 netatop 服务
·systemctl status netatop: 查看 netatop 服务状态
4. 重启 atop 服务。
sudo systemctl restart atop
十二、分析 atop
atop 启动后,会将采集的数据记录在 /var/log/atop 目录的日志文件中。请获取实际的日志文件名,执行以下命令,查看日志文件并参见 atop 常用命令 及 系统资源监控字段说明 进行分析。
atop -r /var/log/atop/atop_2021xxxx
十三、atop 常用命令
你可在打开日志文件后,使用以下命令筛选所需数据:
| 快捷键 | 功能描述 |
| C | 按照进程的 CPU 使用率降序筛选。 |
| M | 按照进程的内存使用率降序筛选。 |
| D | 按照进程的磁盘使用率降序筛选。 |
| A | 按照进程资源综合使用率进行降序筛选。 |
| N | 按照进程的网络使用率进行降序筛选(使用此命令需安装额外的 netatop 模块,默认不支持)。 |
| y | 切换线程显示 |
| g | 通用信息视图(默认) |
| m | 内存视图 |
| d | 磁盘视图 |
| n | 网络视图 |
| c | 显示完整命令 |
| / | 使用正则表达式过滤输出 |
| J | 根据 pid 过滤输出 |
| t | 跳转到下一个监控采集点。 |
| T | 跳转到上一个监控采集点。 |
| b | 指定时间点,格式为 YYYYMMDDhhmm。 |
十四、系统资源监控字段说明
下图为部分监控字段以及数值,数值根据采样周期获取,仅作为参考。
主要参数说明如下:
| 指标行 | 指标 | 指标说明 |
| ATOP 行 | 综述 | 主机名、信息采样日期和时间点。 |
| PRC 行 | 综述 | 进程整体运行情况。 |
| | sys 及 user | CPU 被用于处理进程时,进程在内核态及用户态所占 CPU 的时间比例。 |
| | #proc | 进程总数。 |
| | #zombie | 僵尸进程的数量。 |
| | #exit | atop 采样周期期间退出的进程数量。 |
| CPU 行 | 综述 | CPU 整体(即多核 CPU 作为一个整体 CPU 资源)的使用情况。CPU 行的各字段数值相加结果为 100%,N 为 CPU 核数。 |
| | sys 及 user | CPU 被用于处理进程时,进程在内核态及用户态所占 CPU 的时间比例。 |
| | irq | CPU 被用于处理中断的时间比例。 |
| | idle | CPU 处在完全空闲状态的时间比例。 |
| | wait | CPU 处在“进程等待磁盘 I/O 导致 CPU 空闲”状态的时间比例。 |
| CPL 行 | 综述 | CPU 负载情况。 |
| | avg1、avg5 和 avg15 | 过去1分钟、5分钟和15分钟内运行队列中的平均进程数量。 |
| | csw | 指示上下文交换次数。 |
| | intr | 指示中断发生次数。 |
| MEM 行 | 综述 | 内存的使用情况。 |
| | tot | 物理内存总量。 |
| | cache | 用于页缓存的内存大小。 |
| | buff | 用于文件缓存的内存大小。 |
| | slab | 系统内核占用的内存大小。 |
| SWP 行 | 综述 | 交换空间的使用情况。 |
| | tot | 交换区总量。 |
| | free | 空闲交换空间大小。 |
| PAG 行 | 综述 | 虚拟内存分页情况 |
| | swin 及 swout | 换入和换出内存页数。 |
| DSK 行 | 综述 | 磁盘使用情况,每一个磁盘设备对应一列。如果有 sdb 设备,那么增加一行 DSK 信息。 |
| | sda | 磁盘设备标识。 |
| | busy | 磁盘忙时比例。 |
| | read 及 write | 读、写请求数量。 |
| NET 行 | 综述 | 多列 NET 展示了网络状况,包括传输层(TCP 和 UDP)、IP 层以及各活动的网口信息。 |
| | xxxxxi | 各层或活动网口收包数目。 |
| | xxxxxo | 各层或活动网口发包数目。 |
十五、停止 atop
不建议在业务环境下长期运行 atop,你可在问题排查完成后停止 atop。在 CentOS 7 及以上版本可执行以下命令,停止 atop。
systemctl stop atop