17丨CentOS:操作系统级监控及常用计数器解析(上)
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了CentOS操作系统级监控及常用计数器解析的相关内容。作者首先强调了在性能测试和分析中,操作系统分析始终是绕不过去的分析点,需要根据压力工具给出的信息作为起点,然后通过拆分响应时间来确定问题所在,并进行详细分析。文章列举了常用的Linux监控命令,如top、atop、vmstat、iostat、iotop、dstat、sar等,并强调了在使用这些命令时需要了解其监控范围和局限性。此外,还介绍了监控平台Grafana+Prometheus+node_exporter,并对其常用Dashboard进行了解析。作者强调了全局监控的重要性,但也指出这些数据仍然不够细节,需要进行定向监控来找到证据链。整体而言,本文内容涵盖了操作系统级监控的基本知识和常用工具,以及监控平台的应用,对读者进行了全面的技术介绍。文章通过详细解析CPU计数器,包括us、wa、sy、si等,以及其分析链路,为读者提供了深入了解CPU性能问题的思路和方法。同时,作者还提出了思考题,引导读者深入思考CPU在性能问题分析中的重要性。整体而言,本文内容丰富,对于需要深入了解操作系统性能监控和分析的读者具有很高的参考价值。
《性能测试实战 30 讲》,新⼈⾸单¥59
全部留言(16)
- 最新
- 精选
- Linuxer不知道我理解得对不对,应用无非就是两种计算密集型和IO密集型,计算密集集就体现在CPU忙,IO密集型就体现在CPU空闲,我想接下来无非就是围绕这两种类型展开分析,所以说CPU是性能分析的方向性指标。
作者回复: 理解的很正确。
2020-01-2221 - potato现在 我们这边压测有一个指标,混合压测的时候,看cpu的使用率 超过60%的就定义为系统瓶颈,这个是不是不太合理呢
作者回复: 非常不合理,这是耍流氓! 首先只看使用率的想法就不对。
2020-08-187 - 凌空飞起的剪刀腿swap是干嘛的? 在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。 SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。 当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
作者回复: 还有一点要注意,soft faults会不断增加。
2020-04-026 - 小昭做个内容小结: 1、操作系统需要监控的模块:CPU、I/O、Memory、Network、System、Swap。 2、仅需四个命令就能监控以上6个模块:top、wmstat、iostat、netstat。 3、监控命令是可以监控到相应模块的计数器,而不是监控某个模块。对于监控命令,要知道它的局限性,并且要通过大量的练习来掌握。 4、监控的思考逻辑:因为需要监控某个计数器,才使用某个监控命令。(有点类似分析性能数据时,自己应该知道要从哪些数据入手,而不是把全部的数据看一遍) 5、CPU常用的8个计数器中,容易出现性能问题是以下四个计数器,排序按照频率由高到低:us、wa、sy、si。要分别构建分析决策树。CPU是重点分析对象。 6、为了保证分析方向的正确性,用perf top -g命令确定CPU用在哪里。(需要先安装perf)
作者回复: 总结得不错。不过在操作中,希望还能记得住。
2020-04-1125 - 月亮和六便士老师,1. 在落地si cpu 的时候 看interrupts的目的是什么,不能直接看softirqs吗 ?从interrupts-->softirqs 这个判断逻辑是什么? 2. 判断si 高低的逻辑和标准是什么?
作者回复: 1. 看interrupts是为了对应中断号和设备名。看softirqs是为了看模块名。从interrupts-->softirqs 是相同的数据,不需要判断呀。 2. SI高低没有标准。主要看它对性能产生了多大的影响。
2020-04-074 - 吴小喵8919 的模板导入没有成功呢,什么数据都出不了
作者回复: 做如下检查: 1. node_exporter有没有取到数据? 2. prometheus中有没有存储到数据? 3. grafana中的数据源配置是否正确? 4. 导入模板时是否选择了正确的数据源?
2020-02-274 - 喜哥你好,高老师,问下 如果应用部署在k8s上 ,用top或是vmstat等命令查看都是node节点的指标,如何精确排查应用问题导致的性能问题呢
作者回复: 首先,k8s只是编排工具,容器才是应用的载体。如果你是用的k8s+docker,那就先把k8s、node(也就是你说的用top、vmstat看的部分)、docker监控起来,然后把其中的应用监控起来,这就取决于你是什么样的应用了。 如果是java应用,可以用专栏关于java分析部分的工具。如果是基他语言,可以用其他语言提供的分析工具。
2020-02-104 - 学员141高老师好,最近压测集群的pod应用,发现pod的内存只会上涨不会释放,登录pod所在节点,根据命令(TOP PIDSTAT)监控pod应用对应的线程pid,内存也没有释放,这个有影响吗?我看内存长期在pod的limit下,也没有内存溢出
作者回复: 如果性能不下降,就没关系。
2021-09-2723 - zwm第二编读,有新收获
作者回复: 我都不止读两遍了。写的人也是会忘的。😊
2021-09-103 - 浅浅PHP语言的us CPU高,怎么分析呢?老师,求回复
作者回复: php是脚本语言,直接在代码里加剖析工具就可以。
2022-03-241