[转帖]Linux系统指令 top 之 %si 占用高,分析实例

linux,系统,指令,top,si,占用,分析,实例 · 浏览次数 : 0

小编点评

**问题分析:** * **%si高**:超过 95%,表明软中断处理时间超过正常范围内。 * **%si低**:正常范围内,说明软中断处理时间与正常情况下相比稍短。 * **项目 A 中,大压力下场景执行 2 分钟,%si 高于 95%,说明 CPU 在处理软中断需要更长的时间。 * **项目 B 中,大压力下场景执行 2 分钟,%si 低于 95%,说明 CPU 在处理软中断的效率更高。 **结论:** 在处理软中断时,计算机资源分配可能不均衡,导致部分设备处理速度较慢。这可能是由于以下原因: * CPU 等待软中断完成的时间更长。 * 网络连接可能对处理软中断产生影响。 * 连接到数据库的线程可能占用过多 CPU 资源。 **建议:** * 优化软中断处理逻辑,降低 CPU 使用率。 * 减少网络连接时间。 * 降低连接数量或使用批量处理等技术降低 CPU 处理软中断所需的资源。

正文

https://www.coonote.com/linux-note/linux-top-si-high-instance.html

 

续“top %wa 高的问题”之后,又遇到top之%si过高(高峰时段超过95%)的问题。

%wa高,说明磁盘忙。譬如磁盘读写次数非常高。

%si高,是否说明软中断忙?是否也说明软中断次数非常高呢?

为了查证此问题,找了一些Linux监控中断的工具。起初找到oprofile,它非常强大,强大到使用起来摸不着北。能用oprofile监控硬中断,但在%si很高的时候,监控到硬中断为零。

然后找到procinfo可以监控详细的软中断,可以看来设备及对应的中断数。将两个%si高的项目监控结果如下:


项目A,大压力下场景执行2分钟:

测试前:(未执行测试时,查询前端[服务器C]的数据)

context :11608691780

irq 0: 377348704 timer

irq 14: 41845647 ide0

irq 58:2557376548 0

irq233: 69455022 ioc0

问题环境:(接口配置在[服务器G]时,查询前端[服务器C]的数据)

context :11609397277 差值:705497

irq 0: 377651500 timer 差值:302796

irq 14: 41848329 ide0 差值:2682

irq 58:2557728212 0 差值:351664

irq233: 69457769 ioc0 差值:2747

正常环境:(接口配置在[服务器E]时,查询前端[服务器C]的数据)

context :11611152447 差值:1755170

irq 0: 378089297 timer 差值:437797

irq 14: 41852253 ide0 差值:3924

irq 58:2558490578 0 差值:762366

irq233: 69506181 ioc0 差值:48412


项目B,大压力下场景执行2分钟:

测试前:(未执行测试时,[服务器E]的数据)

context :365586128

irq 0: 555887117 timer

irq 14: 4970216 ide0

irq 98: 6673200 0

irq233: 2963048 ioc0

正常环境:(数据库连接池设置为 localhost )

context :368023507 差值:2437379

irq 0: 556101285 timer 差值:214168

irq 14: 4972124 ide0 差值:1908

irq 98: 7013268 0 差值:340068

irq233: 2968985 ioc0 差值:5937

问题环境:(数据库连接池设置为本机的IP地址)

context :369679349 差值:1655842

irq 0: 556446790 timer 差值:345505

irq 14: 4975148 ide0 差值:3024

irq 98: 7298545 0 差值:285277

irq233: 2974283 ioc0 差值:5298


正常环境,指%si值在正常范围内波动。问题环境指%si异常,一般%si会达到70%~95%。差值是对应设备在测试过程中产生的中断数。

正常环境下的中断数比异常情况下的中断数更高。说明:

计算机在单位有能力处理更多的中断数量,中断数量多并不代表%si高。

进一步说明了:%si高代表CPU等待软中断完成的时间更高。

结合项目B的实际情况,将LAMP的Mysql连接方式置为永久连接(长连接),%si就不会高了:

  1. 说明PHP在连接Mysql在使用localhost连接时不走网络,进程间切换就不废劲,CPU无需等待;

  2. 而PHP在使用IP地址进行连接时,进程间切换比较耗费资源,导致CPU等待;

  3. 进程间切换就会产生中断,则CPU等待切换就是CPU在等待软中断处理完成。

与[转帖]Linux系统指令 top 之 %si 占用高,分析实例相似的内容:

[转帖]Linux系统指令 top 之 %si 占用高,分析实例

https://www.coonote.com/linux-note/linux-top-si-high-instance.html 续“top %wa 高的问题”之后,又遇到top之%si过高(高峰时段超过95%)的问题。 %wa高,说明磁盘忙。譬如磁盘读写次数非常高。 %si高,是否说明软中断忙

[转帖]iftop流量监控

https://www.cnblogs.com/zh-dream/p/16691807.html iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令。iftop 可以监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和

[转帖]Linux命令拾遗-top中的%nice是啥

https://www.cnblogs.com/codelogs/p/16060663.html 简介# 这是Linux命令拾遗系列的第八篇,本篇主要介绍top命令中nice%这个指标的含义以及进程优先级相关内容。 本系列文章索引Linux命令拾遗-入门篇Linux命令拾遗-文本处理篇Linux命令

[转帖]linux时间戳转换成时间指令_时间戳转换公式

原文地址:http://wanping.blogbus.com/logs/28663569.html 1、时间戳转换为正常显示的时间格式 Freebsd 系统下: 转换命令为: date -r 1112173761 或者:date -r 1112173761 +”%Y-%m-%d %T %z”(年月

[转帖]服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能

https://cloud.tencent.com/developer/article/1879120?areaSource=&traceId= 九条指令查看Linux服务器指令 一、uptime 这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中

[转帖]40张图入门Linux——(前端够用,运维入门)

本文主要是Linux的入门内容,利用40张思维导图从基础、操作、实用指令、组管理和权限管理、crond任务调度、Linux磁盘分区和挂载、Linux网络环境配置、进程管理、服务管理、RPM和YUM、软件安装关键点、Shell编程共十二部分着手,从而系统的了解一下Linux(基于Centos),本文的

[转帖][译] Linux 系统调用权威指南(2016)

http://arthurchiao.art/blog/system-call-definitive-guide-zh/ 译者序 本文翻译自 2016 年的一篇英文博客 The Definitive Guide to Linux System Calls 。如果能看懂英文,我建议你阅读原文,或者和本

[转帖]Linux系统下cpio命令详解

简介 cpio主要是解压或者将文件压缩到指定文件中即copy-in和copy-out模式。 参数说明 参数参数说明-icopy-in模式,解压文件-ocopy-out模式,即压缩文件-d自动生成目录-v打印处理的文件-m保留文件修改的时间 具体操作 [root@localhost casper]#

[转帖]Linux性能分析:理解系统平均负载

Linux系统中,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。它不仅包括了正在使用CPU的进程,也包括处于不可打断的睡眠状态的进程—它们是在等待其它系统资源如磁盘 I/O 等的进程。而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。 有诸多方式监测系统平

[转帖]Linux系统IO基准测试方法

https://www.cnblogs.com/wangzhen3798/p/13631848.html 顺序读写测试 主要关注磁盘的吞吐量,即每秒能够读入或者写出多少数据。普通单块机械磁盘顺序写在100MB/s左右,普通单块SSD的顺序写在500MB/s左右。该指标对MQ、ES等以append方式