JBD2作為ext4檔案系統的核心線程,在使用過程中常會遇到影子狀態(BH_Shadow),影響系統效能。為解決使用JBD2過程中出現的異常,Alibaba Cloud Linux 2(核心版本4.19.81-17.al7
開始)和Alibaba Cloud Linux 3對JBD2進行了最佳化。本文主要介紹最佳化JBD2的介面。
背景資訊
ext4作為最常用的記錄檔系統之一,更新日誌(journal)的核心線程為JBD2,JBD2對ext4檔案系統而言,是一個全域資源。您在使用過程中,可能出現JBD2核心線程對緩衝嘗試擷取存取權限時,發生快取頁面處於影子狀態(BH_Shadow),從而引發JBD2持續等待快取頁面回寫到磁碟的時間過長的情況,該情況會影響系統效能。因此Alibaba Cloud Linux針對特定情境進行了最佳化,增加了核心介面force_copy
,允許使用者啟用最佳化功能,以強制進行快取頁面拷貝,從而減少在快取頁面處於影子狀態的等待。同時,為了輔助分析檔案系統相關的服務品質(QoS)中的問題,Alibaba Cloud Linux增加了一個JBD2的相關資訊統計介面stats
。
介面說明
介面 | 描述 |
force_copy | 介面位於/proc/fs/jbd2/<device>-8/force_copy,其中變數 重要 設定該介面後會額外消耗一定的記憶體。 |
stats | 介面位於/proc/fs/jbd2/<device>-8/stats。用於輔助確認檔案系統的QoS中的問題是否因JBD2引發。 |
介面樣本
force_copy
和stats
介面樣本如下。
force_copy
介面預設為關閉狀態。將介面設定為1表示調用該介面;設定為0表示關閉該介面。echo 1 > /proc/fs/jbd2/nvme0n1-8/force_copy # 調用介面
使用以下命令查看
stats
介面。cat /proc/fs/jbd2/nvme0n1-8/stats
返回結果如下。
337 336 65536 0 14837 1701504 16 0 20058 5 33082732 605 942 1000 1000
返回結果中,各域說明如下。
域
描述
第1個域
事務ID。
第2個域
請求的事務數。
第3個域
最大事務緩衝。
第4個域
事務等待時間。
第5個域
事務請求延遲。
第6個域
事務已耗用時間。
第7個域
事務鎖住時間。
第8個域
事務重新整理時間。
第9個域
事務logging時間。
第10個域
平均提交時間。
第11個域
事務包含的原子操作handle個數。
第12個域
事務包含的塊數。
第13個域
事務已記錄的塊數。
第14個域
HZ(核心配置中的時間常量)。
第15個域
HZ轉化為ms。