atop用来监控系统资源与进程的工具,默认是以10s为间隔,来记录系统的运行状态,并且会以每隔10分钟记录一次采集数据到日志中。
1 2 | Centos: yum -y install atop Ubuntu: apt -y install atop |
---|
感觉atop比top命令要强大,所以我还是习惯用top,有点跑偏了。。
PRC 展示整个系统的性能情况
sys 过去10秒所有的进程在内核态运行的时间总和
usr 过去10秒所有的进程在用户态的运行时间总和
#proc 进程总数
#trun 过去10秒转换的进程数
#zombie 过去10秒的僵尸进程数
#exit 过去10秒退出的进程数量
CPU 展示了服务器的CPU使用情况
sys、user 处理进程时处于内核态、用户态的所占CPU的时间比例
irq 指CPU被用于处理中断的时间比例
idle 指CPU空闲的时间比例
wait 指CPU处在进程等待磁盘IO,导致CPU空闲的时间比例
CPL 显示CPU负载情况
有点类似top中的系统负载情况,avg1 avg5 avg15,表示过去1分钟,5分钟,15分钟内运行队列中的平均进程数量
csw 指上下文交换次数
intr 指中断发生次数
MEM 指内存的使用情况
cache 指用于页缓存的内存大小
buff 指用于文件缓存的内存大小
slab 表示系统内核占用的内存大小
SWP 显示交换空间的使用情况
tot 指交换区总量
free 指空闲交换空间大小
PAG 展示虚拟内存分页情况
swin、swout 换入和换出内存页数
DSK 展示磁盘使用情况
busy 磁盘忙时比例
read,write 读写请求数量
NET 展示网络情况,包括传输层,TCP,UDP,IP层
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 显示正在活动的数字: 'g' - 通用信息(默认) 'm' - 显示内存信息 'd' - 磁盘详细信息 'n' - 网络详情 's' - 调度和线程组信息 'v' - 各种信息(ppid,用户/组,日期/时间,状态,exitcode) 'c' - 每个进程的完整命令行 'o' - 使用自己的输出行定义 按以下顺序对进程列表排序: 'C' - cpu活动 'M' - 内存消耗 'D' - 磁盘活动 'N' - 网络活动 'A' - 最活跃的系统资源(自动模式) 累计数字: 'u' - 每个用户的总资源消耗 'p' - 每个程序的总资源消耗(即相同的进程名称) 选择: 'U' - 专注于特定用户名(正则表达式) 'P' - 专注于特定的进程名称(正则表达式) 屏幕处理: ^ L - 重绘屏幕 ^ F - 显示进程列表中的下一页(转发) ^ B - 显示进程列表中的上一页(向后) 演示文稿(这些键显示在标题行中): 'a' - 显示所有进程(默认:活动进程)(切换) 'f' - 固定标题行的静态范围(切换) '1' - 显示平均每秒i.s.o.总值(切换) 原始文件查看: 't' - 在原始文件中显示下一个样本 'T' - 显示原始文件中的上一个示例 'b' - 在原始文件中分支到特定时间) 'r' - 回退到原始文件的开头) 其他命令: 'i' - 更改间隔计时器(0 =仅手动触发器) 't' - 手动触发强制下一个样本 'r' - 将计数器重置为启动时间值 'z' - 暂停按钮以冻结当前样本(切换) 'l' - 每个CPU,磁盘和接口资源的限制行 'k' - 杀死进程(即发送信号) 'V' - 版本信息 '?' - 帮助信息 'h' - 帮助信息 'q' - 退出这个程序 |
---|
atop一个非常好的地方在于它可以将采集信息记录到日志里,我们可以在系统出现问题时,找到对应的日志,通过atop打开,来进行排查,例如:
1 | atop -r atop_20181204 |
---|
也可以指定特定的时间
1 2 | atop -r atop_20181204 -b 19:00 -e 20:00 进入之后可以使用t向下翻页,T向前翻页 |
---|
我们也可以修改atop的默认采集时间,先看下atop的配置文件在哪个目录
```
$ dpkg -S atop atop: /etc/default/atop atop: /usr/share/doc/atop atop: /usr/bin/atopsar atop: /etc/init.d/atop
$ cat /etc/default/atop
INTERVAL=600 LOGPATH=”/var/log/atop” OUTFILE="$LOGPATH/daily.log”