Linux监控工具(atop安装使用)

atop是一个功能强大的linux服务器监控工具,它支持收集和显示CPU,内存,磁盘,网络,进程等资源的相关信息,负载比较大的资源信息会以特别的颜色显示, 可以作为系统管理的辅助工具使用。官方网站为:
http://www.atoptool.nl/
项目官方wiki地址:http://fedoraproject.org/wiki/EPEL/zh-cn
一、安装 1.yum安装
安装atop需要先安装第三方源:安装第三方yum源EPEL,EPEL的全称叫 Extra Packages for Enterprise Linux。

yum install epel-release# yum install -y atop

二、使用介绍 运行atop n,可每隔n秒显示系统资源信息:
ATOP - server12020/09/0221:25:33--------------5s elapsed PRC | sys0.08s| user0.02s| #proc96| #trun1| #tslpi155| #tslpu0| #zombie0| clones0|| #exit0| CPU | sys0%| user0%| irq0%| idle200%| wait0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%| cpu | sys0%| user0%| irq0%| idle100%| cpu000 w0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%| cpu | sys0%| user0%| irq0%| idle100%| cpu001 w0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%| CPL | avg10.00| avg50.04| avg150.05||| csw710| intr626||| numcpu2| MEM | tot974.6M| free242.4M| cache 395.2M| buff2.0M| slab90.3M| shmem7.7M| shrss0.0M| vmbal0.0M| hptot0.0M| hpuse0.0M| SWP | tot2.0G| free2.0G||||||| vmcom1.2G| vmlim2.5G| DSK |sda| busy0%| read0| write21| KiB/r0| KiB/w11| MBr/s0.0| MBw/s0.0| avq11.20| avio 0.48 ms| NET | transport| tcpi2| tcpo3| udpi0| udpo0| tcpao0| tcppo0| tcprs0| tcpie0| udpie0| NET | network| ipi2| ipo3| ipfrw0| deliv2|||| icmpi0| icmpo0| NET | ens330%| pcki2| pcko3| sp 1000 Mbps| si0 Kbps| so0 Kbps| erri0| erro0| drpi0| drpo0|PIDSYSCPUUSRCPUVGROWRGROWRDDSKWRDSKRUIDEUIDSTEXCTHRSCPUNRCPUCMD1/1 25400.05s0.01s0K0K0K0Krootroot---1R11%atop 7370.00s0.01s0K0K0K0Kmysqlmysql---30S10%mysqld 5440.01s0.00s0K0K0K0Krootroot---2S00%vmtoolsd 30.01s0.00s0K0K0K0Krootroot---1S00%ksoftirqd/0 2850.01s0.00s0K0K0K0Krootroot---1S10%xfsaild/sda2 7050.00s0.00s0K0K0K0Krootroot---3S10%rsyslogd

Atop行显示服务器的主机名、当前时间以及信息收集频率。
ATOP - server12020/09/0221:25:33--------------5s elapsed

PRC行显示系统进程相关汇总信息:
  • sys:采样周期内所有进程在系统态运行时间总和
  • user 采样周期内所有进程在用户态运行时间综合
  • proc 采样周期内进程总数
  • tslpu 采样周期内处于不可中断的睡眠状态的进程数
  • zombie 采样周期内僵死状态进程数
  • exit 采样周期内退出的进程数
PRC | sys0.08s| user0.02s| #proc96| #trun1| #tslpi155| #tslpu0| #zombie0| clones0|| #exit0|

CPU行显示服务器CPU利用率汇总信息,各个cpu行显示各个cpu核上利用率汇总信息:
  • sys 采样周期内CPU处于系统态的利用率
  • user 采样周期内CPU处于用户态的利用率
  • idle 采样周期内CPU处于空闲状态的比例
CPU | sys0%| user0%| irq0%| idle200%| wait0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%| cpu | sys0%| user0%| irq0%| idle100%| cpu000 w0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%| cpu | sys0%| user0%| irq0%| idle100%| cpu001 w0%| guest0%| ipc notavail| cycl unknown| curf?MHz| curscal?%|

CPL行显示CPU负载信息:
  • avg1 过去1分钟进程等待队列数
  • avg5 过去5分钟进程等待队列数
  • avg15 过去15分钟进程等待队列数
  • csw(context swapping) 上下文交换次数
  • intr(interrupt) 中断发生的次数
  • numcpu cpu的核数
CPL | avg10.00| avg50.04| avg150.05||| csw710| intr626||| numcpu2|

MEM行显示内存使用信息:
  • tot 物理内存总量
  • free 空闲内存大小,不包含cache和buffer的内存
  • cache 用于页缓存的内存大小
  • buff 用于文件缓存的内存大小
  • slab 系统内核占用的内存大小
MEM | tot974.6M| free242.4M| cache 395.2M| buff2.0M| slab90.3M| shmem7.7M| shrss0.0M| vmbal0.0M| hptot0.0M| hpuse0.0M|

SWP行显示交换空间使用情况:
SWP | tot2.0G| free2.0G||||||| vmcom1.2G| vmlim2.5G|

LVM,DSK行显示磁盘逻辑卷和分区使用情况:
  • busy 磁盘忙时所占比例
  • read KiB/r 、MBr/s 每秒读的请求数和请求的kb、mb数
  • write KiB/w 、MBr/w 每秒写的请求数和请求的kb、mb数
  • avio 磁盘的平均io时间
LVM |system-root |busy1% | read0 |write16 | MBw/s0.0 |avio 1.50 ms | DSK |sda| busy0%| read0| write21| KiB/r0| KiB/w11| MBr/s0.0| MBw/s0.0| avq11.20| avio 0.48 ms|

NET 显示传输层、网络层、各个网络接口的网络传输信息:
  • sp 网卡的带宽
  • pcki 传入的数据包的大小
  • pcko 传出的数据包的大小
  • si 每秒传入的数据大小
  • so 每秒传出的数据大小
  • coll 每秒的冲突数
  • mlti 每秒的多路广播的数量
  • erri/erro 每秒输入输出的错误数
  • drpi/drpo 每秒的输入输出的丢包数
NET | transport| tcpi2| tcpo3| udpi0| udpo0| tcpao0| tcppo0| tcprs0| tcpie0| udpie0| NET | network| ipi2| ipo3| ipfrw0| deliv2|||| icmpi0| icmpo0| NET | ens330%| pcki2| pcko3| sp 1000 Mbps| si0 Kbps| so0 Kbps| erri0| erro0| drpi0| drpo0|

最下边显示的各进程的具体信息,可输入m(内存)、p(进程)、u(用户)、d(磁盘)、c(进程运行的代码)、v(线程)切换显示模式,不同模式下的显示信息这里不再展开,可使用 man atop查看atop的手册。
PIDSYSCPUUSRCPUVGROWRGROWRDDSKWRDSKRUIDEUIDSTEXCTHRSCPUNRCPUCMD1/1 25400.05s0.01s0K0K0K0Krootroot---1R11%atop 7370.00s0.01s0K0K0K0Kmysqlmysql---30S10%mysqld

m模式:内存状态模式
  • SYSCPU:过去10s内进程处于内核模式占用的CPU时间
  • USRCPU:过去10S进程处于用户模式占用的CPU时间
  • VSIZE:过去10S进程占用的虚拟空间大小
  • RSIZE:过去10S进程占用的内存空间大小
  • PSIZE:过去10S进程占用的页大小
  • VGROW:过去10S进程增长的虚拟空间大小
  • RGROW:过去10S进程增长的内存大小
  • SWAPSZ:过去10S进程使用交换空间的大小。
  • MEM:过去10S进程占用内存百分比
【Linux监控工具(atop安装使用)】d模式:磁盘状态模式
  • RDDSK:过去10S进程读磁盘的数据量
  • WRDSK:过去10S进程写磁盘的数据量
  • DSK:过去10S进程所占磁盘的百分比
  • CMD:进程名
p模式:进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示
  • NPROCS:相同名称的进程数量
  • 其它的参数上面已经有列出
v模式:线程状态模式
u模式:用户模式
  • 根据用户进行分组显示
g模式:标准模式
  • s:进程当前的状态,包括:s(sleeping),R(runing)等
四、相关文件
  • /etc/atop:目录保存的是atop的配置文件
  • /etc/rc.d/init.d/atop:atop的启动文件
  • /etc/cron.d/atop:atop的定时任务文件,默认是每天0点开始
  • /var/log/atop:atop日志文件,默认是每天0点开始会产生当天的一个日志文件,然后可以通过atop -r file 查看信息,但是没有找到自动播放的的功能,只能通过输入b显示一个指定的时间的信息,可以写个循环来实现
  • /usr/bin/atop:atop命令目录
atop产生的日志文件信息是10分钟一个采样周期进行记录,可以通过修改atop.daily文件进行修改。
对于atop日志文件的保存方式,我们可以这样:
》每天保存一个atop日志文件,该日志文件记录当天信息
》日志文件以”atop_YYYYMMDD”的方式命名
》设定日志失效期限,自动删除一段时间前的日志文件
在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):
(sleep 3; find 'atop_*' -mtime +28 -exec rm {} ; )&
最后,我们修改cron文件,每天凌晨执行atop.daily脚本:
0 0 * * * root /etc/cron.daily/atop.daily

    推荐阅读