atop 就是一款用于监控 Linux 系统资源与进程的工具, 它以一定的频率记录系统的运行状态, 所采集的数据包含系统资源 (CPU, 内存, 磁盘和网络) 使用情况和进程运行情况, 并能以日志文件的方式保存在磁盘中, 服务器出现问题后, 我们可获取相应的 atop 日志文件进行分析.
安装 atop
atop 通常在默认的下载源中就有, 可以通过如下命令安装 atop
- yum install atop -y(CentOS)
- apt-get install atop -y (Ubuntu)
启动 atop
atop 在安装完毕, 会自动成为一个服务, 可以在 /etc/init.d/atop 中管理
service atop start 即可启动 atop
配置 atop
atop 安装完毕后, 有几个重要的配置文件 / 目录, 通常默认在如下路径:
/etc/sysconfig/atopatop 配置文件, 主要用于调整 atop 监控周期, 默认 600s 采集一次
/etc/cron.d/atop 每日重试定时任务
/var/log/atop 用于存放 atop 监控日志
分析 atop
atop 在启动之后, 会将采集记录在 /var/log/atop 目录中, 可执行如下命令查看日志文件
atop -r /var/log/atop/atop_20161227
atop 常用指令
c 按照进程 CPU 使用率进行降序筛选
m 按照进程内存使用率进行降序筛选
d 按照进程磁盘使用率进行降序筛选
a 按照进程资源综合使用率进行降序筛选
n 按照进程网络使用率进行降序筛选(需要额外安装内核模块才支持, 默认不支持)
t 跳转到下一个监控采集点
T 跳转到上一个监控采集点
B 指定时间点, 格式 hh:mm:ss
系统资源监控字段含义
上图中列出了不少字段以及数值, 各字段的含义是什么? 我们应该怎么看? 以上每个字段的含义都是相对采样周期而言的, 下面我们先来关注上图显示的上半部分.
ATOP 列: 该列显示了主机名, 信息采样日期和时间点
PRC 列: 该列显示进程整体运行情况
sys,usr 字段分别指示进程在内核态和用户态的运行时间
- #proc 字段指示进程总数
- #zombie 字段指示僵死进程的数量
- #exit 字段指示 atop 采样周期期间退出的进程数量
CPU 列: 该列显示 CPU 整体 (即多核 CPU 作为一个整体 CPU 资源) 的使用情况, 我们知道 CPU 可被用于执行进程, 处理中断, 也可处于空闲状态(空闲状态分两种, 一种是活动进程等待磁盘 IO 导致 CPU 空闲, 另一种是完全空闲)
sys,usr 字段指示 CPU 被用于处理进程时, 进程在内核态, 用户态所占 CPU 的时间比例
irq 字段指示 CPU 被用于处理中断的时间比例
idle 字段指示 CPU 处在完全空闲状态的时间比例
wait 字段指示 CPU 处在 "进程等待磁盘 IO 导致 CPU 空闲" 状态的时间比例
CPU 列各个字段指示值相加结果为 N00%, 其中 N 为 CPU 核数.
CPU 列: 该列显示某一核 CPU 的使用情况, 各字段含义可参照 CPU 列, 各字段值相加结果为 100%
CPL 列: 该列显示 CPU 负载情况
avg1,avg5 和 avg15 字段: 过去 1 分钟, 5 分钟和 15 分钟内运行队列中的平均进程数量
csw 字段指示上下文交换次数
intr 字段指示中断发生次数
MEM 列: 该列指示内存的使用情况
tot 字段指示物理内存总量
free 字段指示空闲内存的大小
cache 字段指示用于页缓存的内存大小
buff 字段指示用于文件缓存的内存大小
slab 字段指示系统内核占用的内存大小
SWP 列: 该列指示交换空间的使用情况
tot 字段指示交换区总量
free 字段指示空闲交换空间大小
PAG 列: 该列指示虚拟内存分页情况
swin,swout 字段: 换入和换出内存页数
DSK 列: 该列指示磁盘使用情况, 每一个磁盘设备对应一列, 如果有 sdb 设备, 那么增多一列 DSK 信息
sda 字段: 磁盘设备标识
busy 字段: 磁盘忙时比例
read,write 字段: 读, 写请求数量
NET 列: 多列 NET 展示了网络状况, 包括传输层(TCP 和 UDP),IP 层以及各活动的网口信息
XXXi 字段指示各层或活动网口收包数目
XXXo 字段指示各层或活动网口发包数目
您都看到这里了, 麻烦帮忙点个赞, 谢谢您的认可与鼓励.
来源: https://www.qcloud.com/developer/article/1485959