侧边栏壁纸
博主头像
laoliyun

生活总是这样,不能叫人处处都满意,但我们还要热情地活下去,人活一生值得爱的东西很多,不要因为一个不满意就灰心。

  • 累计撰写 133 篇文章
  • 累计创建 44 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Atop工具使用

laoliyun
2022-06-05 / 0 评论 / 1 点赞 / 788 阅读 / 1,292 字
温馨提示:
本文最后更新于 2022-06-29,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

简介

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,再通过输入指定的时间,跳转

1. 切换视图:

d 磁盘视图,查看每个进程占用io的情况
c 命令行视图,查看每个进程具体的执行命令
m 内存视图,查看每个进程占用内存的情况
g 默认视图
n 网络视图
u 查看对应用户的资源使用情况
p 显示每个进程所有占用情况

1

评论区