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 - server1                                   2020/09/02  21:25:33                                   --------------                                     5s elapsed
PRC | sys    0.08s  | user   0.02s  | #proc     96  | #trun      1  | #tslpi   155  | #tslpu     0  | #zombie    0  | clones     0  |               | #exit      0  |
CPU | sys       0%  | user      0%  | irq       0%  | idle    200%  | wait      0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |
cpu | sys       0%  | user      0%  | irq       0%  | idle    100%  | cpu000 w  0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |
cpu | sys       0%  | user      0%  | irq       0%  | idle    100%  | cpu001 w  0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |
CPL | avg1    0.00  | avg5    0.04  | avg15   0.05  |               |               | csw      710  | intr     626  |               |               | numcpu     2  |
MEM | tot   974.6M  | free  242.4M  | cache 395.2M  | buff    2.0M  | slab   90.3M  | shmem   7.7M  | shrss   0.0M  | vmbal   0.0M  | hptot   0.0M  | hpuse   0.0M  |
SWP | tot     2.0G  | free    2.0G  |               |               |               |               |               |               | vmcom   1.2G  | vmlim   2.5G  |
DSK |          sda  | busy      0%  | read       0  | write     21  | KiB/r      0  | KiB/w     11  | MBr/s    0.0  | MBw/s    0.0  | avq    11.20  | avio 0.48 ms  |
NET | transport     | tcpi       2  | tcpo       3  | udpi       0  | udpo       0  | tcpao      0  | tcppo      0  | tcprs      0  | tcpie      0  | udpie      0  |
NET | network       | ipi        2  | ipo        3  | ipfrw      0  | deliv      2  |               |               |               | icmpi      0  | icmpo      0  |
NET | ens33     0%  | pcki       2  | pcko       3  | sp 1000 Mbps  | si    0 Kbps  | so    0 Kbps  | erri       0  | erro       0  | drpi       0  | drpo       0  |

   PID    SYSCPU     USRCPU      VGROW      RGROW      RDDSK      WRDSK     RUID         EUID         ST     EXC      THR     S     CPUNR      CPU     CMD        1/1
  2540     0.05s      0.01s         0K         0K         0K         0K     root         root         --       -        1     R         1       1%     atop
   737     0.00s      0.01s         0K         0K         0K         0K     mysql        mysql        --       -       30     S         1       0%     mysqld
   544     0.01s      0.00s         0K         0K         0K         0K     root         root         --       -        2     S         0       0%     vmtoolsd
     3     0.01s      0.00s         0K         0K         0K         0K     root         root         --       -        1     S         0       0%     ksoftirqd/0
   285     0.01s      0.00s         0K         0K         0K         0K     root         root         --       -        1     S         1       0%     xfsaild/sda2
   705     0.00s      0.00s         0K         0K         0K         0K     root         root         --       -        3     S         1       0%     rsyslogd

Atop行显示服务器的主机名、当前时间以及信息收集频率。

ATOP - server1                                   2020/09/02  21:25:33                                   --------------                                     5s elapsed

PRC行显示系统进程相关汇总信息:

  • sys:采样周期内所有进程在系统态运行时间总和
  • user 采样周期内所有进程在用户态运行时间综合
  • proc 采样周期内进程总数
  • tslpu 采样周期内处于不可中断的睡眠状态的进程数
  • zombie 采样周期内僵死状态进程数
  • exit 采样周期内退出的进程数
PRC | sys    0.08s  | user   0.02s  | #proc     96  | #trun      1  | #tslpi   155  | #tslpu     0  | #zombie    0  | clones     0  |               | #exit      0  |

CPU行显示服务器CPU利用率汇总信息,各个cpu行显示各个cpu核上利用率汇总信息:

  • sys 采样周期内CPU处于系统态的利用率
  • user 采样周期内CPU处于用户态的利用率
  • idle 采样周期内CPU处于空闲状态的比例
CPU | sys       0%  | user      0%  | irq       0%  | idle    200%  | wait      0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |
cpu | sys       0%  | user      0%  | irq       0%  | idle    100%  | cpu000 w  0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |
cpu | sys       0%  | user      0%  | irq       0%  | idle    100%  | cpu001 w  0%  | guest     0%  | ipc notavail  | cycl unknown  | curf    ?MHz  | curscal   ?%  |

CPL行显示CPU负载信息:

  • avg1 过去1分钟进程等待队列数
  • avg5 过去5分钟进程等待队列数
  • avg15 过去15分钟进程等待队列数
  • csw(context swapping) 上下文交换次数
  • intr(interrupt) 中断发生的次数
  • numcpu cpu的核数
CPL | avg1    0.00  | avg5    0.04  | avg15   0.05  |               |               | csw      710  | intr     626  |               |               | numcpu     2  |

MEM行显示内存使用信息:

  • tot 物理内存总量
  • free 空闲内存大小,不包含cache和buffer的内存
  • cache 用于页缓存的内存大小
  • buff 用于文件缓存的内存大小
  • slab 系统内核占用的内存大小
MEM | tot   974.6M  | free  242.4M  | cache 395.2M  | buff    2.0M  | slab   90.3M  | shmem   7.7M  | shrss   0.0M  | vmbal   0.0M  | hptot   0.0M  | hpuse   0.0M  |

SWP行显示交换空间使用情况:

SWP | tot     2.0G  | free    2.0G  |               |               |               |               |               |               | vmcom   1.2G  | vmlim   2.5G  |

LVM,DSK行显示磁盘逻辑卷和分区使用情况:

  • busy 磁盘忙时所占比例
  • read KiB/r 、MBr/s 每秒读的请求数和请求的kb、mb数
  • write KiB/w 、MBr/w 每秒写的请求数和请求的kb、mb数
  • avio 磁盘的平均io时间
LVM |  system-root |  busy      1% | read       0 |  write     16 | MBw/s    0.0 |  avio 1.50 ms |
DSK |          sda  | busy      0%  | read       0  | write     21  | KiB/r      0  | KiB/w     11  | MBr/s    0.0  | MBw/s    0.0  | avq    11.20  | avio 0.48 ms  |

NET 显示传输层、网络层、各个网络接口的网络传输信息:

  • sp 网卡的带宽
  • pcki 传入的数据包的大小
  • pcko 传出的数据包的大小
  • si 每秒传入的数据大小
  • so 每秒传出的数据大小
  • coll 每秒的冲突数
  • mlti 每秒的多路广播的数量
  • erri/erro 每秒输入输出的错误数
  • drpi/drpo 每秒的输入输出的丢包数
NET | transport     | tcpi       2  | tcpo       3  | udpi       0  | udpo       0  | tcpao      0  | tcppo      0  | tcprs      0  | tcpie      0  | udpie      0  |
NET | network       | ipi        2  | ipo        3  | ipfrw      0  | deliv      2  |               |               |               | icmpi      0  | icmpo      0  |
NET | ens33     0%  | pcki       2  | pcko       3  | sp 1000 Mbps  | si    0 Kbps  | so    0 Kbps  | erri       0  | erro       0  | drpi       0  | drpo       0  |

最下边显示的各进程的具体信息,可输入m(内存)、p(进程)、u(用户)、d(磁盘)、c(进程运行的代码)、v(线程)切换显示模式,不同模式下的显示信息这里不再展开,可使用 man atop查看atop的手册。

PID    SYSCPU     USRCPU      VGROW      RGROW      RDDSK      WRDSK     RUID         EUID         ST     EXC      THR     S     CPUNR      CPU     CMD        1/1
  2540     0.05s      0.01s         0K         0K         0K         0K     root         root         --       -        1     R         1       1%     atop
   737     0.00s      0.01s         0K         0K         0K         0K     mysql        mysql        --       -       30     S         1       0%     mysqld

m模式:内存状态模式

  • SYSCPU:过去10s内进程处于内核模式占用的CPU时间

  • USRCPU:过去10S进程处于用户模式占用的CPU时间

  • VSIZE:过去10S进程占用的虚拟空间大小

  • RSIZE:过去10S进程占用的内存空间大小

  • PSIZE:过去10S进程占用的页大小

  • VGROW:过去10S进程增长的虚拟空间大小

  • RGROW:过去10S进程增长的内存大小

  • SWAPSZ:过去10S进程使用交换空间的大小。

  • MEM:过去10S进程占用内存百分比

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

你可能感兴趣的:(Linux监控工具:atop安装使用)