atop
介绍与安装
atop是一个轻巧高效的系统资源与进程监控工具,其默认会以10s一次的频率来刷新数据,以10min一次的频率输出监控数据到日志文件
源码
https://github.com/Atoptool/atop
安装
yum install epel-release
yum install -y atop
基础页面
使用atop命令就能进入监控界面,整个页面被分隔成上下两块,上面显示的是系统资源相关的数据,下面显示的则是实时的进程信息
上界面
PRC | sys:过去10s所有进程在内核台运行的时间之和|usr:过去10所有进程在用户态运行的时间之和|#proc:进程总数 | #trun:过去10s转换的进程数|#tslpi:中断状态的睡眠进程|#tslpu:不可中断的睡眠进程|#zombie:过去10秒的僵尸进程数|clones:10s内clonde()被调用的次数|#exit 过去10秒退出的进程数量
CPU | sys:过去10s所有进程在内核台运行的时间占比|usr:过去10所有进程在用户态运行的时间占比| irq :CPU被用于处理中断的时间比例|idle:CPU空闲的时间比例 |wait: CPU处在进程等待磁盘IO,导致CPU空闲的时间比例 |steal: 为虚拟机准备的监控项,显示被运行在同一硬件上的其他虚拟机窃取的cpu时间的百分比 |guest: 为物理机准备的监控项,显示了虚拟机使用的cpu时间的百分比。 注意,这个百分比 与用户的百分比重合! |curf:当前频率
CPL | avg: 表示过去1分钟,5分钟,15分钟内运行队列中的平均进程数量 |csw: 指上下文交换次数 |intr: 指中断发生次数 |numcpu: 可用cpu数量 |
MEN | tot: 物理内存的总量 |free: 当前空闲的内存量 |cache: 用于页缓存的内存大小 |dirty: 页缓存中需要刷新到磁盘的内存量 |buff: 用于文件缓存的内存大小 |slab: 系统内核占用的内存大小|slrec: 可回收的slab内存量 |shmem: 包括tmpfs在内的共享内存的常驻大小 |shrss: 共享内存的常驻大小 |shswp: 当前交换的共享内存的数量 |numnode: 系统中NUMA节点的数量 |
SWP:|tot: 交换区总量 |free: 空闲交换空间大小 |swcac: 交换缓存的大小 |vmcom: 承诺的虚拟内存空间 |vmlim: 承诺空间的最大限制,默认情况下是交换大小加上50%的内存大小
LVM/MDD/DSK:逻辑卷/多设备/磁盘利用率 |busy: 磁盘忙时比例|write: 写请求 |read: 读请求 |discrd: 发出的丢弃请求的数量 |KiB/r: 每次读取的KiBytes数量 |kiB/w: 每次写入的KiBytes数量 |KiB/d: 每次丢弃的KiBytes数量 |Mbrs/w: 每秒读取的MiBytes吞吐量 |MBw/s: 每秒写入的MiBytes吞吐量 |avq: 平均队列深度|avio:一个请求所需的平均毫秒数
以上各项不是一直都会显示,如果内核不支持其中一些数据的话将不会被列出
NET 网络利用率| transport | tcpi :接收到的TCP段的数量,包括那些接收到的错误段| tcpo:传输的TCP段的数量,不包括那些只包含重传的八位字节 | udpi :收到的UDP数据包的数量 | udpo:传输的UDP数据包的数量 | tcpao:活动的TCP打开的数量 | tcppo :被动TCP打开次数 | tcprs :TCP输出重传次数 | tcpie:TCP输入错误次数 | tcpor:TCP输出复位次数 | udpnp:UDP无端口数 | udpie:UDP输入错误数 |
NET传输层(TCP和UDP)的活动显示一行,IP层显示一行,每个活动接口显示一行。
如果屏幕宽度不允许所有这些计数器,则只显示相关子集。
下界面
下界面显示的项会根据当前的选项发生变化,有时可能会因为屏幕大小显示不全,因可选项过多,此处只列出默认展示项的含义,更多可以使用man atop查询,当进程过多一页无法完全展示,可以用方向键上下来滚动
PID :进程PID
SYSCPU:内核态占用时间
USRCPU:用户态占用时间
RDELAY :运行队列延迟,即在运行队列中等待的时间。
VGROW:过去10s增长的虚拟空间的大小
RGROW:过去10s增长的内存的大小
RDDSK:过去10s读磁盘的数据量
WRDSK :过去10s写磁盘的数据量
RUID :进程执行时的真实用户ID
EUID:该进程执行的有效用户ID
ST EXC:EXC 终止进程的退出代码(`ST'列的第二个位置是E)或致命信号的编号(`ST'列的第二个位置是S或C)
THR :进程的线程总数
S:主线程当前状态,`R'表示运行(当前正在处理或在运行队列中),`S'表示可中断睡眠(等待事件发生),`D'表示可中断睡眠,`Z'表示不可中断。可中断,`Z'表示僵尸(等待与父进程同步),`T'表示停止(暂停或跟踪),`W'表示交换,`E'(退出)表示在最后一个间隔期间完成的进程。E'(exit)表示在最后的时间间隔内完成的进程。
CPUNR :该(主)线程正在运行或最近运行的CPU的标识
CPU :这个进程的占用率与系统层面上这个资源的可用容量有关
CMD:进程的名称 ,进程的完整命令行(包括参数)。如果命令行的长度超过了屏幕行的长度,可以用方向键->和<-进行水平滚动。
指令
显示正在活动的数字:
'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 -r 文件名来查看日志
日志的配置文件在/usr/share/atop/atop.daily
LOGOPTS="" # default options
LOGINTERVAL=600 # default interval in seconds
LOGGENERATIONS=28 # default number of days
LOGPATH=/var/log/atop # default log location
评论已关闭