top命令详解_PHP知识总结

atop命令详解

atop 命令安装:


atop 官网:ATopTool.nl

-bash: atop: command not found #Debianapt-get install atop #Ubuntuapt-get install atop #Alpineapk add atop #Arch Linuxpacman -S atop #Kali Linuxapt-get install atop #Fedoradnf install atop #Raspbianapt-get install atop #Dockerdocker run cmd.cat/atop 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        //  ::        ---------        138d2h18m47s elapsedPRC |  sys   42d19h  | user 143h00m  |  #proc      |  #zombie    0 |  #exit      0  |CPU |  sys      %  | user     %  |  irq       0%  |  idle    % |  wait     %  |cpu |  sys      %  | user      0%  |  irq       0%  |  idle     % |  cpu003 w  0%  |cpu |  sys       2%  | user      3%  |  irq       0%  |  idle     % |  cpu000 w %  |cpu |  sys       3%  | user      2%  |  irq       0%  |  idle     % |  cpu001 w  1%  |cpu |  sys       5%  | user      1%  |  irq       0%  |  idle     % |  cpu002 w  1%  |cpu |  sys       4%  | user      1%  |  irq       0%  |  idle     % |  cpu007 w  0%  |cpu |  sys       4%  | user      1%  |  irq       0%  |  idle     % |  cpu006 w  0%  |cpu |  sys       2%  | user      2%  |  irq       0%  |  idle     % |  cpu004 w  2%  |cpu |  sys       3%  | user      1%  |  irq       0%  |  idle     % |  cpu005 w  0%  |CPL |  avg1      | avg5      |  avg15     |  csw 482214e5 |  intr 18905e6  |MEM |  tot    .5G  | free  .8M  |  cache   2.0G  |  buff   .9M |  slab  .2M  |SWP |  tot     8.0G  | free    4.1G  |                |  vmcom  .3G |  vmlim  .7G  |PAG |  scan 16655e6  | steal 1211e7  |  stall 2524e3  |  swin 27736e3 |  swout 2464e4  |DSK |           sda  | busy     %  |  read 23631e4  |  write 1739e5 |  avio  ms  |NET |  transport     | tcpi 17705e6  |  tcpo 15930e6  |  udpi  |  udpo   |NET |  network       | ipi 177079e5  |  ipo 159353e5  |  ipfrw      0 |  deliv 1771e7  |NET |  eth0      7%  | pcki 36801e5  |  pcko 77944e5  |  si   Kbps |  so  Kbps  |NET |  vnet0     0%  | pcki   |  pcko   |  si    0 Kbps |  so    0 Kbps  |NET |  br0     ----  | pcki 36786e5  |  pcko 66666e5  |  si   Kbps |  so  Kbps  |NET |  lo      ----  | pcki 14041e6  |  pcko 14041e6  |  si  Kbps |  so  Kbps  |                     *** system and process activity since boot ***  PID  SYSCPU  USRCPU  VGROW   RGROW  RDDSK  WRDSK  ST EXC S  CPUNR  CPU CMD         1/9   990h07m   0.00s     0K      0K     0K     0K  N-   - S      2  % ksmd15338 347m43s  80h24m  .8G    6.9G   4.6T .1G  N-   - S      0   3% mysqld16879 529m17s  52h12m   3.6G   2260K .3G  .8G  N-   - S      6   2% qemu-kvm  724m50s 455m02s   4.0G    2.9G   4.3G  .3T  N-   - S      6   1% redis-server   114m15s   0.00s     0K      0K     0K  .9T  N-   - S      0   0% jbd2/sda2-8   113m06s   0.00s     0K      0K     0K   2.1T  N-   - S      5   0% kswapd0   35m39s  41m40s .2M  .7M .6M .4G  N-   - S      6   0% redis-server   38m32s  27m52s .2M  25536K 17820K    16K  N-   - S      5   0% redis-server   38m48s  27m34s .2M   4100K  2596K  2340K  N-   - S      6   0% redis-server   38m18s  27m58s .2M   2996K   788K    12K  N-   - S      3   0% redis-server    64m04s   0.00s     0K      0K .9M   1.6T  N-   - S      0   0% flush-8:  37m54s   3m13s 16084K   1256K     0K     0K  N-   - S      1   0% zabbix_agentd     32m53s   0.00s     0K      0K     0K     0K  N-   - S      0   0% kblockd/0     20m08s   0.00s     0K      0K     0K     0K  N-   - S      1   0% events/1     16m35s   0.00s     0K      0K     0K     0K  N-   - S      0   0% events/0     10m14s   0.00s     0K      0K     0K     0K  N-   - S      4   0% events/   5m03s   2m24s .0M   1104K   5.4G    24K  N-   - S      0   0% ksmtuned      6m11s   0.00s     0K      0K     0K     0K  N-   - S      5   0% events/   1m45s   4m20s .8M   1072K     8K     4K  N-   - S      6   0% php-fpm      5m57s   0.00s     0K      0K     0K     0K  N-   - S      2   0% events/2      5m44s   0.00s     0K      0K     0K     0K  N-   - S      7   0% events/7      5m25s   0.00s     0K      0K     0K     0K  N-   - S      6   0% events/  .81s   3m26s .3M  28260K  1520K     0K  N-   - S      5   0% memcached      4m21s   0.00s     0K      0K     0K     0K  N-   - S      3   0% events/   1m54s  .87s 16096K    872K   1.2G  8008K  N-   - S      0   0% zabbix_agentd    1m57s  .73s 93156K    704K 37920K   4.1G  N-   - S      3   0% auditd    2m11s  .52s .2M   1020K  .8T   4.7T  N-   - S      0   0% crond28447  .15s  .48s 16084K    976K   4.5G     8K  N-   - S      0   0% zabbix_agentd28449  .57s  .60s 16084K    972K   4.7G    16K  N-   - S      0   0% zabbix_agentd28448  .63s  .23s 16084K   1004K   4.5G    16K  N-   - S      0   0% zabbix_agentd    6.76s   1m49s .6M   9092K   124K     0K  N-   - S      4   0% php722093  .71s  .16s .2M  21520K 39388K   380K  N-   - S      0   0% php-fpm22079  .72s  .51s .4M  22592K 44364K 10648K  N-   - S      2   0% php-fpm22083  .79s  .30s .1M  21528K 42528K   444K  N-   - S      0   0% php-fpm22098  .42s  .63s .2M  22600K 41828K  7200K  N-   - S      0   0% php-fpm22090  .89s  .97s .2M  20752K 48004K   392K  N-   - S      0   0% php-fpm22087  .15s  .94s .1M  22808K 46068K 19560K  N-   - S      1   0% php-fpm22096  .09s  .90s .2M  21952K 32864K   576K  N-   - S      0   0% php-fpm26832  .60s  .15s .2M  22376K 30436K   396K  N-   - S      0   0% php-fpm22086  .86s  .70s .2M  21200K 33388K   392K  N-   - S      0   0% php-fpm    3  .17s   0.00s     0K      0K     0K     0K  N-   - S      0   0% migration/  .75s  .28s .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列,各字段值相加结果为%

CPL列:该列显示CPU负载情况

  • avg1、avg5和avg15字段:过去1分钟、5分钟和分钟内运行队列中的平均进程数量
  • 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信息采样周期(默认为分钟);通过修改以下命令中的数值改变日志保存天数(默认为天):

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

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

 * * * root /etc/cron.daily/atop.daily
原文链接:,转发请注明来源!