atop 使用
1675 字
8 分钟
atop 使用
机器经常oom 与夯死,但没有进程监控,找不到哪个用的资源比较多,觉得试试 atop,没想到完美解决问题
atop是一款用于监控Linux系统资源与进程的工具,能够报告所有进程的活动。其以一定的频率记录系统和进程活动,采集的数据包含CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中。对于每个进程,会显示CPU使用率、内存增长、磁盘使用率、优先级、用户名、状态和退出码等。当机器出现问题后,您可以获取相应的atop日志文件进行分析。本文介绍如何在Linux实例中安装、配置并使用atop监控工具。
1 安装atop
1.1 执行如下命令,安装atop。
yum 安装的 atop 版本是2.7的,日志分割失效,建议从官网下载 rpm 包安装 可以点击这里下载对应的 rpm 包,注意系统版本,我这里用的 rocky 8 还有个日志保存天数问题,默认加 2,注意下
sudo yum install https://www.atoptool.nl/download/atop-2.10.0-1.el8.x86_64.rpm2 配置并启动atop
- LOGOPTS:用于控制日志文件记录选项,可以自定义日志文件的保存路径、命名规则、滚动周期以及其他与日志记录相关的选项。为空
""表示不使用任何额外选项。 - LOGINTERVAL:监控周期,建议将默认的监控周期600s修改为30s。
- LOGGENERATIONS:日志保留时间,为避免atop长时间运行占用太多磁盘空间,建议将默认的日志保留时间28天修改为 5天。 这里用的
find . -mtim +5来进行删除, 表示查找 5 天前修改的日志,不包括第五天,然后生成的日志最新时间是第二天 0 点,所以 写 5 是删除一周以前的日志 - LOGPATH:指定atop日志文件的路径。默认值为/var/log/atop。
vim /etc/sysconfig/atopLOGOPTS="-w /var/log/atop/atop_$(date +\%Y\%m\%d)"LOGINTERVAL=90LOGGENERATIONS=4LOGPATH=/var/log/atop2.1 启动atop服务。
sudo systemctl restart atopsudo systemctl enable atop3 分析atop日志
atop启动后,会将采集记录存放在
/var/log/atop目录下的日志文件中。执行如下命令,查看日志文件。
atop -r /var/log/atop/atop_20240716 -l -b 13:00 -e 17:003.1 atop常用命令
打开日志文件后,您可以使用以下命令筛选数据。
- g:切换回默认的综合输出视图。
- c:显示进程列完整命令行。
- l: 简化显示
- m:按照进程内存使用率进行降序筛选。
- d:按照进程磁盘使用率进行降序筛选。
- a:按照进程资源综合使用率进行降序筛选。
- n:按照进程网络使用率进行降序筛选。
- j: 每个容器的总资源消耗
- t:跳转到下一个监控采集点。
- T:跳转到上一个监控采集点。
- b:指定时间点,格式为YYYYMMDDhhmm。
- e: 指定时间区间,与-b 配合
3.2 系统资源监控字段含义
下图为部分监控字段以及数值,具体数值根据采样周期有所不同。下图仅供参考,具体数据以您实际数据为准。
ATOP - 10-1-1-1 2024/07/16 14:02:27 ----------------- 80d22h2m18s elapsedPRC | sys 5d15h | user 4d21h | #proc 1737 | #zombie 0 | #exit 0 |CPU | sys 10% | user 9% | irq 2% | idle 774% | wait 4% |CPL | avg1 0.21 | avg5 0.38 | avg15 0.41 | csw 548314e5 | intr 34394e6 |MEM | tot 31.3G | free 5.7G | buff 5.2M | slab 2.8G | numnode 1 |SWP | tot 0.0M | free 0.0M | swcac 0.0M | vmcom 8.2G | vmlim 15.6G |LVM | tavg-lv_data | busy 5% | read 9272 | write 1353e5 | avio 2.68 ms |LVM | rl-root | busy 0% | read 24578 | write 1474e4 | avio 1.98 ms |LVM | rl-swap | busy 0% | read 145 | write 0 | avio 1.48 ms |DSK | sdb | busy 5% | read 10214 | write 1336e5 | avio 2.72 ms |DSK | sda | busy 0% | read 25972 | write 1311e4 | avio 2.23 ms |NFM | 1934a878d544 | srv 10.1.1 | read 10.4M | write 3.2M | nread 52.4M |NFM | 226453875267 | srv 10.1.1 | read 10.4M | write 3.2M | nread 52.4M |NET | transport | tcpi 13619e5 | tcpo 14296e5 | udpi 22191e4 | udpo 16771e3 |NET | network | ipi 159264e4 | ipo 160147e4 | ipfrw 2840e3 | deliv 1589e6 |NET | lo ---- | pcki 11036e5 | pcko 11036e5 | si 315 Kbps | so 315 Kbps |NET | eth0 ---- | pcki 47821e4 | pcko 46149e4 | si 256 Kbps | so 216 Kbps | PID CID SYSCPU USRCPU VGROW RGROW RDDSK WRDSK CPU CMD 1/87318634 host-------- 51h57m 15h40m 2.0G 136.3M 28.0K 214.0M 3% kubelet283409 host-------- 10h45m 37h15m 1.8G 846.4M 0B 119.9M 2% kube-apiserver274396 host-------- 6h23m 10h44m 9.9G 134.9M 0B 408.7G 1% etcd304980 780e3ae15b3f 3h13m 5h27m 860.4M 159.9M 56.0K 20.0K 0% cilium-agent288977 babbbf621f60 60m21s 7h14m 1.0G 252.3M 0B 19.8M 0% argocd-applica主要参数说明如下:
| 参数 | 说明 |
|---|---|
| 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:空闲交换空间大小。 | |
| LVM行 | LVM情况。 |
| rl-root,vg+lv对应名称,剩下信息与DSK行一样。 | |
| DSK行 | 磁盘使用情况,每一个磁盘设备对应一列,如果有vdb设备,那么将会增加一行dsk信息。 |
| sdb:磁盘设备标识。 | |
| Busy:磁盘处于busy状态的时间比例。 | |
| Read、write:分别代表读、写请求数量。 | |
| NFM行 | nfs 挂载信息 |
| NET行 | 多列net展示了网络状况,包括传输层tcp和udp、ip层以及各活动的网口信息。 |
| si:各层或活动网口接收包大小。 | |
| so: 各层或活动网口发送包大小。 |
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
如何优雅的实现数据同步
💻Linux 运维工作中经常遇到需要两个机器同步数据的情况,此文章实现完全不影响原有节点运行的情况下同步数据
2
OpenClaw安装
💻Linux 龙虾安装笔记
3
CrowdSec 安全预防
💻Linux CrowdSec 安全预防
4
扩容磁盘与恢复分区
💻Linux 扩容磁盘与恢复分区
5
HAProxy+Keepalived使用
💻Linux HAProxy+Keepalived使用,里面包含了日志收集,监控与报警
随机文章 随机推荐