本文共 2342 字,大约阅读时间需要 7 分钟。
系统监控是运维工作中的重要环节。本文以atop工具为例,详细介绍了系统监控的关键项及其操作方法。
atop工具可以通过yum或apt包管理器进行安装。它提供了全面的系统监控功能,包括进程状态、CPU使用情况、内存使用情况等。atop默认每10秒更新一次监控数据,并在状态发生变化时显示进程信息。按下A键可以查看全部进程详情。
系统状态
atop的界面分为上半部分的系统监控项和下半部分的进程列表。第一行显示总体进程状况:
- sys/user:表示CPU在内核态和用户态的运行时间比例。
- #proc:当前总进程数。
- #trun:运行状态(running)的线程数。
- #tslpi:可中断睡眠状态(sleeping interruptible)的线程数。
- #tslpu:不可中断睡眠状态(sleeping uninterruptible)的线程数。
- #zombie:僵尸进程数。
- clones:在监控周期内调用clone()的次数。
进程状态
进程在Linux系统中有两种睡眠状态:
可中断睡眠(interruptible sleep):进程可以接收系统信号。 不可中断睡眠(uninterruptible sleep):进程不接收系统信号,通常用于等待IO操作。 不可中断睡眠状态的进程在等待磁盘读写时会被保留,避免数据不一致。这种状态的进程不会因kill -9信号而终止。
僵尸进程(zombie)是指父进程未调用wait或waitpid获取子进程状态的子进程。大量僵尸进程会占用进程描述符空间,影响系统性能。孤儿进程是指父进程终止但未被init进程接管的进程,不会对系统造成严重影响。
CPU
每个CPU逻辑核心都有一个cpu行,显示CPU状态:
- sys:内核态使用时间。
- user:用户态使用时间。
- irq:处理中断的时间。
- idle:空闲时间。
CPL行显示CPU负载:
- avg1, avg5, avg15:过去1分钟、5分钟、15分钟内的负载平均值。
- csw:监控周期内上下文切换次数。
- intr:中断发生次数。
系统负载是指内核运行队列中进程的平均数与CPU核心数的比值。当负载超过1时,说明系统有进程因等待CPU而阻塞。不可中断睡眠进程通常是IO等待导致的负载急剧上升。
常见的CPU密集型任务包括:
- 大规模排序计算(如mysql filesort)。
- 大量正则表达式匹配。
- 大规模Hash Code计算。
- 大规模加解密或压缩解压计算。
发现CPU使用率上升时,应首先检查是否有上述CPU密集型任务运行。
内存
MEM行显示内存使用情况:
- tot:物理内存总量。
- free:空闲内存总量。
- cache:文件缓存用量。
- buff:块设备缓存用量。
- slab:内核slab内存用量。
- dirty:需要写回磁盘的脏页用量。
文件缓存(cache)位于文件系统级别,用于加速文件读写。块设备缓存(buffer)用于直接读写磁盘数据。cache和buffer都可能在读写时使用。
PAG行显示页缓存使用情况:
- scan:当可用内存不足时扫描的页数。
- stall:内核紧急加载页的次数。
- steal:虚拟机相关指标。
- swin:从Swap分区加载页的次数。
- swout:将内存页写入Swap分区的次数。
SWP行显示Swap分区使用情况:
- tot:Swap分区总大小。
- free: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连接数。
- tcppo:被动建立的tcp连接数。
- 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默认显示过去10秒内状态发生变化的进程信息,按A键可以查看全部进程。
监控服务
atop支持作为监控服务运行。使用service atop start或systemctl start atop命令启动监控服务。监控数据默认保存在/var/log/atop目录下,每天保留28天的数据。监控配置可以在/etc/atop/atop.daily文件中修改。
使用atop -r <filename>命令读取日志文件。按t键向前翻页,T键向后翻页,b键跳转到指定时间(时间格式为hh:mm)。
通过以上内容,可以全面了解atop工具的监控功能及其使用方法。
转载地址:http://uxqzz.baihongyu.com/