18丨CentOS:操作系统级监控及常用计数器解析(下)
该思维导图由 AI 生成,仅供参考
I/O
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了CentOS操作系统级监控及常用计数器解析的相关内容。首先讨论了I/O性能分析,重点介绍了使用iostat和iotop工具来定位I/O性能问题。其次,强调了内存管理和监控的重要性,特别是关注available内存和内存泄露导致的性能问题。此外,还涉及了网络分析的内容,包括Recv_Q和Send_Q的判断以及网络瓶颈的定位。文章通过实际案例和工具的介绍,帮助读者了解了操作系统性能监控和分析的方法和技巧。 在讨论TCP的三次握手和四次挥手时,强调了半连接队列和全连接队列的重要性,以及与其相关的参数和操作系统内核参数。此外,对System的计数器和Swap进行了解释和分析,提出了关于Swap的建议。总结时强调了监控平台的重要性,以及性能分析需要全面的分析链和操作系统提供的监控数据的重要性。 总的来说,本文内容丰富,涵盖了操作系统性能监控和分析的多个方面,为读者提供了全面的技术知识和实用建议。
《性能测试实战 30 讲》,新⼈⾸单¥59
全部留言(24)
- 最新
- 精选
- 罗辑思维当操作系统中配置了vm.swappiness是 30%,那么当内存用到1-30%=70%的时候,就会发生 Swap。 高老师,文中对swappiness参数设置值描述跟倪鹏飞老师在专栏讲解有不一样的地方。个人还是认同swappiness不是内存的百分比。下面这段是摘自是倪鹏飞老师《Linux性能分析实战》第19讲。 --------------------------- /proc/sys/vm/swappiness 选项,用来调整使用 Swap 的积极程度。 swappiness 的范围是 0-100,数值越大,越积极使用 Swap,也就是更倾向于回收匿名页;数值越小,越消极使用 Swap,也就是更倾向于回收文件页。 虽然 swappiness 的范围是 0-100,不过要注意,这并不是内存的百分比,而是调整 Swap 积极程度的权重,即使你把它设置成 0,当剩余内存 + 文件页小于页高阈值时,还是会发生 Swap。
作者回复: 仔细检查了一下。这个直接说是内存的百分比,确实不够精确。我之前看到过一些文章应该就是直接写的内存使用率百分比。 多谢指正,可以联系我,拿200块钱红包。 在这里更正如下: 在操作系统中,vm.swappiness是用来定义使用swap的倾向性。官方说明如下: swappiness This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase agressiveness, lower values decrease the amount of swap. A value of 0 instructs the kernel not to initiate swap until the amount of free and file-backed pages is less than the high water mark in a zone. The default value is 60. 1. 值越高,则使用swap的倾向性越大。 2. 值越低,则使用swap的倾向性越小。 但这个倾向性是谁跟谁比呢?简单地说,在内存中有anon内存(匿名而链表,分为:inactive/active)和file内存(映射页链表,也分为:inactive/active),而swappiness是定义了对anon页链表扫描的倾向性。在linux源码vmscan.c中有这样的定义: /* * With swappiness at 100, anonymous and file have the same priority. * This scanning priority is essentially the inverse of IO cost. */ anon_prio = swappiness; file_prio = 200 - anon_prio; 也就是说如果swappiness设置为100时,则anon和file内存会同等的扫描;如果设置为0时,则file内存扫描的优先级会高。但是这并不是说设置为了0就没有swap了,在操作系统中还有其他的逻辑使用swap。 以后我会找个时间专门写一下这个逻辑。这里面涉及到几个部分的源代码逻辑,还是有点小复杂。
2020-04-05221 - 木剑温华一个 TCP 连接大概占 3KB,创建 10 万个连接,才100000x3KB≈300M左右,何况最多才 65535 呢?服务器有那么穷吗? 这里感觉老师说的有一点问题,一个tcp链接由四元组组成:sip:sport---cip:cport,单机最多65535个端口,但是可以根据公式可以看到只影响了sport的数量,但是cip和cport的组合是无穷尽的,所以单机理论最大连接数远大于65535,我之前在iot项目和消息推送项目做过相关的压测,成功地把单机最大长连接数提高到100w以上。
作者回复: 这里的描述有问题。我修改一下。 对客户端来说,会受到65535的端口数限制,对服务端来说不受端口数限制。
2021-08-319 - SeaYang使用Linux服务器作为压力机,TPS达到比较高的时候压力机会大量报无法分配请求地址的错误,从而导致TPS直接降为0,命令看了下TIME_WAIT的数量很多,调整了一下几个内核参数,就解决了
作者回复: 一看就是高手。
2020-10-273 - aoe老师硬核调优!测试、开发、运维后期在操作系统、网络上都这么强了!
作者回复: 性能是一个工程,从前到后。在我的思路中,不受职位限制。只看要达到的目标。哈哈。
2020-10-143 - 月亮和六便士高老师,看完您的课程,有一些思路了,但是我发现思路和实战之间有一道鸿沟,我已经掉到沟里了,比如 分析的起点拆分响应时间,但是不知道怎么拆分,开发更是一头雾水。应用又是部署在docker里面,好不容易配置了个Tomcat监控,结果重启了一下配置又没了,运维说docker里没法暴露监控端口,真是寸步难行啊
作者回复: 你这个是管理和沟通的问题,和技术无关。docker里当然可以暴露监控端口。 即使不这样,也得有其他的监控docker的手段。 技术角度来说,没有收拾不了的系统。
2020-03-273 - 黑脸龙猫酱老师可否说下对于云服务器,io有些时间段不稳定的情况应该如何处理?
作者回复: 云服务器都是虚拟机,如果你是被无良厂商超卖的话,那只能去骂街了。
2020-03-163 - 小老鼠由于上下文切换过多引起性能降低的情形多吗?
作者回复: 在我的工作经验中,上下文切换的问题排不到前五名。但是前十名还是有可能的。
2020-02-183 - 悦霖高老师问一下,每次性能测试看io较高基本都是jbd2这个进程占用大量的IO,怎么进一步分析,而且这个jdb2是个啥?
作者回复: 后面文章里会写到它。
2020-02-182 - 闲鱼超人监控平台为什么不重要呢? 监控平台的主要用途是为了提供运行时状态数据给我们的,利用这些数据,我们分析性能情况。所以关键是数据、是证据链,是这些数据反馈出来的问题,这是核心。所以从这个角度来说,监控平台是不重要的,因为只要能提供这些你需要的数据,哪个平台都可以。
作者回复: 是的。理解的很对。
2021-02-241 - David.cui高老师讲的还是很透彻的,能分析到非常细微的差别。 高手!
作者回复: 只有落地才是正道。
2020-12-031