atop命令安装
阿里地址: https://help.aliyun.com/zh/ecs/how-to-use-the-linux-system-atop-monitoring-tools#51eeccf4e1uww
yum install atop
systemctl start netatop
分析atop日志
atop -r /var/log/atop/atop_2023XXXX
打开日志文件后,您可以使用以下命令筛选数据。
- c:按照进程CPU使用率进行降序筛选。
-
m:按照进程内存使用率进行降序筛选。
-
d:按照进程磁盘使用率进行降序筛选。
-
a:按照进程资源综合使用率进行降序筛选。
-
n:按照进程网络使用率进行降序筛选。
-
t:跳转到下一个监控采集点。
-
T:跳转到上一个监控采集点。
-
b:指定时间点,格式为YYYYMMDDhhmm。
参数说明
ATOP行
主机名、信息采样日期和时间点。
PRC行
进程整体运行情况。
- sys、user:分别代表进程在内核态和用户态的运行时间。
- #proc:进程总数。
- #trun:处于running状态进程数。
- #tslpi:处于sleeping interruptible状态的进程数。
- #tslpu:处于sleeping uninterruptible状态的进程数。
- #zombie:僵死进程的数量。
- #exit:atop采样周期内退出的进程数。
CPU行
CPU整体的使用情况,即多核CPU作为一个整体CPU资源的使用情况。CPU行各个字段数字相加结果为N*100%,其中N为CPU的核数。
- sys、user:CPU在用于处理进程时,进程在内核态及用户态所占CPU的时间比例。
- irq:CPU用于处理中断的时间比例。
- idle:CPU处在完全空闲状态的时间比例。
- wait:CPU处在进程等待磁盘IO导致CPU空闲状态的时间比例。
CPL行
CPU负载情况。
- avg1、avg5和avg15:分别代表过去1分钟、5分钟和15分钟内运行队列中的平均进程数量。
- csw:上下文切换次数。
- intr:中断发生次数。
MEM行
内存的使用情况。
- tot:物理内存总量。
- free:空闲内存的大小。
- cache:用于页缓存的内存大小。
- buff:用于文件缓存的内存大小。
- slab:系统内核占用的内存大小。
SWP行
交换空间的使用情况。
- tot:交换区总量。
- free:空闲交换空间大小。
PAG行
虚拟内存分页情况。
swin、swout:分别代表换入和换出内存页数。
DSK行
磁盘使用情况,每一个磁盘设备对应一列,如果有vdb设备,那么将会增加一行DSK信息。
- vda:磁盘设备标识。
- busy:磁盘处于busy状态的时间比例。
- read、write:分别代表读、写请求数量。
NET行
多列NET展示了网络状况,包括传输层TCP和UDP、IP层以及各活动的网口信息。
- ****i:各层或活动网口接手包大小。
- ****o:各层或活动网口发送包大小。
atop安装网络监控
- Centos
yum install kernel-devel-$(uname -r)
yum install elfutils-libelf-devel
wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
tar -zxvf netatop-3.1.tar.gz
cd netatop-3.1
make && make install
systemctl start netatop
- ubuntu
apt install zlib1g-dev
wget https://www.atoptool.nl/download/netatop-3.1.tar.gz --no-check-certificate
tar -zxvf netatop-3.1.tar.gz
cd netatop-3.1
make && make install
systemctl start netatop
atop配置文件
vim /etc/sysconfig/atop
修改以下配置。
LOGINTERVAL:监控周期,建议将默认的监控周期600s修改为30s。
LOGGENERATIONS:日志保留时间,为避免atop长时间运行占用太多磁盘空间,建议将默认的日志保留时间28天修改为7天。
LOGOPTS=""
LOGINTERVAL=30
LOGGENERATIONS=7
LOGPATH=/var/log/atop
我们到底该不该启用交换分区
开启交换分区容易导致IO异常:
当Linux系统的内存不足时,会导致系统频繁进行内存交换(swap),即将内存中的数据移出到磁盘上的交换空间(swap space),以释放内存供其他进程使用。这就会导致磁盘IO操作的增加,从而导致IO高的问题。
其他atop总结
atop:改行列出了服务器的host、当前时间、信息收集的频率
PRC:该列展示整个系统的性能状况;
sys:过去10s所有的进程在内核态运行的时间总和
usr:过去10s所有的进程在用户态的运行时间总和
#proc:进程总数
#trun:过去10s转换的进程数
#zombie:过去10s僵死进程的数量
#exit:在10s采样周期期间退出的进程数量
CPU: cpu列展示了服务器的CPU整体的一个状态信息,包括内核和用户所占的比例、处理中断所占的比例、CPU的处于空闲下比例(这里是100%*cpu核心数,CPU有时候也会因为由于磁盘性能问题出现等待的空闲)
sys:cpu在处理进程时处于内核态的时间所占的比例
usr:cpu在处理进程时处于用户态的时间所占的比例
irq:cpu在处理进程的中断请求所占的实际比例
idle:cpu处于空闲状态下的时间比例(除了本身空闲,还有比如等待磁盘io的情况下也会处于空闲状态)
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:交换空间剩余空间总量
PAG列:虚拟内存分页情况
swin:换入内存页数
swout:换出内存页数
LVM/DSK:每个分区信息以一列来进行展示
busy:磁盘忙时所占比例
read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数avgrq)
avio:磁盘的平均io时间
NET:展示了传输层(TCP/UDP)、网络层(ip)、网络接口的网络传输信息。
transport:传输层(TCP/UDP)的数据输入输出的展示,例如在服务器的内部进程之间的数据传输就是在传输层展示,以为还不需要往下通过网络进行传输。
network:网络层(ip)的数据输入输出的展示;
eth0:默认的网络接口的数据输入输出的展示,也就是通过etho的ip的数据传输的展示,
sp:网卡的带宽(1000M)
pcki:传入的数据包的大小
pcko:传出的数据包的大小
si:每秒传入的数据大小
so:每秒传出的数据大小
coll(collisions):每秒的冲突数
mlti(MULTICAST):每秒的多路广播的数量
erri/erro:每秒输入输出的错误数
drpi/drpo:每秒的输入输出的丢包数
lo:通过127.0.0.1网络接口的数据传输的数据展示,参数和上面的eth0是一样的
进程列
进程列展示了每个进程在过去10S内的数据
m模式:内存状态模式
SYSCPU:过去10s内进程处于内核模式占用的CPU时间
USRCPU:过去10S进程处于用户模式占用的CPU时间
VSIZE:过去10S进程占用的虚拟空间大小
RSIZE:过去10S进程占用的内存空间大小
PSIZE:过去10S进程占用的页大小
VGROW:过去10S进程增长的虚拟空间大小
RGROW:过去10S进程增长的内存大小
SWAPSZ:过去10S进程使用交换空间的大小。
MEM:过去10S进程占用内存百分比
d模式:磁盘状态模式
WRDSK:过去10S进程写磁盘的数据量
DSK:过去10S进程所占磁盘的百分比
CMD:进程名
p模式:进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示
NPROCS:相同名称的进程数量
其它的参数上面已经有列出
v模式:线程状态模式
u模式:用户模式
根据用户进行分组显示
g模式:标准模式
s:进程当前的状态,包括:s(sleeping),R(runing)等
atop的相关文件
/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 -r atop_20160510 -b 13:00 -e 17:00
atop产生的日志文件信息是10分钟一个采样周期进行记录,可以通过修改/etc/atop/atop.daily文件进行修改。
atop的其它参数:
Usage: atop [-flags] [interval [samples]]
or
Usage: atop -w file [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]
generic flags:
-a show or log all processes (i.s.o. active processes only)
-R calculate proportional set size (PSS) per process
-P generate parseable output for specified label(s)
-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 individual threads
-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)
-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
-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)
special file: y[y...] for yesterday (repeated)
-S finish atop automatically before midnight (i.s.o. #samples)
-b begin showing data from specified time
-e finish showing data after specified time