Linux命令之atop
atop
介绍
atop是一个功能非常强大的linux服务器监控工具,所采集的数据包含系统CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并且内容非常的详细,可以以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。
安装
安装非常简单
centos服务器:
[root@localhost ~]# yum -y install atop
ubantu服务器使用以下命令安装
apt-get install atop -y
启动
[root@localhost ~]# systemctl start atop
[root@localhost ~]# systemctl enable atop
Created symlink from /etc/systemd/system/multi-user.target.wants/atop.service to /usr/lib/systemd/system/atop.service.
[root@localhost ~]# ps -ef |grep atop
root 23340 1 0 14:57 ? 00:00:00 /usr/bin/atop -R -w /var/log/atop/atop_20191204 600
root 23635 22353 0 14:59 pts/0 00:00:00 grep --color=auto atop
配置
atop安装完成后有几个配置文件和目录
/etc/sysconfig/atop:配置文件
指定atop的相关信息
[root@localhost ~]# cat /etc/sysconfig/atop
# sysconfig atop
#
# Current Day format
CURDAY=`date +%Y%m%d`
# Log files path
LOGPATH=/var/log/atop
# Binaries path
BINPATH=/usr/bin
# PID File
PIDFILE=/var/run/atop.pid
# interval (default 10 minutes) 默认600s采集一次数据
LOGINTERVAL=600
/etc/cron.d/atop:计划任务文件
内容如下
[root@localhost ~]# cat /etc/cron.d/atop
daily restart of atop at midnight
0 0 * * * root systemctl try-restart atop
/var/log/atop:日志目录
[root@localhost ~]# ls /var/log/atop
atop_20191204 daily.log
执行以下命令分析日志
[root@localhost ~]# atop -r /var/log/atop/atop_20191204
分析
atop常用指令如下所示。
- c:按照进程CPU使用率进行降序筛选。
- m:按照进程内存使用率进行降序筛选。
- d:按照进程磁盘使用率进行降序筛选。
- a:按照进程资源综合使用率进行降序筛选。
- n:按照进程网络使用率进行降序筛选,需要额外安装内核模块才支持,默认不支持。
- t:跳转到下一个监控采集点。
- T:跳转到上一个监控采集点。
- B:指定时间点,格式为hh:mm:ss。
使用
直接在终端上敲atop
系统资源监控
接下来我们先来详细看下上半部分每行参数意义。
**ATOP:**改行列出了服务器的host、当前时间、信息收集的频率
**PRC:**该行展示整个系统的性能状况;
- sys:过去10s所有的进程在内核态运行的时间总和
- usr:过去10s所有的进程在用户态的运行时间总和
- #proc:进程总数
- #tslpi:中断状态的睡眠线程
- #tslpu:不可中断睡眠线程
- #zombie:过去10s僵死进程的数量
- #exit:在10s采样周期期间退出的进程数量
**CPU: **cpu列展示了服务器的CPU整体的一个状态信息,包括内核和用户所占的比例、处理中断所占的比例、CPU的处于空闲下比例(这里是100%*cpu核心数,CPU有时候也会因为由于磁盘性能问题出现等待的空闲)
- sys:cpu在处理进程时处于内核态的时间所占的比例
- user:cpu在处理进程时处于用户态的时间所占的比例
- irq:cpu在处理进程的中断请求所占的实际比例
- idle:cpu处于空闲状态下的时间比例(除了本身空闲,还有比如等待磁盘io的情况下也会处于空闲状态)
- wait:cpu处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
cpu:每个核心的状态信息,和总的CPU信息一样,每列加起来的总和就是总的CPU的状态信息。
**CPL:**cpl也反应了服务器整体的性能,展示信息包括进程等待队列数,分别从过去1分钟、5分钟、15分钟的采样信息。
- avg1:过去1分钟进程等待队列数
- avg5:过去5分钟进程等待队列数
- avg15:过去15分钟进程等待队列数
- csw(context swapping):上下文交换次数
- intr(interrupt):中断发生的次数
- numcpu:cpu的核心数
mem:该列主要展示内存的使用信息。
- tot:物理内存总量
- free:空闲内存的大小(不能单单从这个字段就判断内存不足,还需要参考free -m中的-/+ buffers/cache:free因为这块的内容随时就可以拿过来使用,还可以从是否有使用Swap来判断是否内存不足)
- cache:用于页缓存的内存大小
- dirty:内存中的脏页大小
- buff:用于文件缓存的内存大小
- slab:系统内核占用的内存大小
SWP:交换空间使用情况
- tot:交换空间总量
- free:交换空间剩余空间总量
**LVM/DSK:**每个分区信息以一列来进行展示
- busy:磁盘忙时所占比例
- read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
- write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
- avio:磁盘的平均io时间
NET:展示了传输层(TCP/UDP)、网络层(ip)、网络接口的网络传输信息。
**transport:**传输层(TCP/UDP)的数据输入输出的展示,例如在服务器的内部进程之间的数据传输就是在传输层展示,以为还不需要往下通过网络进行传输。
**network:**网络层(ip)的数据输入输出的展示;
**eth0:**默认的网络接口的数据输入输出的展示,也就是通过etho的ip的数据传输的展示,
- pcki:传入的数据包的大小
- pcko:传出的数据包的大小
- sp:网卡的带宽(1000M)
- si:每秒传入的数据大小
- so:每秒传出的数据大小
- coll(collisions):每秒的冲突数
- mlti(MULTICAST):每秒的多路广播的数量
- erri/erro:每秒输入输出的错误数
- drpi/drpo:每秒的输入输出的丢包数
进程监控
进程列展示了每个进程在过去10s内的数据
默认视图
从上图中,我们可以看到PID为1527的yum进程在内核模式下占用了0.27秒CPU时间,在用户模式下占用了0.89秒CPU时间,共使用CPU时间为1.16秒,相对10分钟采样周期,CPU时间占用比例为12%。
SYSCPU:过去10s内进程处于内核模式占用的CPU时间
USRCPU:过去10S进程处于用户模式占用的CPU时间
m模式:内存状态模式
VSIZE:过去10S进程占用的虚拟空间大小
RSIZE:过去10S进程占用的内存空间大小
PSIZE:过去10S进程占用的页大小
VGROW:过去10S进程增长的虚拟空间大小
RGROW:过去10S进程增长的内存大小
SWAPSZ:过去10S进程使用交换空间的大小。
MEM:过去10S进程占用内存百分比
d模式:磁盘状态模式
RDDSK:过去10S进程读磁盘的数据量
WRDSK:过去10S进程写磁盘的数据量
DSK:过去10S进程所占磁盘的百分比
CMD:进程名
**p模式:**进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示
v模式:线程状态模式
u模式:用户模式
根据用户进行分组显示
丰富的查看方式
进程视图
'g' - generic info (default) #通用信息(默认)
'm' - memory details #内存详细信息
'd' - disk details #磁盘详细信息
'n' - network details #网络详细信息
'e' - GPU details #GPU详细信息
's' - scheduling and thread-group info #调度和线程详细信息
'v' - various info (ppid, user/group, date/time, status, exitcode) #其他详细信息(PPID、用户/组、日期/时间、状态、退出代码)
'c' - full command line per process #每个进程的命令详细信息
'o' - use own output line definition #自定义
按以下顺序对进程列表排序:
'C' - cpu activity #CPU
'M' - memory consumption #内存
'D' - disk activity #磁盘
'N' - network activity #网络
'E' - GPU activity #GPU
'A' - most active system resource (auto mode) #最活跃的系统资源(自动模式)
累计:
'u' - total resource consumption per user #每个用户的总资源消耗
'p' - total resource consumption per program (i.e. same process name) #每个程序的总资源消耗(即相同的进程名)
'j' - total resource consumption per container #每个容器的总资源消耗
进程选择 (标题行中显示的键):
'U' - focus on specific user name #(正则表达式) 特定的用户名
'P' - focus on specific program name #(正则表达式) 特定的程序
'J' - focus on specific contained id (CID) # 特定的ID
'/' - focus on specific command line string #(正则表达式) 特定的命令行
'I' - focus on specific process id (PID) #特定的PID
小结
本文对Linux监控工具atop做了介绍,讲解了atop的安装、启动、配置,对atop使用中的部分信息做了详细解释,简单介绍了几种视图,最后讲解了下其他丰富的atop查看方式,大家可以根据自己的需要去查看相应的条件。
更多推荐
所有评论(0)