Linux 系统监控工具 atop (2)

当物理内存不足时,内核会将进程内存中不常用的页逐出内存写入磁盘中的 Swap 分区,当进程需要读取这些页时再将它们从磁盘中加载到内存。

磁盘

DSK 列描述磁盘使用情况:

vda: 该列为磁盘设备名,每个设备拥有一行

busy: 设备处理IO请求的时间占比

read: 监控周期内读请求数

write: 监控周期内写请求数

KiB/r: 每次读请求的平均数据量

KiB/w: 每次写请求的平均数据量

MBr/s: 每秒读取的数据量

MBw/s: 每秒写入的数据量

avq: io 队列的平均长度

avio: 单次读写请求需要的毫秒数

网络

网络层通常包含 transport、network、 eth 和 lo 行, 分别表示传输层、网络层、以太网(数据链路层)和本地回环的监控指标。

tcpi/udpi/ipi: 接收的 tcp/udp/ip 数据包

tcpo/udpo/ipo : 发出的 tcp/udp/ip 数据包

tcpao: 主动建立的tcp连接数(active open)

tcppo: 被动建立的tcp连接数(passive open), 即通过 listen() 建立的连接数

tcprs: tcp 重传次数

tcpie: 读取时发生错误的次数

进程列表

进程列表有多个视图分别展示不同方面的数据:

默认视图(Generic information): 按G键回到默认视图

内存视图(Memory information): 按M键进入内存视图,显示进程的内存占用情况

命令行视图(Command Line information): 按C键进入命令行视图,显示进程启动时详细命令行参数

调度器视图(Scheduling information): 按S键进入视图,显示线程调度、CPU使用和运行统计

磁盘视图(Disk information): 按D键进入视图,显示进程的磁盘IO使用情况

网络视图(Network information): 按N键进入视图,显示进程的网络IO使用情况

atop 默认展示过去10s内状态发生变化的进程,按下A键可以查看全部进程。

默认视图

默认视图展示常用的监控项:

PID: 进程ID

SYSCPU: 在内核态下使用CPU时间

USERCPU: 在用户态下使用CPU时间

VGROW: 过去一个监控周期内进程的虚拟内存空间增长,包括malloc()分配内存、使用共享内存以及free()释放内存造成的空间变化

RGROW: 过去一个监控周期内进程常驻内存空间(resident memory)增长, 即进程内存空间中驻留在物理内存中未被逐出到SWAP分区的部分。

RUID, EUID, SUID: 启动进程的UID

RUID: 登录时的用户ID

EUID: Effective Uid。通常EUID=RUID, setuid 或 sudo 等指令能以另一个用户身份执行命令,这个被“代理”的用户即为 Effective User。

EXC: 进程退出时的返回码

THR: 进程中的线程数

S: 进程状态,与ps命令的进程描述符相同

简单介绍一下进程状态

R: Runing

S: sleeping interruptible 等待某个事件

D: sleeping non-interruptible 通常在等待IO

Z: Zombie 僵尸进程

E: 进程在上个监控周期内退出

T: TASK_STOPPED 或 TASK_TRACED 状态

TASK_STOPPED: 进程收到 SIGSTOP 信号进入暂停状态

TASK_TRACED: 进程进入暂停状态等待跟踪它的进程,比如进程被 gdb 的断点暂停

内存视图

Linux 系统监控工具 atop

按M键可以进入内存视图查看进程的内存使用情况:

MINFLT: 进程缺页小错误(minor page fault)的次数

MAJFLT: 进程缺页大错误(major page fault)的次数

VSIZE: 虚拟内存空间的总大小

RSIZE: 常驻内存(resident memory)的总大小

VGROW: 虚拟内存空间在上个监控周期的增长

RGROW: 虚拟内存空间在上个监控周期的增长

MEM: 物理内存使用占比

Linux 的内存管理系统中需要读取磁盘才能解决缺页中断称为大错误(Major Page Fault), 不需要读取磁盘可以解决的缺页中断被称为小错误(Minor Page Fault)。

一般情况下 MINFLT 是因为频繁分配/回收大内存块导致的,可以考虑使用内存池优化程序来减少缺页错误; MAJFLT 是由于物理内存不足导致。

调度视图

Linux 系统监控工具 atop

按S键可以进入调度视图(Scheduling View)查看进程运行和CPU情况:

TRUN: running 状态的线程数

TSLPI: sleeping interruptible 状态线程数

TSLPU: 表示 sleeping uninterruptible 状态进程数

PILI: 调度策略

PRI,NICE: 优先级,PRI+NICE越低优先级越高

CPU: CPU 使用时间占比

监控服务

除了查看当前的状态外,atop 还可以服务方式运行在后台监控并记录系统状态。

使用 service atop start 或 systemctl start atop 命令启动atop监控服务。

atop 默认将数据保存在/var/log/atop目录下,10 分钟采集一次,保留最近28天的数据。上述配置可以在 /etc/atop/atop.daily 文件中进行修改。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywsxw.html