atop命令详解
atop命令安装:
atop官网:ATopTool。nlbash:atop:commandnotfoundDebianaptgetinstallatopUbuntuaptgetinstallatopAlpineapkaddatopArchLinuxpacmanSatopKaliLinuxaptgetinstallatopFedoradnfinstallatopRaspbianaptgetinstallatopDockerdockerruncmd。catatopatopatop命令补充说明:
它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。atop是一款开源软件,我们可以从这里获得其源码和rpm安装包。atop命令语法:atop(选项)(参数)atop命令选项:atop进程视图:g默认输出m内存相关输出d磁盘相关输出n网络相关输出c命令行输出u查看对应的用户资源使用情况p显示所有每个进程的所有信息占用情况(disk、mem、io)P(大写)正则匹配,显示所有匹配到的进程退出atop:qatop命令运行效果ATOPDevTest2018121815:59:32138d2h18m47selapsedPRCsys42d19huser143h00mproc340zombie0exit0CPUsys33user13irq0idle737wait15cpusys10user0irq0idle89cpu003w0cpusys2user3irq0idle84cpu000w10cpusys3user2irq0idle93cpu001w1cpusys5user1irq0idle93cpu002w1cpusys4user1irq0idle95cpu007w0cpusys4user1irq0idle95cpu006w0cpusys2user2irq0idle93cpu004w2cpusys3user1irq0idle95cpu005w0CPLavg10。58avg50。73avg150。72csw482214e5intr18905e6MEMtot15。5Gfree731。8Mcache2。0Gbuff37。9Mslab196。2MSWPtot8。0Gfree4。1Gvmcom16。3Gvmlim15。7GPAGscan16655e6steal1211e7stall2524e3swin27736e3swout2464e4DSKsdabusy12read23631e4write1739e5avio3。54msNETtransporttcpi17705e6tcpo15930e6udpi1932377udpo3568950NETnetworkipi177079e5ipo159353e5ipfrw0deliv1771e7NETeth07pcki36801e5pcko77944e5si177Kbpsso7043KbpsNETvnet00pcki3709287pcko6439543si0Kbpsso0KbpsNETbr0pcki36786e5pcko66666e5si132Kbpsso6982KbpsNETlopcki14041e6pcko14041e6si1224Kbpsso1224KbpssystemandprocessactivitysincebootPIDSYSCPUUSRCPUVGROWRGROWRDDSKWRDSKSTEXCSCPUNRCPUCMD19126990h07m0。00s0K0K0K0KNS230ksmd15338347m43s80h24m10。8G6。9G4。6T345。1GNS03mysqld16879529m17s52h12m3。6G2260K196。3G76。8GNS62qemukvm2871724m50s455m02s4。0G2。9G4。3G46。3TNS61redisserver722114m15s0。00s0K0K0K15。9TNS00jbd2sda28125113m06s0。00s0K0K0K2。1TNS50kswapd0487135m39s41m40s742。2M128。7M571。6M173。4GNS60redisserver291138m32s27m52s162。2M25536K17820K16KNS50redisserver290138m48s27m34s138。2M4100K2596K2340KNS60redisserver300838m18s27m58s134。2M2996K788K12KNS30redisserver99764m04s0。00s0K0K435。9M1。6TNS00flush8:02844637m54s3m13s16084K1256K0K0KNS10zabbixagentd8232m53s0。00s0K0K0K0KNS00kblockd03620m08s0。00s0K0K0K0KNS10events13516m35s0。00s0K0K0K0KNS00events03910m14s0。00s0K0K0K0KNS40events427135m03s2m24s106。0M1104K5。4G24KNS00ksmtuned406m11s0。00s0K0K0K0KNS50events519101m45s4m20s221。8M1072K8K4KNS60phpfpm375m57s0。00s0K0K0K0KNS20events2425m44s0。00s0K0K0K0KNS70events7415m25s0。00s0K0K0K0KNS60events6291783。81s3m26s352。3M28260K1520K0KNS50memcached384m21s0。00s0K0K0K0KNS30events3284501m54s91。87s16096K872K1。2G8008KNS00zabbixagentd16561m57s43。73s93156K704K37920K4。1GNS30auditd27352m11s16。52s114。2M1020K12。8T4。7TNS00crond2844788。15s30。48s16084K976K4。5G8KNS00zabbixagentd2844987。57s30。60s16084K972K4。7G16KNS00zabbixagentd2844886。63s30。23s16084K1004K4。5G16KNS00zabbixagentd62876。76s1m49s286。6M9092K124K0KNS40php72209346。71s62。16s208。2M21520K39388K380KNS00phpfpm2207945。72s62。51s208。4M22592K44364K10648KNS20phpfpm2208344。79s59。30s208。1M21528K42528K444KNS00phpfpm2209844。42s57。63s208。2M22600K41828K7200KNS00phpfpm2209042。89s56。97s208。2M20752K48004K392KNS00phpfpm2208744。15s54。94s208。1M22808K46068K19560KNS10phpfpm2209643。09s52。90s208。2M21952K32864K576KNS00phpfpm2683240。60s55。15s208。2M22376K30436K396KNS00phpfpm2208642。86s52。70s208。2M21200K33388K392KNS00phpfpm393。17s0。00s0K0K0K0KNS00migration02209138。75s53。28s208。2M21860K37836K432KNS00phpfpm
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日志文件,我们可以使用atoprXXX命令对日志文件进行查看。那以什么形式保存atop日志文件呢?
对于atop日志文件的保存方式,我们可以这样:每天保存一个atop日志文件,该日志文件记录当天信息日志文件以atopYYYYMMDD的方式命名设定日志失效期限,自动删除一段时间前的日志文件
其实atop开发者已经提供了以上日志保存方式,相应的atop。daily脚本可以在源码目录下找到。在atop。daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):(sleep3;findLOGPATHnameatopmtime28execrm{};)
最后,我们修改cron文件,每天凌晨执行atop。daily脚本:00rootetccron。dailyatop。daily