linux性能监控之atop

发布于:2024-05-10 ⋅ 阅读:(29) ⋅ 点赞:(0)

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列:该列显示进程整体运行情况

  1. sys、usr字段分别指示进程在内核态和用户态的运行时间
  2. #proc字段指示进程总数
  3. #zombie字段指示僵死进程的数量
  4. #exit字段指示atop采样周期期间退出的进程数量

CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)

  1. sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
  2. irq字段指示CPU被用于处理中断的时间比例
  3. idle字段指示CPU处在完全空闲状态的时间比例
  4. wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。

cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%

CPL列:该列显示CPU负载情况

  1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
  2. csw字段指示上下文交换次数
  3. intr字段指示中断发生次数
  4. numcpu:cpu的核心数

mem:该列主要展示内存的使用信息。

  1. tot:物理内存总量
  2. free:空闲内存的大小(不能单单从这个字段就判断内存不足,还需要参考free -m中的-/+ buffers/cache:free因为这块的内容随时就可以拿过来使用,还可以从是否有使用Swap来判断是否内存不足)
  3. cache:用于页缓存的内存大小
  4. dirty:内存中的脏页大小
  5. buff:用于文件缓存的内存大小
  6. slab:系统内核占用的内存大小

SWP列:该列指示交换空间的使用情况

  1. tot字段指示交换区总量
  2. free字段指示空闲交换空间大小

PAG列:该列指示虚拟内存分页情况

swin、swout字段:换入和换出内存页数

LVM/DSK:每个分区信息以一列来进行展示

  1. busy:磁盘忙时所占比例
  2. read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
  3. write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
  4. avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数avgrq)
  5. avio:磁盘的平均io时间


网站公告

今日签到

点亮在社区的每一天
去签到