博客
关于我
Linux 系统监控工具 atop
阅读量:402 次
发布时间:2019-03-05

本文共 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 startsystemctl start atop命令启动监控服务。监控数据默认保存在/var/log/atop目录下,每天保留28天的数据。监控配置可以在/etc/atop/atop.daily文件中修改。

    使用atop -r <filename>命令读取日志文件。按t键向前翻页,T键向后翻页,b键跳转到指定时间(时间格式为hh:mm)。

    通过以上内容,可以全面了解atop工具的监控功能及其使用方法。

    转载地址:http://uxqzz.baihongyu.com/

    你可能感兴趣的文章
    npm设置源地址,npm官方地址
    查看>>
    npm设置镜像如淘宝:http://npm.taobao.org/
    查看>>
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>
    NPOI格式设置
    查看>>
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>