日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

功能增強(qiáng)的soft lockup檢測(cè)機(jī)制使用說(shuō)明

更新時(shí)間:

soft lockup是指CPU被內(nèi)核代碼占用,導(dǎo)致無(wú)法執(zhí)行其他進(jìn)程,即CPU無(wú)法進(jìn)行調(diào)度的現(xiàn)象。內(nèi)核增強(qiáng)了soft lockup檢測(cè)功能,提供了更為詳盡的日志信息,能夠更迅速地定位問(wèn)題原因,從而采取相應(yīng)的措施進(jìn)行修復(fù)或優(yōu)化,提高系統(tǒng)的穩(wěn)定性和可靠性。

使用限制

內(nèi)核:ANCK 5.10-017及以上版本。

soft lockup檢測(cè)原理

內(nèi)核為每個(gè)CPU分配一個(gè)定時(shí)執(zhí)行的高優(yōu)先級(jí)watchdog內(nèi)核線程。如果該線程未能在設(shè)定期限內(nèi)獲得調(diào)度,則表明發(fā)生了soft lockup。

說(shuō)明
  • 任務(wù)的優(yōu)先級(jí)從左至右依次降低:硬中斷、軟中斷、實(shí)時(shí)內(nèi)核線程、普通內(nèi)核線程、用戶進(jìn)程。

  • 低優(yōu)先級(jí)的任務(wù)不能搶占高優(yōu)先級(jí)任務(wù)。

內(nèi)核對(duì)中斷處理的時(shí)序

一般情況下,內(nèi)核對(duì)中斷的處理時(shí)序圖如下所示。

image

功能增強(qiáng)的soft lockup場(chǎng)景說(shuō)明

soft lockup檢測(cè)的是硬中斷+軟中斷+內(nèi)核線程的總時(shí)間,主要關(guān)注以下三種場(chǎng)景。

場(chǎng)景

描述

分析說(shuō)明

CASE#1

軟中斷執(zhí)行時(shí)間過(guò)長(zhǎng)。

軟中斷的優(yōu)先級(jí)高于內(nèi)核線程,意味著在執(zhí)行軟中斷時(shí)不會(huì)調(diào)度watchdog線程。因此,若軟中斷的執(zhí)行時(shí)間過(guò)長(zhǎng),可能會(huì)導(dǎo)致soft lockup現(xiàn)象的發(fā)生。

CASE#2

硬中斷+軟中斷執(zhí)行時(shí)間過(guò)長(zhǎng)。

與案例#1類似。不同之處在于,可能存在大量中斷,內(nèi)核持續(xù)處理中斷,導(dǎo)致硬中斷+軟中斷的執(zhí)行時(shí)間較長(zhǎng),從而使得watchdog線程無(wú)法獲得調(diào)度,最終可能導(dǎo)致soft lockup的發(fā)生。

CASE#3

內(nèi)核線程執(zhí)行時(shí)間過(guò)長(zhǎng)。

最常見(jiàn)的soft lockup,也是內(nèi)核soft lockup檢測(cè)機(jī)制的檢測(cè)目標(biāo)。Alibaba Cloud Linux搭載的ANCK(Alibaba Cloud Kernel)內(nèi)核為不可搶占內(nèi)核,一旦進(jìn)入內(nèi)核態(tài),除非內(nèi)核任務(wù)執(zhí)行結(jié)束后返回用戶態(tài)或內(nèi)核任務(wù)主動(dòng)進(jìn)行調(diào)度,否則內(nèi)核將不會(huì)調(diào)度其他任務(wù)的執(zhí)行,這意味著watchdog線程也不會(huì)被調(diào)度。在內(nèi)核線程執(zhí)行耗時(shí)的計(jì)算、死循環(huán)、長(zhǎng)時(shí)間自旋等待鎖等情況下,通常可以從Call Tree中直接看出原因。

出現(xiàn)soft lockup的3種場(chǎng)景的時(shí)序圖如下所示。

image

功能增強(qiáng)的soft lockup使用說(shuō)明

執(zhí)行以下命令,查看內(nèi)核日志。

dmesg

功能增強(qiáng)的soft lockup檢測(cè)機(jī)制會(huì)在發(fā)生soft lockup后輸出以下信息。

watchdog: BUG: soft lockup - CPU#28 stuck for 23s! [fio:83921]
  CPU#28 Utilization every 4s during lockup:
    #1: 0% system, 0% softirq, 100% hardirq, 0% idle
    #2: 0% system, 0% softirq, 100% hardirq, 0% idle
    #3: 0% system, 0% softirq, 100% hardirq, 0% idle
    #4: 0% system, 0% softirq, 100% hardirq, 0% idle
    #5: 0% system, 0% softirq, 100% hardirq, 0% idle

根據(jù)輸出信息,判斷soft lockup的具體原因的規(guī)則如下:

  • 如果硬中斷(hardirq)利用率較高,則表明是中斷風(fēng)暴。功能增強(qiáng)的soft lockup檢測(cè)機(jī)制當(dāng)檢測(cè)到硬中斷時(shí)間占比高于50%時(shí)會(huì)額外輸出最高頻的前5個(gè)中斷,如下所示。

    [  638.873494] CPU#9 Detect HardIRQ Time exceeds 50%. Most frequent HardIRQs:
    [  638.873994]  #1: 330945      irq#7
    [  638.874236]  #2: 31          irq#82
    [  638.874493]  #3: 10          irq#10
    [  638.874744]  #4: 2           irq#89
    [  638.874992]  #5: 1           irq#102
  • 如果軟中斷(softirq)利用率很高,則表明是軟中斷處理時(shí)間過(guò)長(zhǎng)。

  • 如果system利用率很高,則表明是內(nèi)核任務(wù)執(zhí)行時(shí)間過(guò)長(zhǎng)。

增強(qiáng)后的soft lockup檢測(cè)機(jī)制實(shí)戰(zhàn)指南

  • 案例一:中斷風(fēng)暴導(dǎo)致的soft lockup。

    以下5行信息順序輸出了soft lockup期間每個(gè)統(tǒng)計(jì)周期內(nèi)CPU的狀態(tài),從左往右分別是CPU處理內(nèi)核任務(wù)、處理軟中斷、處理硬中斷和空閑狀態(tài)的時(shí)間占比。可以看出導(dǎo)致soft lockup的原因是中斷風(fēng)暴(100% hardirq),同時(shí)也可以看出最高頻的中斷是irq#129,具體如下所示。

    image

    通過(guò)cat /proc/interrupts | awk '{print($1 $NF);}' 命令查看接口發(fā)現(xiàn),最高頻的irq#129是nvme2中斷,具體如下所示。

    image

  • 案例二:軟中斷處理時(shí)間過(guò)長(zhǎng)。

    soft lockup期間CPU處理軟中斷的時(shí)間占比達(dá)到了100%(100% softirq),由此可以基本判斷,問(wèn)題是由fq_flush_timeout函數(shù)的執(zhí)行時(shí)間過(guò)長(zhǎng)導(dǎo)致的,接下來(lái)可以通過(guò)分析該函數(shù)的邏輯以進(jìn)一步排查問(wèn)題,具體如下所示。

    image