atop用法_「linux」「system」atop的介绍和使用

前言

Linux上运行大量的后端的业务程序,往往希望得到更快的响应速度,更小的延迟,甚至有严格的PCT 99的指标。而操作系统的复杂度很高,多个因子之间可能会互相影响,从而影响到业务的指标。

在作者的工作环境中,经常使用到atop工具进行问题分析。atop是一个小巧的、高性能、比较全面的系统/进程级别的监控软件,下面就来介绍一下它的主要功能。

分析

  • 源代码

源代码目前主要维护在github上面

https://github.com/Atoptool/atop

代码的原作者也是现在的maintainer通常会在几周甚至个把月的时间处理一下Pull Request,如果有新的改动,还是需要一点耐心的。

  • 基本原理介绍

在源代码中的atop.c中有如下描述:

dddee498107444c4e4a81ef37652be4c.png

atop周期性(默认10s,可调整)的采集系统以及进程的指标,进行差分计算,然后把计算的结果打印到屏幕,或者输出的文件。

  • 常见的用法

如果是输出到屏幕,效果如下:

1e927f417fd765ec45aa0d63ac112988.png

从图中可见,主要分成了两个部分,上面是系统的指标采集,下面是进程的指标的采集。

其中系统的指标中,包括:

进程概况:总数量,在采集的时间内新创建的数量和退出的数量等等。

CPU概况:CPU的总概况以及per-cpu的统计,包括内核态、用户态、irq、idle、steal等采集,还有IPC(Instruction Per Cycle)和主频的信息。

内存概况:总内存、空闲内存、cache、dirty、cache等等。

磁盘信息:盘的IOPS和吞吐等信息。

网络:PPS和带宽检测。

以及其他的GPU、NFS等监控。

总体来看,atop的输出更像是top+iostat+sar的输出的组合。

另外一种用法,就是让atop以后台的方式运行,把数据采集并记录到本地的文件中。可以适当调整启动参数,使用systemctl start atop.service启动之后,atop就会把采集到的信息写入到磁盘之中。如果发生了问题,想要回看当时的系统/进程的情况,可以使用

atop -r /var/log/atop/atop_dddd -b hh:mm

可以查看dddd日期的hh:mm记录的数据。同时,可以使用t向下一帧查看,或者shift+t回看上一帧。

在作者的工作环境中,其中这种用法更加广泛。atop每10s相当于给系统的状态做了一个快照,我们找到出现问题的时间点,然后通过atop来发现是否有异常。

  • 更多的使用

在atop的页面上,按y键,可以看到线程级别的数据。

746f0ddf555e9dc0c0e160d69fd2b4bb.png

按d键,可以看到IO的情况

aa2de605b39905b0dd584dbc8cef6cb5.png

按m键,可以看到内存的详细数据

067a748d27ab0a21792778cb40fdc18d.png

按c键看到详细的参数

8a18deee9cc86e4e85f7cce2fe85421e.png

以及按g恢复到常规视图,按j可以看到以container聚合的视图(非常适合docker场景),按l调整显示的各项数据等等。

需要注意的时候,atop采集数据的时候,尽量不要加入R选项,因为采集Pss的内存信息会引入内核级别的进程内存锁竞争,导致业务进程的延迟抖动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值