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

檢測文件系統和塊層的IO hang

IO hang是指在系統運行過程中,因某些IO耗時過長而引起的系統不穩定甚至宕機。為了準確檢測出IO hang,Alibaba Cloud Linux 2和Alibaba Cloud Linux 3擴展核心數據結構,增加了在較小的系統開銷下,快速定位并檢測IO hang的功能。本文主要介紹實現該功能的接口以及接口操作示例。

接口說明

接口

描述

/sys/block/<device>/queue/hang_threshold

該接口能夠查看和修改用于檢測IO hang的閾值,單位為ms,默認值為5000。

/sys/block/<device>/hang

該接口能夠輸出對應設備上超過IO hang閾值的讀寫IO個數。

/sys/kernel/debug/block/<device>/rq_hang

該接口能夠獲取IO hang的詳細信息。

/proc/<pid>/wait_res

該接口能夠獲取進程正在等待的資源信息。

/proc/<pid>/task/<tid>/wait_res

該接口能夠獲取線程正在等待的資源信息。

以上接口中變量說明如下。

變量名

說明

<device>

塊存儲設備名。

<pid>

進程ID。

<tid>

線程ID。

示例一

您可以根據需求調用接口/sys/block/<device>/queue/hang_threshold修改用于檢測IO hang的閾值。本示例中將默認閾值5000 ms修改為10000 ms。

  1. 將磁盤vdb下的用于檢測IO hang的閾值修改為10000 ms。

    echo 10000 > /sys/block/vdb/queue/hang_threshold
  2. 查看修改結果。

    cat /sys/block/vdb/queue/hang_threshold

    返回結果示例。

    10000

示例二

您可以調用接口/sys/block/<device>/hang查詢磁盤上產生IO hang的讀寫IO個數。本示例查詢的磁盤為vdb

查詢命令如下。

cat /sys/block/vdb/hang

返回結果示例。

0        1     # 左邊參數表示產生IO hang的讀IO的個數,右邊參數表示產生IO hang的寫IO的個數

示例三

您可以調用接口/sys/kernel/debug/block/<device>/rq_hang獲取產生IO hang的詳細信息。本示例中的磁盤為vdb

查詢命令如下。

cat /sys/kernel/debug/block/vdb/rq_hang

返回結果示例如下。

ffff9e50162fc600 {.op=WRITE, .cmd_flags=SYNC, .rq_flags=STARTED|ELVPRIV|IO_STAT|STATS, .state=in_flight, .tag=118, .internal_tag=67, .start_time_ns=1260981417094, .io_start_time_ns=1260981436160, .current_time=1268458297417, .bio = ffff9e4907c31c00, .bio_pages = { ffffc85960686740 }, .bio = ffff9e4907c31500, .bio_pages = { ffffc85960639000 }, .bio = ffff9e4907c30300, .bio_pages = { ffffc85960651700 }, .bio = ffff9e4907c31900, .bio_pages = { ffffc85960608b00 }}

上述示例顯示了IO的詳細信息,從信息中獲取到IO請求開始時間io_start_time_ns已被賦值。表明該IO請求未被及時處理,從而導致IO耗時過長。

示例四

您可以調用接口/proc/<pid>/wait_res獲取進程正在等待的資源信息。本示例所查詢的進程ID為577

查詢命令如下。

cat /proc/577/wait_res

返回結果示例。

1 0000000000000000 4310058496 4310061448    #示例值依次對應Field 1 Field 2 Field 3 Field 4

返回結果示例中參數說明如下。

參數

說明

Field 1

等待的資源類型。1表示文件系統中的緩存頁(page),2表示塊層bio。

Field 2

等待的資源(page/bio)地址。

Field 3

等待資源開始時間。

Field 4

讀取該文件的當前時間,與Field 3的差值即為在該資源上等待的耗時。