前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[linux][system]atop的介绍和使用

[linux][system]atop的介绍和使用

作者头像
皮振伟
发布2020-05-09 10:52:58
1.9K0
发布2020-05-09 10:52:58
举报
文章被收录于专栏:皮振伟的专栏皮振伟的专栏

前言 Linux上运行大量的后端的业务程序,往往希望得到更快的响应速度,更小的延迟,甚至有严格的PCT 99的指标。而操作系统的复杂度很高,多个因子之间可能会互相影响,从而影响到业务的指标。 在作者的工作环境中,经常使用到atop工具进行问题分析。atop是一个小巧的、高性能、比较全面的系统/进程级别的监控软件,下面就来介绍一下它的主要功能。 分析 源代码 源代码目前主要维护在github上面,https://github.com/Atoptool/atop 代码的原作者也是现在的maintainer通常会在几周甚至个把月的时间处理一下Pull Request,如果有新的改动需要合入到upstream,还是需要一点耐心的。 基本原理介绍 在源代码中的atop.c中有如下描述:

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

从图中可见,主要分成了两个部分,上面是系统的指标采集,下面是进程的指标的采集。 其中系统的指标中,包括: 进程概况:总数量,在采集的时间内新创建的数量和退出的数量等等 CPU概况:CPU的总概况以及per-cpu的统计,包括内核态、用户态、irq、idle、steal等采集,还有IPC(Instruction Per Cycle)和主频的信息。 内存概况:总内存、空闲内存、cache、dirty、cache等等。 磁盘信息:盘的IOPS和吞吐等信息。 网络:PPS和带宽检测。 以及其他的GPU、NFS等监控。 总体来看,atop的输出更像是top+iostat+sar的输出的组合。 另外一种用法,就是让atop以后台的方式运行,把数据采集并记录到本地的文件中。可以适当调整启动参数(推荐10s的采集间隔),使用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键,可以看到线程级别的数据。

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

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

按c键看到详细的参数

以及按g恢复到常规视图,按j可以看到以container聚合的视图(非常适合docker场景),按l调整显示的各项数据等等。 需要注意的时候,atop采集数据的时候,尽量不要加入R选项,因为采集Pss的内存信息会引入内核级别的进程内存锁竞争,导致业务进程的延迟抖动。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AlwaysGeek 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档