Linux 軟中斷

来源:https://www.cnblogs.com/galvin007/archive/2020/04/08/12661599.html
-Advertisement-
Play Games

中斷 中斷其實是一種非同步的事件處理機制,可以提高系統的併發處理能力。 由於中斷處理程式會打斷其他進程的運行,所以,為了減少對正常進程運行調度的影響,中斷處理程式就需要儘可能快地運行。如果中斷本身要做的事情不多,那麼處理起來也不會有太大問題;但如果中斷要處理的事情很多,中斷服務程式就有可能要運行很長時 ...


中斷

中斷其實是一種非同步的事件處理機制,可以提高系統的併發處理能力。

由於中斷處理程式會打斷其他進程的運行,所以,為了減少對正常進程運行調度的影響,中斷處理程式就需要儘可能快地運行。如果中斷本身要做的事情不多,那麼處理起來也不會有太大問題;但如果中斷要處理的事情很多,中斷服務程式就有可能要運行很長時間。

  • 註意:

中斷處理程式在響應中斷時,還會臨時關閉中斷。這就會導致上一次中斷處理完成之前,其他中斷都不能響應,也就是說中斷有可能會丟失。

軟中斷(softirq)

Linux 將中斷處理過程分成了兩個階段,也就是上半部和下半部:

  • 上半部用來快速處理中斷,它在中斷禁止模式下運行,主要處理跟硬體緊密相關的或時間敏感的工作。也就是我們常說的硬中斷,特點是快速執行;
  • 下半部用來延遲處理上半部未完成的工作,通常以內核線程的方式運行。也就是我們常說的軟中斷,特點是延遲執行。

查看軟中斷和內核線程

  • /proc/softirqs 提供了軟中斷的運行情況;
  • /proc/interrupts 提供了硬中斷的運行情況。

查看軟中斷在CPU上累計次數:

// Linux 中的軟中斷包括網路收發、定時、調度、RCU 鎖等各種類型,可以通過查看 /proc/softirqs 來觀察軟中斷的運行情況。
// TIMER(定時中斷)、NET_RX(網路接收)、SCHED(內核調度)、RCU(RCU 鎖)
[root@k8s /proc]# cat softirqs
                    CPU0       CPU1
          HI:          5          1
       TIMER:  444492709  271957759
      NET_TX:      18937      15860
      NET_RX:   34769092  430587974
       BLOCK:   12265925          0
BLOCK_IOPOLL:          0          0
     TASKLET:        853        592
       SCHED:    4489427   66716813
     HRTIMER:          0          0
         RCU:  151213683  128619479
         

每個 CPU 都對應一個軟中斷內核線程,這個軟中斷內核線程就叫做 ksoftirqd/CPU 編號。

// 查看軟中斷線程運行情況
[root@k8s /proc]# ps aux | grep softirq
root         6  0.0  0.0      0     0 ?        S    Apr02   0:06 [ksoftirqd/0]
root        14  0.0  0.0      0     0 ?        S    Apr02   2:06 [ksoftirqd/1]

Sar

sar(System Activity Reporter系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、進程活動及IPC有關的活動等

[root@k8s /proc]# sar -n DEV 5
Linux 3.10.0-1062.4.1.el7.x86_64 (instance-010oj085) 	04/07/2020 	_x86_64_	(2 CPU)

04:28:56 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:29:01 PM vethweplf08851b      3.20      3.20      0.24      1.19      0.00      0.00      0.00
04:29:01 PM vethweplaa5bdc5      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:29:01 PM     weave     30.40     31.60      3.54      9.76      0.00      0.00      0.00
04:29:01 PM vethwepl932b3c7     10.40     12.20      1.56      3.68      0.00      0.00      0.00
04:29:01 PM vxlan-6784      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • 第一列:表示報告的時間。
  • 第二列:IFACE 表示網卡。
  • 第三、四列:rxpck/s 和 txpck/s 分別表示每秒接收、發送的網路幀數,也就是 PPS。
  • 第五、六列:rxkB/s 和 txkB/s 分別表示每秒接收、發送的千位元組數,也就是 BPS

可以通過這個工具分析網路軟中斷的情況

學習筆記
來自極客時間:《Linux性能優化實戰》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 問題 好像很少人會遇到這種需求。假設有一個文件夾,用戶有幾乎所有許可權,但沒有刪除的許可權,如下圖所示: 這時候使用SaveFileDialog在這個文件夾里創建文件居然會報如下錯誤: 這哪裡是網路位置了,我又哪裡去找個管理員?更奇怪的是,雖然報錯了,但文件還是會創建出來,不過這是個空文件。不僅W ...
  • 在這篇文章中,我將介紹如何使用 "ASP.NET Core托管服務" 運行Quartz.NET作業。這樣的好處是我們可以在應用程式啟動和停止時很方便的來控制我們的Job的運行狀態。接下來我將演示如何創建一個簡單的 ,一個自定義的 和一個在應用程式運行時就開始運行的 。我還將介紹一些需要註意的問題,即 ...
  • LinuxNFS網路文件系統 首先需要準備四台機器,分別為以下伺服器 NAS-Server-0 IP:192.168.254.10 Web-Server-1 IP:192.168.254.11 Web-Server-2 IP:192.168.254.12 Web-Server-3 IP:192.16 ...
  • 一般建議從msdn我告訴你上面下載系統,下麵是 Windows 微軟官網系統下載地址 首先,我們先查看一下Windows10系統狀態。 點擊桌面左下角的 Windows + X + N 快捷方式打開設置,再打開的Windows 設置面板中找到,系統和安全 點擊,在此就可以查看到當前系統的狀態。 Wi ...
  • [TOC] 1.MySQL安裝前準備 1.1.安裝依賴包 1.2.安裝cmake 1.3.創建用戶 2.MySQL下載安裝 2.1.創建軟體下載目錄 2.2.下載並上傳到/server/tools 2.3.解壓 2.4.安裝 3.配置並啟動 3.1.創建軟鏈接 3.2.拷貝配置文件到/etc 3.3 ...
  • 安裝 設置密碼 啟動之後,輸入一行 5.7.x對密碼有了更嚴格的要求,分為LOW,MEDIUM,STRONG三個等級,對應要求如下: LOW Length = 8 MEDIUM Length = 8, numeric, mixed case, and special characters STRON ...
  • 一、安裝中文版man 官方下載地址:https://code.google.com/archive/p/manpages-zh/ GITHUB項目地址:https://github.com/man-pages-zh/manpages-zh 安裝方法一 1、Debian / Ubuntu安裝 sudo ...
  • CPU優化 我們接下來從應用程式和系統的角度,分別來看看如何才能降低 CPU 使用率,提高 CPU 的並行處理能力。 應用程式優化 首先,從應用程式的角度來說,降低 CPU 使用率的最好方法當然是,排除所有不必要的工作,只保留最核心的邏輯。比如減少迴圈的層次、減少遞歸、減少動態記憶體分配等等。除此之外 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...