当前位置: 首页 > wzjs >正文

外贸汽车网站免费制作小程序平台

外贸汽车网站,免费制作小程序平台,语音网站怎么做,大宗农产品现货交易平台今日文章: 小林coding:什么是软中断? 目录软中断软中断概述软中断类型如何定位软中断 CPU 使用率过高的问题?其他: 往期打卡 软中断 中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求&#xf…

今日文章:

小林coding:什么是软中断?

目录

    • 软中断
      • 软中断概述
      • 软中断类型
      • 如何定位软中断 CPU 使用率过高的问题?

其他:

往期打卡


软中断

中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求

中断请求的响应程序,也就是中断处理程序,要尽可能快的执行完,这样可以减少对正常进程运行调度地影响。

软中断概述

Linux 系统为了解决中断处理程序执行过长和中断丢失的问题,将中断过程分成了两个阶段,分别是「上半部和下半部分」。

  • 上半部用来快速处理中断,一般会暂时关闭中断请求,主要负责处理跟硬件紧密相关或者时间敏感的事情。
  • 下半部用来延迟处理上半部未完成的工作,一般以「内核线程」的方式运行。

网卡收到网络包后,通过 DMA 方式将接收到的数据写入内存,接着会通过硬件中断通知内核有新的数据到了,于是内核就会调用对应的中断处理程序来处理该事件,这个事件的处理也是会分成上半部和下半部。

上部分要做的事情很少,会先禁止网卡中断,避免频繁硬中断,而降低内核的工作效率。接着,内核会触发一个软中断,把一些处理比较耗时且复杂的事情,交给「软中断处理程序」去做,也就是中断的下半部,其主要是需要从内存中找到网络数据,再按照网络协议栈,对网络数据进行逐层解析和处理,最后把数据送给应用程序。

所以,中断处理程序的上部分和下半部可以理解为:

  • 上半部直接处理硬件请求,也就是硬中断,主要是负责耗时短的工作,特点是快速执行;
  • 下半部是由内核触发,也就说软中断,主要是负责上半部未完成的工作,通常都是耗时比较长的事情,特点是延迟执行;

硬中断(上半部)是会打断 CPU 正在执行的任务,然后立即执行中断处理程序,而软中断(下半部)是以内核线程的方式执行,并且每一个 CPU 都对应一个软中断内核线程,名字通常为「ksoftirqd/CPU 编号」,比如 0 号 CPU 对应的软中断内核线程的名字是 ksoftirqd/0

不过,软中断不只是包括硬件设备中断处理程序的下半部,一些内核自定义事件也属于软中断,比如内核调度等、RCU 锁(内核里常用的一种锁)等。

软中断类型

/proc/interrupts 的 内容来知晓「硬中断」的运行情况

/proc/softirqs 的 内容来知晓「软中断」的运行情况

每一个 CPU 都有自己对应的不同类型软中断的累计运行次数,如图,该操作系统包含了10种软中断类型

在这里插入图片描述

比如 NET_RX 表示网络接收中断,NET_TX 表示网络发送中断、TIMER 表示定时中断、RCU 表示 RCU 锁中断、SCHED 表示内核调度中断。

值得注意的还有同一种类型的软中断在不同 CPU 的分布情况,正常情况下,同一种中断在不同 CPU 上的累计次数相差不多

这些数值是系统运行以来的累计中断次数,数值的大小没什么参考意义,但是系统的中断次数的变化速率才是我们要关注的,我们可以使用 watch -d cat /proc/softirqs 命令查看中断次数的变化速率。

软中断是以内核线程的方式执行的,我们可以用 ps 命令可以查看到对应的线程

在这里插入图片描述

图中可以看到有 4 个 ksoftirqd 内核线程,因为这台服务器是4核心的,每个CPU核心都对应着一个内核线程

内核线程的名字外面都有有中括号,这说明 ps 无法获取它们的命令行参数。一般来说,名字在中括号里的都可以认为是内核线程。

如何定位软中断 CPU 使用率过高的问题?

使用 top 命令查看系统的软中断的系统监控数据

在这里插入图片描述

上图中的黄色部分 si,就是 CPU 在软中断上的使用率,而且可以发现,每个 CPU 使用率都不高,两个 CPU 的使用率虽然只有 3% 和 4% 左右,但是都是用在软中断上了。

另外,也在图片下方的表格中可以看到 CPU 使用率最高的进程也是软中断 ksoftirqd,因此可以认为此时系统的开销主要来源于软中断。

如果要知道是哪种软中断类型导致的,我们可以使用 watch -d cat /proc/softirqs 命令查看每个软中断类型的中断次数的变化速率。

一般对于网络 I/O 比较高的 Web 服务器,NET_RX 网络接收中断的变化速率相比其他中断类型快很多。如果发现 NET_RX 网络接收中断次数的变化速率过快,接下来就可以使用 sar -n DEV 查看网卡的网络包接收速率情况,然后分析是哪个网卡有大量的网络包进来。

在这里插入图片描述

接着,在通过 tcpdump 抓包,分析这些包的来源,如果是非法的地址,可以考虑加防火墙,如果是正常流量,则要考虑硬件升级等。

往期打卡

暑假读书笔记第三天

暑假读书笔记第二天

暑假读书笔记第一天

http://www.dtcms.com/wzjs/252474.html

相关文章:

  • 西安比较好的网络公司关键词优化资讯
  • 泰州网站制作推广百度的营销推广模式
  • 云存储做网站网站收录大全
  • 泉州网站开发人员小米的推广软文
  • 上海比较好的外包公司seo排名教程
  • 李沧做网站公司广州seo推广公司
  • 海淘网站主要关键词重庆seo小z博客
  • 宝安做网站怎么样免费百度下载
  • 潍坊做网站的电话谷歌chrome浏览器
  • 咸宁网站定制百度网页版链接
  • 去泰国做赌博发网站站长素材音效
  • 如何做测评视频网站网上全网推广
  • 合肥seo优化外包公司seo工资
  • 医院网站建设 不足网上哪里接app推广单
  • 正规品牌网站设计地址百度推广官方投诉电话
  • 南昌市网站建设aso优化服务平台
  • 手机网站用什么软件做的网站注册地址
  • 网站空间格式asp电视剧排行榜百度搜索风云榜
  • 建筑网站的设计与实现的论文东莞企业网站推广
  • 网站建设注意内容在线排名优化
  • 别人网站建设多少钱在线网页生成器
  • 网站上传到万网主机seo推广哪家好
  • 广州学建网站如何在网上推广
  • 舟山网站seo网页推广怎么做
  • 小型企业的网站建设论文网站怎么推广效果好一点呢
  • 在网站后台设置wap模板目录推广赚钱平台
  • 自制大型网站建设chrome手机版
  • 衡水做淘宝网站建设广告推广策划
  • 网站制作比较好的制作公司最好的网络营销软件
  • 网站服务器怎么做搜索引擎优化网站的网址