atop 命令

| 选择喜欢的代码风格  

atop 命令安装:


atop 官网:ATopTool.nl

-bash: atop: command not found

#RHEL/CentOS/Fedora
yum install atop

#Debian/Ubuntu
sudo apt-get install atop

atop 命令补充说明:


它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。atop是一款开源软件,我们可以从这里获得其源码和rpm安装包。

atop 命令语法:


atop(选项)(参数)

atop 命令选项:


#atop 进程视图:

g   —— 默认输出
m  —— 内存相关输出
d   —— 磁盘相关输出
n   —— 网络相关输出
c   —— 命令行输出
u  查看对应的用户资源使用情况
p  显示所有每个进程的所有信息占用情况(disk、mem、io)
P(大写) 正则匹配,显示所有匹配到的进程

退出atop:q

atop 命令运行效果


ATOP - Dev_Test        2018/12/18  15:59:32        ---------        138d2h18m47s elapsed
PRC |  sys   42d19h  | user 143h00m  |  #proc    340  |  #zombie    0 |  #exit      0  |
CPU |  sys      33%  | user     13%  |  irq       0%  |  idle    737% |  wait     15%  |
cpu |  sys      10%  | user      0%  |  irq       0%  |  idle     89% |  cpu003 w  0%  |
cpu |  sys       2%  | user      3%  |  irq       0%  |  idle     84% |  cpu000 w 10%  |
cpu |  sys       3%  | user      2%  |  irq       0%  |  idle     93% |  cpu001 w  1%  |
cpu |  sys       5%  | user      1%  |  irq       0%  |  idle     93% |  cpu002 w  1%  |
cpu |  sys       4%  | user      1%  |  irq       0%  |  idle     95% |  cpu007 w  0%  |
cpu |  sys       4%  | user      1%  |  irq       0%  |  idle     95% |  cpu006 w  0%  |
cpu |  sys       2%  | user      2%  |  irq       0%  |  idle     93% |  cpu004 w  2%  |
cpu |  sys       3%  | user      1%  |  irq       0%  |  idle     95% |  cpu005 w  0%  |
CPL |  avg1    0.58  | avg5    0.73  |  avg15   0.72  |  csw 482214e5 |  intr 18905e6  |
MEM |  tot    15.5G  | free  731.8M  |  cache   2.0G  |  buff   37.9M |  slab  196.2M  |
SWP |  tot     8.0G  | free    4.1G  |                |  vmcom  16.3G |  vmlim  15.7G  |
PAG |  scan 16655e6  | steal 1211e7  |  stall 2524e3  |  swin 27736e3 |  swout 2464e4  |
DSK |           sda  | busy     12%  |  read 23631e4  |  write 1739e5 |  avio 3.54 ms  |
NET |  transport     | tcpi 17705e6  |  tcpo 15930e6  |  udpi 1932377 |  udpo 3568950  |
NET |  network       | ipi 177079e5  |  ipo 159353e5  |  ipfrw      0 |  deliv 1771e7  |
NET |  eth0      7%  | pcki 36801e5  |  pcko 77944e5  |  si  177 Kbps |  so 7043 Kbps  |
NET |  vnet0     0%  | pcki 3709287  |  pcko 6439543  |  si    0 Kbps |  so    0 Kbps  |
NET |  br0     ----  | pcki 36786e5  |  pcko 66666e5  |  si  132 Kbps |  so 6982 Kbps  |
NET |  lo      ----  | pcki 14041e6  |  pcko 14041e6  |  si 1224 Kbps |  so 1224 Kbps  |
                     *** system and process activity since boot ***
  PID  SYSCPU  USRCPU  VGROW   RGROW  RDDSK  WRDSK  ST EXC S  CPUNR  CPU CMD         1/9
  126 990h07m   0.00s     0K      0K     0K     0K  N-   - S      2  30% ksmd
15338 347m43s  80h24m  10.8G    6.9G   4.6T 345.1G  N-   - S      0   3% mysqld
16879 529m17s  52h12m   3.6G   2260K 196.3G  76.8G  N-   - S      6   2% qemu-kvm
 2871 724m50s 455m02s   4.0G    2.9G   4.3G  46.3T  N-   - S      6   1% redis-server
  722 114m15s   0.00s     0K      0K     0K  15.9T  N-   - S      0   0% jbd2/sda2-8
  125 113m06s   0.00s     0K      0K     0K   2.1T  N-   - S      5   0% kswapd0
 4871  35m39s  41m40s 742.2M  128.7M 571.6M 173.4G  N-   - S      6   0% redis-server
 2911  38m32s  27m52s 162.2M  25536K 17820K    16K  N-   - S      5   0% redis-server
 2901  38m48s  27m34s 138.2M   4100K  2596K  2340K  N-   - S      6   0% redis-server
 3008  38m18s  27m58s 134.2M   2996K   788K    12K  N-   - S      3   0% redis-server
  997  64m04s   0.00s     0K      0K 435.9M   1.6T  N-   - S      0   0% flush-8:0
28446  37m54s   3m13s 16084K   1256K     0K     0K  N-   - S      1   0% zabbix_agentd
   82  32m53s   0.00s     0K      0K     0K     0K  N-   - S      0   0% kblockd/0
   36  20m08s   0.00s     0K      0K     0K     0K  N-   - S      1   0% events/1
   35  16m35s   0.00s     0K      0K     0K     0K  N-   - S      0   0% events/0
   39  10m14s   0.00s     0K      0K     0K     0K  N-   - S      4   0% events/4
 2713   5m03s   2m24s 106.0M   1104K   5.4G    24K  N-   - S      0   0% ksmtuned
   40   6m11s   0.00s     0K      0K     0K     0K  N-   - S      5   0% events/5
 1910   1m45s   4m20s 221.8M   1072K     8K     4K  N-   - S      6   0% php-fpm
   37   5m57s   0.00s     0K      0K     0K     0K  N-   - S      2   0% events/2
   42   5m44s   0.00s     0K      0K     0K     0K  N-   - S      7   0% events/7
   41   5m25s   0.00s     0K      0K     0K     0K  N-   - S      6   0% events/6
 2917  83.81s   3m26s 352.3M  28260K  1520K     0K  N-   - S      5   0% memcached
   38   4m21s   0.00s     0K      0K     0K     0K  N-   - S      3   0% events/3
28450   1m54s  91.87s 16096K    872K   1.2G  8008K  N-   - S      0   0% zabbix_agentd
 1656   1m57s  43.73s 93156K    704K 37920K   4.1G  N-   - S      3   0% auditd
 2735   2m11s  16.52s 114.2M   1020K  12.8T   4.7T  N-   - S      0   0% crond
28447  88.15s  30.48s 16084K    976K   4.5G     8K  N-   - S      0   0% zabbix_agentd
28449  87.57s  30.60s 16084K    972K   4.7G    16K  N-   - S      0   0% zabbix_agentd
28448  86.63s  30.23s 16084K   1004K   4.5G    16K  N-   - S      0   0% zabbix_agentd
 6287   6.76s   1m49s 286.6M   9092K   124K     0K  N-   - S      4   0% php7
22093  46.71s  62.16s 208.2M  21520K 39388K   380K  N-   - S      0   0% php-fpm
22079  45.72s  62.51s 208.4M  22592K 44364K 10648K  N-   - S      2   0% php-fpm
22083  44.79s  59.30s 208.1M  21528K 42528K   444K  N-   - S      0   0% php-fpm
22098  44.42s  57.63s 208.2M  22600K 41828K  7200K  N-   - S      0   0% php-fpm
22090  42.89s  56.97s 208.2M  20752K 48004K   392K  N-   - S      0   0% php-fpm
22087  44.15s  54.94s 208.1M  22808K 46068K 19560K  N-   - S      1   0% php-fpm
22096  43.09s  52.90s 208.2M  21952K 32864K   576K  N-   - S      0   0% php-fpm
26832  40.60s  55.15s 208.2M  22376K 30436K   396K  N-   - S      0   0% php-fpm
22086  42.86s  52.70s 208.2M  21200K 33388K   392K  N-   - S      0   0% php-fpm
    3  93.17s   0.00s     0K      0K     0K     0K  N-   - S      0   0% migration/0
22091  38.75s  53.28s 208.2M  21860K 37836K   432K  N-   - S      0   0% php-fpm

ATOP列:该列显示了主机名、信息采样日期和时间点

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 字段指示各层或活动网口发包数目

atop 日志:


每个时间点采样页面组合起来就形成了一个atop日志文件,我们可以使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?

对于atop日志文件的保存方式,我们可以这样:

  • 每天保存一个atop日志文件,该日志文件记录当天信息
  • 日志文件以"atop_YYYYMMDD"的方式命名
  • 设定日志失效期限,自动删除一段时间前的日志文件

其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本可以在源码目录下找到。在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):

(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )& 

最后,我们修改cron文件,每天凌晨执行atop.daily脚本:

0 0 * * * root /etc/cron.daily/atop.daily

atop 命令扩展阅读:




发表评论