美文网首页
2020-12-16 Atop工具使用

2020-12-16 Atop工具使用

作者: 爱钓鱼的码农 | 来源:发表于2020-12-16 13:43 被阅读0次

    简介

    atop是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析,更好的进行问题定位.

    安装及使用

    • yum install -y atop

    • /usr/bin/atop -R -w /var/log/atop/atop_20201216 30 每30秒采集一次数据,也可以执行atop.daily(可通过find查找),atop.daily内容如下:

    #!/bin/bash
    LOGOPTS="-R"                # default options
    LOGINTERVAL=30              # default interval in seconds
    LOGGENERATIONS=28           # default number of days
    # allow administrator to overrule the variables
    # defined above
    #
    DEFAULTSFILE=/etc/sysconfig/atop        # possibility to overrule vars
    if [ -e "$DEFAULTSFILE" ]
    then
        . "$DEFAULTSFILE"
        # validate overruled variables
        # (LOGOPTS and LOGINTERVAL are implicitly by atop)
        #
        case "$LOGGENERATIONS" in
            ''|*[!0-9]*)
            echo non-numerical value for LOGGENERATIONS >&2
            exit 1;;
        esac
    fi
    CURDAY=`date +%Y%m%d`
    LOGPATH=/var/log/atop
    BINPATH=/usr/bin
    PIDFILE=/var/run/atop.pid
    # verify if atop still runs for daily logging
    #
    if [ -e "$PIDFILE" ] && ps -p `cat "$PIDFILE"` | grep 'atop$' > /dev/null
    then
        kill -USR2 `cat "$PIDFILE"`       # final sample and terminate
        CNT=0
        while ps -p `cat "$PIDFILE"` > /dev/null
        do
            let CNT+=1
            if [ $CNT -gt 5 ]
            then
                break;
            fi
            sleep 1
        done
        rm "$PIDFILE"
    fi
    # delete logfiles older than N days (configurable)
    # start a child shell that activates another child shell in
    # the background to avoid a zombie
    #
    ( (sleep 3; find "$LOGPATH" -name 'atop_*' -mtime +"$LOGGENERATIONS" -exec rm {} \;)& )
    # activate atop with an interval of S seconds (configurable),
    # replacing the current shell
    #
    echo $$ > $PIDFILE
    exec $BINPATH/atop $LOGOPTS -w "$LOGPATH"/atop_"$CURDAY" "$LOGINTERVAL" > "$LOGPATH/daily.log" 2>&1
    

    字段解释

    • ATOP: 该列显示了主机名,当前展示log信息采样具体日期和时间点
    • PRC: 该列显示进程整体运行情况,sys、usr字段分别指示进程在内核态和用户态的运行时间
      • proc字段 指示进程总数
      • zombie字段 指示僵死进程的数量
      • exit字段 指示atop采样周期期间退出的进程数量
    • CPU: 该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)
      • sys、usr字段指示 CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
      • irq字段 指示CPU被用于处理中断的时间比例
      • idle字段 指示CPU处在完全空闲状态的时间比例
      • wait字段 指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
    • CPU列各个字段指示值相加结果为N00%,其中N为cpu核数.
    • cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%
    • CPL列: 该列显示CPU负载情况
      • avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
      • csw字段指示上下文交换次数
      • intr字段指示中断发生次数
    • MEM列:该列指示内存的使用情况
      • tot字段指示物理内存总量
      • free字段指示空闲内存的大小
      • cache字段指示用于页缓存的内存大小
      • buff字段指示用于文件缓存的内存大小
      • slab字段指示系统内核占用的内存大小
    • SWP列:该列指示交换空间的使用情况
      • tot字段指示交换区总量
      • free字段指示空闲交换空间大小
    • PAG列:该列指示虚拟内存分页情况
      • swin、swout字段:换入和换出内存页数
    • DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息
      • sda字段:磁盘设备标识
      • busy字段:磁盘忙时比例
      • read、write字段:读、写请求数量
    • NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息
      • XXXi 字段指示各层或活动网口收包数目
      • XXXo 字段指示各层或活动网口发包数目
    1. 日常使用
      进入atop日志 atop -r /path/to/atop_log
      前进翻页 t
      后退翻页 T
      进程列表前进翻页: ctrl + f
      进程列表后退翻页: ctrl + b
      按时间跳转 b,再通过输入指定的时间,跳转
    2. 切换视图:
      • d 磁盘视图,查看每个进程占用io的情况
      • c 命令行视图,查看每个进程具体的执行命令
      • m 内存视图,查看每个进程占用内存的情况
      • g 默认视图
      • n 网络视图
      • u 查看对应用户的资源使用情况
      • p 显示每个进程所有占用情况

    相关文章

      网友评论

          本文标题:2020-12-16 Atop工具使用

          本文链接:https://www.haomeiwen.com/subject/libngktx.html