1 | atop
|
2 | ===
|
3 |
|
4 | 监控Linux系统资源与进程的工具
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | [非内部程序,需要安装]它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。atop是一款开源软件,我们可以从这里获得其[源码](https://github.com/Atoptool/atop)和[rpm安装包](https://pkgs.org/download/atop)。
|
9 |
|
10 | ## 语法
|
11 |
|
12 | ```shell
|
13 | atop(选项)(参数)
|
14 | ```
|
15 |
|
16 | ## 说明
|
17 |
|
18 | **ATOP列**:该列显示了主机名、信息采样日期和时间点
|
19 |
|
20 | **PRC列**:该列显示进程整体运行情况
|
21 |
|
22 | - sys、usr字段分别指示进程在内核态和用户态的运行时间
|
23 | - #proc字段指示进程总数
|
24 | - #zombie字段指示僵尸进程的数量
|
25 | - #exit字段指示atop采样周期期间退出的进程数量
|
26 |
|
27 | **CPU列**:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)
|
28 |
|
29 | - sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
|
30 | - irq字段指示CPU被用于处理中断的时间比例
|
31 | - idle字段指示CPU处在完全空闲状态的时间比例
|
32 | - wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
|
33 |
|
34 | CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。
|
35 |
|
36 | cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%
|
37 |
|
38 | **CPL列**:该列显示CPU负载情况
|
39 |
|
40 | - avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
|
41 | - csw字段指示上下文交换次数
|
42 | - intr字段指示中断发生次数
|
43 |
|
44 | **MEM列**:该列指示内存的使用情况
|
45 |
|
46 | - tot字段指示物理内存总量
|
47 | - free字段指示空闲内存的大小
|
48 | - cache字段指示用于页缓存的内存大小
|
49 | - buff字段指示用于文件缓存的内存大小
|
50 | - slab字段指示系统内核占用的内存大小
|
51 |
|
52 | **SWP列**:该列指示交换空间的使用情况
|
53 |
|
54 | - tot字段指示交换区总量
|
55 | - free字段指示空闲交换空间大小
|
56 |
|
57 | **PAG列**:该列指示虚拟内存分页情况
|
58 |
|
59 | swin、swout字段:换入和换出内存页数
|
60 |
|
61 | **DSK列**:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息
|
62 |
|
63 | - sda字段:磁盘设备标识
|
64 | - busy字段:磁盘忙时比例
|
65 | - read、write字段:读、写请求数量
|
66 |
|
67 | **NET列**:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息
|
68 |
|
69 | - XXXi 字段指示各层或活动网口收包数目
|
70 | - XXXo 字段指示各层或活动网口发包数目
|
71 |
|
72 | ## atop日志
|
73 |
|
74 | 每个时间点采样页面组合起来就形成了一个atop日志文件,我们可以使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?
|
75 |
|
76 | 对于atop日志文件的保存方式,我们可以这样:
|
77 |
|
78 | - 每天保存一个atop日志文件,该日志文件记录当天信息
|
79 | - 日志文件以"atop_YYYYMMDD"的方式命名
|
80 | - 设定日志失效期限,自动删除一段时间前的日志文件
|
81 |
|
82 | 其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本可以在源码目录下找到。在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):
|
83 |
|
84 | ```shell
|
85 | (sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&
|
86 | ```
|
87 |
|
88 | 最后,我们修改cron文件,每天凌晨执行atop.daily脚本:
|
89 |
|
90 | ```shell
|
91 | 0 0 * * * root /etc/cron.daily/atop.daily
|
92 | ```
|
93 |
|
94 | ## 相关资料
|
95 |
|
96 | - [官方手册](http://www.atoptool.nl/download/man_atop-1.pdf)
|