chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

內(nèi)核配置項(xiàng)引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

jf_44130326 ? 來源:Linux1024 ? 2026-02-01 16:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、引言

嵌入式系統(tǒng)開發(fā)中,內(nèi)核配置對系統(tǒng)性能起著關(guān)鍵作用。近期在對基于Rockchip平臺的Linux內(nèi)核配置調(diào)試時(shí),發(fā)現(xiàn)三個(gè)內(nèi)核跟蹤器配置項(xiàng)(CONFIG_IRQSOFF_TRACER、CONFIG_PREEMPT_TRACERCONFIG_SCHED_TRACER)的啟用,竟導(dǎo)致網(wǎng)絡(luò)性能下降約10%,關(guān)閉后借助iperf3測試丟包問題消失。本文將深入剖析這幾個(gè)配置項(xiàng)的用途,以及為何它們會影響網(wǎng)絡(luò)性能。

wKgZO2kancOARRxQAAMOwjbCJqs571.png

二、相關(guān)內(nèi)核配置項(xiàng)解析

(一)CONFIG_IRQSOFF_TRACER

?功能用途

該配置項(xiàng)用于啟用“IRQ關(guān)閉跟蹤器,主要作用是跟蹤系統(tǒng)中關(guān)閉中斷(IRQ)的代碼路徑。當(dāng)內(nèi)核執(zhí)行一些對時(shí)序要求極高、需避免中斷干擾的關(guān)鍵操作時(shí)(如某些硬件寄存器的原子性配置),會暫時(shí)關(guān)閉中斷。IRQSOFF_TRACER會記錄從關(guān)閉中斷開始,到重新開啟中斷為止的這段時(shí)間內(nèi)的內(nèi)核執(zhí)行細(xì)節(jié),包括代碼執(zhí)行路徑、耗時(shí)等,方便開發(fā)者分析因關(guān)閉中斷可能引發(fā)的延遲問題,排查實(shí)時(shí)性相關(guān)故障。

?工作機(jī)制

啟用后,內(nèi)核會在中斷關(guān)閉和開啟的關(guān)鍵節(jié)點(diǎn)插入追蹤代碼,這些代碼會記錄時(shí)間戳、當(dāng)前執(zhí)行上下文等信息。隨著系統(tǒng)運(yùn)行,不斷采集并暫存這些跟蹤數(shù)據(jù),供后續(xù)借助ftrace等工具進(jìn)行分析。這一過程會額外增加內(nèi)核代碼執(zhí)行的指令數(shù),帶來一定的計(jì)算開銷。

(二)CONFIG_PREEMPT_TRACER

?功能用途

用于啟用搶占跟蹤器,聚焦于跟蹤內(nèi)核的搶占行為。Linux內(nèi)核支持可搶占調(diào)度(在配置了CONFIG_PREEMPT等相關(guān)搶占特性基礎(chǔ)上),PREEMPT_TRACER能夠記錄內(nèi)核線程被搶占的時(shí)機(jī)、搶占前后的線程狀態(tài)等信息,助力開發(fā)者優(yōu)化內(nèi)核調(diào)度的實(shí)時(shí)性,解決因搶占不合理導(dǎo)致的延遲問題。

?工作機(jī)制

在內(nèi)核調(diào)度器的關(guān)鍵邏輯處(如決定是否搶占當(dāng)前線程時(shí)),插入跟蹤點(diǎn),記錄調(diào)度相關(guān)的線程ID、優(yōu)先級、時(shí)間等數(shù)據(jù)。每次搶占發(fā)生或嘗試搶占時(shí),都會觸發(fā)這些跟蹤邏輯,這無疑會增加調(diào)度器的執(zhí)行負(fù)擔(dān),因?yàn)樵竞啙嵉恼{(diào)度判斷流程,現(xiàn)在要額外處理跟蹤數(shù)據(jù)的記錄操作。

(三)CONFIG_SCHED_TRACER

?功能用途

作為調(diào)度跟蹤器,用于全面跟蹤內(nèi)核調(diào)度器的行為。它不僅關(guān)注搶占,還會記錄線程的調(diào)度入隊(duì)、出隊(duì)、切換等整個(gè)生命周期的調(diào)度事件,能詳細(xì)呈現(xiàn)調(diào)度器如何選擇下一個(gè)要執(zhí)行的線程、線程的等待時(shí)長、調(diào)度延遲情況等,是分析調(diào)度性能瓶頸、優(yōu)化調(diào)度策略的有力工具 。

?工作機(jī)制

在調(diào)度器的眾多關(guān)鍵函數(shù)(如schedule()、線程入隊(duì)函數(shù)、出隊(duì)函數(shù)等)中植入跟蹤代碼,每次調(diào)度事件發(fā)生時(shí),收集并存儲大量調(diào)度相關(guān)元數(shù)據(jù)(如線程狀態(tài)變化、調(diào)度延遲統(tǒng)計(jì)等)。這使得調(diào)度器的執(zhí)行流程變得更為復(fù)雜,執(zhí)行時(shí)間被延長,因?yàn)橐l繁處理跟蹤數(shù)據(jù)的采集和存儲。

三、對網(wǎng)絡(luò)性能影響的深度分析

(一)內(nèi)核資源競爭角度

網(wǎng)絡(luò)數(shù)據(jù)的收發(fā),依賴內(nèi)核網(wǎng)絡(luò)協(xié)議棧的處理,而協(xié)議棧的運(yùn)行離不開內(nèi)核調(diào)度、中斷等機(jī)制的協(xié)同。當(dāng)啟用上述三個(gè)跟蹤器后:

?中斷處理受干擾CONFIG_IRQSOFF_TRACER增加了中斷關(guān)閉與開啟過程的開銷,網(wǎng)絡(luò)數(shù)據(jù)接收往往依賴中斷觸發(fā)(如網(wǎng)卡收到數(shù)據(jù)包觸發(fā)中斷,通知內(nèi)核處理)。若中斷處理因跟蹤代碼插入而延遲,會導(dǎo)致網(wǎng)卡接收隊(duì)列中的數(shù)據(jù)包不能及時(shí)被內(nèi)核取走,隊(duì)列溢出風(fēng)險(xiǎn)增加,進(jìn)而引發(fā)丟包。即使未丟包,也會因處理延遲導(dǎo)致網(wǎng)絡(luò)延遲增大,影響吞吐量。

?調(diào)度效率降低CONFIG_PREEMPT_TRACERCONFIG_SCHED_TRACER讓內(nèi)核調(diào)度器負(fù)載加重。網(wǎng)絡(luò)協(xié)議棧中的線程(如負(fù)責(zé)數(shù)據(jù)包轉(zhuǎn)發(fā)、協(xié)議處理的內(nèi)核線程)的調(diào)度會變得不順暢。比如,當(dāng)一個(gè)網(wǎng)絡(luò)線程需要被調(diào)度執(zhí)行來處理緊急數(shù)據(jù)包時(shí),調(diào)度器可能因忙于處理跟蹤數(shù)據(jù)記錄,而不能及時(shí)響應(yīng)調(diào)度請求,導(dǎo)致網(wǎng)絡(luò)處理線程等待時(shí)間過長,數(shù)據(jù)包處理不及時(shí),影響網(wǎng)絡(luò)吞吐量,甚至引發(fā)丟包(當(dāng)隊(duì)列滿時(shí))。

(二)性能開銷疊加角度

三個(gè)跟蹤器各自都會帶來一定的內(nèi)核性能開銷,且這些開銷在網(wǎng)絡(luò)高負(fù)載場景下會相互疊加、放大:

?跟蹤代碼的執(zhí)行涉及大量的內(nèi)存訪問(如記錄跟蹤數(shù)據(jù)到內(nèi)存緩沖區(qū))、條件判斷(判斷是否觸發(fā)跟蹤邏輯)等操作,會占用CPU周期。網(wǎng)絡(luò)處理本身對CPU資源需求較高(如數(shù)據(jù)包的校驗(yàn)、協(xié)議解析等),當(dāng)CPU被跟蹤邏輯大量占用時(shí),網(wǎng)絡(luò)協(xié)議??捎玫?/span>CPU資源減少,處理能力下降。

?在高網(wǎng)絡(luò)吞吐量場景下,網(wǎng)絡(luò)中斷觸發(fā)頻繁、調(diào)度事件增多,跟蹤器被觸發(fā)的頻率也會大幅上升。原本每個(gè)跟蹤點(diǎn)的微小開銷,會因高頻率觸發(fā)而累積成顯著的性能損耗,最終體現(xiàn)為網(wǎng)絡(luò)性能的明顯下降,如測試中出現(xiàn)的約10%吞吐量降低,以及丟包現(xiàn)象(當(dāng)資源緊張到一定程度時(shí))。

(三)與iperf3測試的關(guān)聯(lián)

iperf3是常用的網(wǎng)絡(luò)性能測試工具,用于測試網(wǎng)絡(luò)帶寬、丟包率等指標(biāo)。當(dāng)啟用三個(gè)跟蹤器時(shí),內(nèi)核在處理iperf3產(chǎn)生的大量網(wǎng)絡(luò)數(shù)據(jù)包時(shí),受上述資源競爭和性能開銷影響,無法高效處理數(shù)據(jù)包:

?發(fā)送端,內(nèi)核協(xié)議??赡芤蛘{(diào)度延遲,不能及時(shí)將iperf3生成的數(shù)據(jù)包發(fā)送出去,導(dǎo)致發(fā)送速率受限;接收端,因中斷處理、調(diào)度問題,無法及時(shí)接收和處理數(shù)據(jù)包,使得數(shù)據(jù)包在接收隊(duì)列堆積,觸發(fā)丟包機(jī)制(如隊(duì)列滿后丟棄新到達(dá)的數(shù)據(jù)包)。而關(guān)閉跟蹤器后,內(nèi)核擺脫了額外的性能開銷和資源競爭干擾,能更高效地處理iperf3測試的數(shù)據(jù)包,丟包問題消失,網(wǎng)絡(luò)性能恢復(fù)正常。

四、總結(jié)與建議

(一)總結(jié)

CONFIG_IRQSOFF_TRACER、CONFIG_PREEMPT_TRACER、CONFIG_SCHED_TRACER這三個(gè)配置項(xiàng),主要用于內(nèi)核調(diào)試階段,輔助開發(fā)者分析中斷、搶占、調(diào)度相關(guān)的實(shí)時(shí)性問題。但它們通過增加內(nèi)核中斷處理、調(diào)度過程的開銷,引發(fā)資源競爭和性能損耗疊加,在網(wǎng)絡(luò)高負(fù)載場景下,對依賴內(nèi)核高效調(diào)度和中斷響應(yīng)的網(wǎng)絡(luò)處理流程產(chǎn)生干擾,最終導(dǎo)致網(wǎng)絡(luò)性能下降、丟包等問題。

(二)建議

?調(diào)試階段:在系統(tǒng)開發(fā)調(diào)試初期,若需分析內(nèi)核實(shí)時(shí)性、調(diào)度等問題,可臨時(shí)啟用這些跟蹤器,借助ftrace等工具采集數(shù)據(jù)進(jìn)行問題排查。

?生產(chǎn)階段:當(dāng)系統(tǒng)進(jìn)入生產(chǎn)環(huán)境或需要保障網(wǎng)絡(luò)等關(guān)鍵性能時(shí),務(wù)必關(guān)閉這些調(diào)試性質(zhì)的跟蹤器配置,避免其帶來的性能損耗影響系統(tǒng)整體功能,確保網(wǎng)絡(luò)、調(diào)度等核心功能高效運(yùn)行。

通過對這幾個(gè)內(nèi)核配置項(xiàng)的深入剖析,我們清晰認(rèn)識到內(nèi)核調(diào)試配置對系統(tǒng)性能的潛在影響,在實(shí)際開發(fā)中需根據(jù)場景合理取舍,保障系統(tǒng)性能與功能的平衡。



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3757

    瀏覽量

    133717
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1470

    瀏覽量

    42953
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11778

    瀏覽量

    219201
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    工控機(jī)的內(nèi)核配置

    工控機(jī)的內(nèi)核配置  對于工控機(jī)內(nèi)核,對于內(nèi)核的大小要求并不嚴(yán)格,關(guān)鍵的是正確性,健壯性和實(shí)時(shí)性(某些機(jī)子要求實(shí)時(shí)性較高).對文件系統(tǒng)要求單一,但保證正確性.網(wǎng)絡(luò)按需設(shè)置?! 】勺魅缦?/div>
    發(fā)表于 08-15 14:14

    linux內(nèi)核深度剖析,另附有光盤資料

    linux內(nèi)核深度剖析,對于想學(xué)linux內(nèi)核的人來說,絕對值得一看,另附有光盤資料。
    發(fā)表于 01-15 21:25

    內(nèi)核配置單的講解

    很多朋友要自己編譯內(nèi)核,自己加個(gè)驅(qū)動(dòng),或者把上面功能去掉,需要調(diào)用到內(nèi)核配置單,這里有一份講解,分享給大家
    發(fā)表于 11-08 14:20

    關(guān)于linux內(nèi)核配置文件

    linux怎樣選擇內(nèi)核配置文件?
    發(fā)表于 12-08 21:21

    修改內(nèi)核配置增加自己的驅(qū)動(dòng)為什么實(shí)現(xiàn)不了呢

    內(nèi)核和系統(tǒng)編譯都沒問題,但是我要修改內(nèi)核配置增加自己的驅(qū)動(dòng)做不了。文檔上也沒有關(guān)于內(nèi)核配置的項(xiàng)目,我自己試過 make ARCH=arm64 CROSS_COMPILE
    發(fā)表于 12-30 07:06

    Linux內(nèi)核配置方法及編譯資料分享

    Linux內(nèi)核配置及編譯解壓內(nèi)核建立源碼目錄該目錄下以patch結(jié)尾的文件為ST官方提供的補(bǔ)丁文件,linux-5.4.31.tar.xz為標(biāo)準(zhǔn)linux源碼包。解壓標(biāo)準(zhǔn)內(nèi)核源碼包
    發(fā)表于 02-08 06:55

    Linux系統(tǒng)內(nèi)核配置及編譯

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇8:STM32MP1微處理器之Linux內(nèi)核配置及編譯第 1 章 Linux內(nèi)核配置及編譯1.1 解壓內(nèi)核建立源碼目錄linux@ubuntu
    發(fā)表于 02-17 06:56

    Linux內(nèi)核配置系統(tǒng)詳解

    ,都將面臨著同樣的問題,即如何將源代碼融入到 Linux 內(nèi)核中,增加相應(yīng)的 Linux 配置選項(xiàng),并最終被編譯進(jìn) Linux 內(nèi)核。這就需要了解 Linux 的內(nèi)核配置系統(tǒng)。 眾所周
    發(fā)表于 11-01 15:45 ?4次下載

    Linux內(nèi)核配置編譯分析的設(shè)計(jì)方案

    Linux內(nèi)核配置編譯分析的設(shè)計(jì)方案
    發(fā)表于 07-08 16:53 ?18次下載
    Linux<b class='flag-5'>內(nèi)核配置</b>編譯分析的設(shè)計(jì)方案

    Linux內(nèi)核配置網(wǎng)絡(luò)資料說明

    Linux不止在上網(wǎng)時(shí)候才會用到網(wǎng)絡(luò)功能’一些程序在單機(jī)時(shí)候也會需要內(nèi)核網(wǎng)絡(luò)支持。 X server是個(gè)典型的例子。如果你是從一個(gè)老內(nèi)核更新到一個(gè)比較新的
    發(fā)表于 03-12 10:33 ?14次下載

    STM32MP157 Linux系統(tǒng)移植開發(fā)篇8:Linux內(nèi)核配置方法及編譯

    Linux內(nèi)核配置及編譯解壓內(nèi)核建立源碼目錄該目錄下以patch結(jié)尾的文件為ST官方提供的補(bǔ)丁文件,linux-5.4.31.tar.xz為標(biāo)準(zhǔn)linux源碼包。解壓標(biāo)準(zhǔn)內(nèi)核源碼包
    發(fā)表于 12-04 21:06 ?9次下載
    STM32MP157 Linux系統(tǒng)移植開發(fā)篇8:Linux<b class='flag-5'>內(nèi)核配置</b>方法及編譯

    什么是SysRq 內(nèi)核配置選項(xiàng)

    。 SysRq內(nèi)核配置選項(xiàng) 要使用系統(tǒng)請求鍵 SysRq ,內(nèi)核配置選項(xiàng)中必須打開 CONFIG_MAGIC_SYSRQ CONFIG_MAGIC_SYSRQ=y
    的頭像 發(fā)表于 09-26 16:42 ?1718次閱讀

    T507開發(fā)板如何修改和保存內(nèi)核配置

    本文檔介紹如何在開發(fā)時(shí)修改和保存內(nèi)核配置,適用于開發(fā)板TQT507。1.修改內(nèi)核配置編譯時(shí)系統(tǒng)會先檢測當(dāng)前內(nèi)核源碼目錄下是否存在.config文件,如果存在,直接使用此配置.confi
    的頭像 發(fā)表于 12-08 11:26 ?1408次閱讀
    T507開發(fā)板如何修改和保存<b class='flag-5'>內(nèi)核配置</b>

    TQT507開發(fā)板如何修改和保存內(nèi)核配置

    本文檔介紹如何在開發(fā)時(shí)修改和保存內(nèi)核配置,適用于開發(fā)板TQT507。 1.修改內(nèi)核配置 編譯時(shí)系統(tǒng)會先檢測當(dāng)前內(nèi)核源碼目錄下是否存在.config文件,如果存在,直接使用此配置.con
    的頭像 發(fā)表于 12-28 14:13 ?1056次閱讀
    TQT507開發(fā)板如何修改和保存<b class='flag-5'>內(nèi)核配置</b>

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750的驅(qū)動(dòng)安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3745次閱讀
    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制<b class='flag-5'>內(nèi)核</b>MotionRT750(一):驅(qū)動(dòng)安裝、<b class='flag-5'>內(nèi)核配置</b>與使用