1.atop的安装
atop也是一个功能强大的linux服务器监控工具,数据采集包括:cpu、内存、磁盘、网络、进程等
系统未自动安装的,我们还是添加阿里源后,直接yum install -y atop即可
2.atop的配置
[root@k8s-master ~]# cat /etc/sysconfig/atop
LOGOPTS=""
LOGINTERVAL=600 #监控周期为600s,也就是每隔600s抓取一次数据,一般我们修改为30
LOGGENERATIONS=28 #日志保留时间为28,一般我们设置为7天
LOGPATH=/var/log/atop #日志路径
3.atop的参数
我们来看看atop命令的参数
[root@k8s-master ~]# atop --help
atop: invalid option -- '-'
Usage: atop [-flags] [interval [samples]]
or
Usage: atop -w file [-S] [-a] [interval [samples]]
atop -r [file] [-b [YYYYMMDD]hhmm] [-e [YYYYMMDD]hhmm] [-flags]
generic flags:
-V show version information
-a show or log all processes (i.s.o. active processes only)
-R calculate proportional set size (PSS) per process
-W determine WCHAN (string) per thread
-P generate parseable output for specified label(s)
-Z no spaces in parseable output for command (line)
-L alternate line length (default 80) in case of non-screen output
-f show fixed number of lines with system statistics
-F suppress sorting of system resources
-G suppress exited processes in output
-l show limited number of lines for certain resources
-y show threads within process
-Y sort threads (when combined with 'y')
-1 show average-per-second i.s.o. total values
-x no colors in case of high occupation
-g show general process-info (default)
-m show memory-related process-info
-d show disk-related process-info
-n show network-related process-info
-s show scheduling-related process-info
-v show various process-info (ppid, user/group, date/time)
-c show command line per process
-o show own defined process-info
-u show cumulated process-info per user
-p show cumulated process-info per program (i.e. same name)
-j show cumulated process-info per container
-C sort processes in order of cpu consumption (default)
-M sort processes in order of memory consumption
-D sort processes in order of disk activity
-N sort processes in order of network activity
-E sort processes in order of GPU activity
-A sort processes in order of most active resource (auto mode)
specific flags for raw logfiles:
-w write raw data to file (compressed)
-r read raw data from file (compressed)
symbolic file: y[y...] for yesterday (repeated)
file name '-': read raw data from stdin
-S finish atop automatically before midnight (i.s.o. #samples)
-b begin showing data from specified date/time
-e finish showing data after specified date/time
interval: number of seconds (minimum 0)
samples: number of intervals (minimum 1)
If the interval-value is zero, a new sample can be
forced manually by sending signal USR1 (kill -USR1 pid_atop)
or with the keystroke 't' in interactive mode.
Please refer to the man-page of 'atop' for more details.
也可以直接man atop来看
常用参数:
-n 显示网络信息
-m 显示内存相关信息
-d 显示磁盘读写相关
-g 查看默认的通用输出
-s 显示调度特点:每个进程的以下字段所示:进程的ID,运行状态(R)的线程数、中断状态的睡眠线程S(TLSPI)和不可中断睡眠线程D (TSLPU) 数,调度策略(分时调度策略,实时时间片轮转策略,实时调度策略FIFO),nice值,优先级(PRI),实时优先级(RTPR),当前的处理器,状态,退出代码,进程状态,cpu利用率和进程名。
-v 显示各种进程特性:每个进程的以下字段所示:进程ID(PID),父进程ID(PPID)、用户名(USERNAME)和组(GROUP),开始日期和时间,状态(例如,退出代码,如果该进程已完成),进程状态(ST)(D:不可终止进程、 R:正在运行进程 、 T:暂停进程、S:休眠进程、Z:僵尸进程……),CPU占用率和进程名。
-c 以命令行command-line的形式显示:每个进程有以下字段所示:进程的ID,所选资源占用百分比和命令行参数,
-u 以用户的形式显示:以下字段显示:在上一间隔时间内活动或终止的进程数,上一时间间隔内cpu在系统模式和用户模式的消耗,活动进程对虚拟内存和现有内存的消耗。当安装的cnt补丁后会显示读(RDDSK)写(WRDSK)到磁盘上的数据量,以及所收到(RNET)和发送(SNET)的网络数据包,内核补丁没有安装时这些计数器为零。最后一栏显示CPU百分比和用户名。
-p 以进程名的形式显示信息:和-u类似只是最后显示的是进程名
-M 按照占用物理内存百分比大小进行排列
-D 按照访问磁盘的繁忙程度进行排序
-N 按照接受和发送的网络数据包排序
-A 依据当前系统最繁忙的资源进行排序,可能有ACPU、AMEM、ADSK或者ANET
4.atop监控字段解析
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字段指示中断发生次数
- numcpu:cpu的核心数
mem:该列主要展示内存的使用信息。
- tot:物理内存总量
- free:空闲内存的大小(不能单单从这个字段就判断内存不足,还需要参考free -m中的-/+ buffers/cache:free因为这块的内容随时就可以拿过来使用,还可以从是否有使用Swap来判断是否内存不足)
- cache:用于页缓存的内存大小
- dirty:内存中的脏页大小
- buff:用于文件缓存的内存大小
- slab:系统内核占用的内存大小
SWP列:该列指示交换空间的使用情况
- tot字段指示交换区总量
- free字段指示空闲交换空间大小
PAG列:该列指示虚拟内存分页情况
swin、swout字段:换入和换出内存页数
LVM/DSK:每个分区信息以一列来进行展示
- busy:磁盘忙时所占比例
- read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
- write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
- avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数avgrq)
- avio:磁盘的平均io时间