暑假讀書筆記第四天

今日文章:

小林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.pswp.cn/news/913587.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913587.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913587.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨平臺的ARM 和 x86 Docker 鏡像:匯編語言實驗環境搭建

一、安裝和配置 Docker 1.安裝 Docker 官網鏈接:https://www.docker.com/ 以Debian(Ubuntu)系統為例: #安裝依賴包 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release#添加 Docker 官方 GPG 密鑰 sudo mkdir -p /etc/apt/keyr…

【前端知識】HTML頁面渲染:底層原理與技術實現剖析

HTML頁面渲染:底層原理與技術實現剖析HTML頁面渲染:底層原理與技術實現剖析渲染引擎的核心工作流程深度解析渲染關鍵階段1. 解析與構建DOM(Document Object Model)2. 構建CSSOM(CSS Object Model)3. 渲染樹…

Catmull-Rom平滑多段線在奇異點處的扭曲問題(1)

Catmull-Rom在奇異點處的扭曲問題 引言 在計算機圖形學和動畫中,我們經常需要在已知點之間創建平滑的過渡。Catmull-Rom樣條是一種流行的插值方法,它以簡單直觀的方式生成經過所有控制點的平滑曲線。本文將深入探討Catmull-Rom插值的原理、實現和應用。…

SX8652IWLTRT Semtech升特超低功耗觸控芯片 12通道+I2C接口 重新定義人機交互!

SX8652IWLTRT(Semtech)產品解析與推廣文案一、產品定位SX8652IWLTRT是Semtech(升特半導體)推出的低功耗電容式觸摸控制器,采用IC接口,專為便攜式設備和小家電的觸摸交互設計,支持多點觸控和手勢…

第02章 MySQL環境搭建

1.MySQL的卸載 步驟1:停止MySQL服務 在卸載之前,先停止MySQL8.0的服務。按鍵盤上的“Ctrl Alt Delete”組合鍵,打開“任務管理器”對話框,可以在“服務”列表找到“MySQL8.0”的服務,如果現在“正在運行”狀態&#…

實戰Linux進程狀態觀察:R、S、D、T、Z狀態詳解與實驗模擬

前言 在Linux系統中,進程狀態是系統管理和性能調優的核心知識。一個進程從誕生到終止,會經歷運行(R)、可中斷睡眠(S)、不可中斷睡眠(D)、停止(T)、僵尸&#…

數據庫與關系數據庫的區別是什么

數據庫,簡單來說,就是一個存儲數據的地方,就像一個超級大倉庫,能把各種各樣的數據都收納進來。它可以是一個簡單的文本文件,用來記錄一些基本信息;也可以是一個復雜的系統,存儲著企業的大量業務…

如何解決微信小程序出現兩個下拉刷新樣式?

在微信小程序中,如果出現兩個下拉刷新的情況,可能是因為在多個地方啟用了下拉刷新功能,或者在同一個頁面中多次調用了下拉刷新的API。以下是一些可能的原因和解決方法: 多次調用下拉刷新API: 確保在頁面的生命周期中只…

(3)手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】區別

手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】區別前言ref 擴展ref 和 reactive 區別前言 ref 擴展 在之前博文《(2)手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】》中有提到: 當時已基本類型 進行演練說明,此時以 對象…

機器視覺運動控制一體機在SCARA機器人柔振盤上下料的應用

市場應用背景 SCARA機器人是一種高效、高精度的圓柱坐標系工業機器人,專精于裝配任務。其獨特的機械結構賦予其在特定方向(通常是XY平面)高度順應性,同時在垂直方向保持優異剛性。 SCARA機器人本體通常包含三個軸線平行的旋轉關…

3D 演示動畫在汽車培訓與教育領域中的應用

在企業培訓這一至關重要的領域中,3D 演示動畫猶如一顆璀璨的明星,發揮著無可替代的關鍵作用,大顯身手。以某知名汽車制造企業為例,當對新入職員工開展汽車裝配培訓工作時,企業精心利用先進的 3D 演示動畫技術制作了極為…

華銳視點 VR 污水處理技術對激發學習興趣的作用?

華銳視點的 VR 虛擬仿真平臺,尤其是 VR 污水處理模塊,不僅僅是讓學生觀察,還設置了豐富多樣的互動操作環節,充分激發學生的學習興趣和主動性。?在平臺的 VR 污水處理模擬中,學生可以模擬操作各種污水處理設備。比如&a…

百度斬獲大模型中標第一,股價上漲5%

7月7日(周一),百度(BIDU.US)股價上漲 5%,收報 90.68美元。最新數據顯示,2025上半年我國大模型相關項目呈現爆發式增長態勢:中標項目累計達 1810個,金額突破 64億元&#…

【計算機網絡】4網絡層②

概念是什么?以太網有線聯網的標準LAN小范圍網絡(家里/公司)WAN大范圍網絡(跨城市)Internet全球公共互聯網 ??internet任意互聯的網絡 ??子網將一個LAN通過路由器的硬件隔離分為多個LAN(廣播域)VLAN將一個LAN通過交換機的軟件方法分為多個VLAN(廣播域)以太網和Wi-Fi建L…

微信小程序81~90

1. 配置分包加載以及打包、引用原則 小程序如果需要進行分包加載,需要在 app.json 中,通過 subPackages 或者 subpackages 定義分包結構 每個分包結構含三個常用字段: root:分包的根目錄,該目錄下的所有文件都會被打包…

深度學習——神經網絡1

一、神經網絡 1.神經網絡定義:人工神經網絡(Artificial Neural Network,ANN)也簡稱為神經網絡(NN),是一種模仿生物神經網絡結構和功能的計算模型。人腦可以看作是一個生物神經網絡,由…

ipmitool 使用簡介(ipmitool sel list ipmitool sensor list)

常用IPMI命令擴展使用ipmitool查看傳感器信息ipmitool是一個用于管理IPMI(Intelligent Platform Management Interface)設備的命令行工具,可用于監控服務器硬件狀態,包括傳感器數據。運行以下命令可以列出所有傳感器信息&#xff…

小米YU7預售現象深度解析:智能電動汽車的下一個范式革命

小米YU7預售現象深度解析:智能電動汽車的下一個范式革命一、預售數據創造三項行業新紀錄 2025年6月26日的小米YU7發布會,不僅刷新了智能汽車預售速度,更揭示了新時代的消費心理變遷: (1)訂單爆發速度史無前…

xlog-Android15適配之16KB對齊

背景 前兩天查看Google play控制臺突然發現有告警,一看原來是要求必須盡快適配Android15。 過程 先看了一下網上的資料,Android15適配 發現對我的apk基本上沒有什么影響,除了 動態庫必須16KB對齊這一項。 最簡單查看apk是否16KB對齊的方法…

Crazyflie支持MATLAB/Simulink控制 基于NOKOV度量動捕系統實現

Crazyflie支持MATLABSimulink控制 基于NOKOV度量動捕系統實現 一、動捕軟件VRPN配置 以動捕軟件版本XINGYING 4.2.0.5495為例,其他版本同理。打開動捕軟件,連接上鏡頭。單擊菜單欄下的視圖->數據廣播。在數據廣播中的VRPN流下,將單位下拉…