Data Domain:過多的 BoostFS READDIR 作業導致高 CPU 使用率
Summary: 即使產生大量 BoostFS READDIR/OSTREADDIRPLUS 要求,即使備份、複製或應用程式工作負載較低,Data Domain 系統的 CPU 使用率仍可能持續偏高。 歷史調查表明,針對 BoostFS 掛載點運行的自動索引、掃描、監控和文件系統遍歷進程會顯著提高 DDFS 和系統 CPU 利用率,從而導致平均負載升高和性能下降。
Symptoms
CPU 利用率始終保持高水準,通常超過 80%,即使在低輸送量和最少活動流期間也是如此。
在 SAR 統計資料中觀察到的系統 (%system) CPU 使用率提升。
與備份或複製工作負載無關的平均系統高負載。
DDFS 程序消耗的 CPU 資源遠比預期多。
性能分析顯示 READDIRPLUS 相關代碼路徑中存在大量活動。
大量的 OSTREADDIRPLUS 或 ddp_readdir 在自動支援資料中觀察到的操作。
備份、還原或檔案存取作業可能會比預期慢。
增加活動 TCP 連接計數和可能的連接拒絕警報。
頻繁 "5006-end of directory" 可能會在 BoostFS 或 DDFS 記錄中觀察到訊息。
一 dd_guts 調度程式線程可能顯示為大量使用,而其他調度程式線程保持相對空閒。
NFS RPC 層統計資料可能會顯示已提升 data_wait 和 svc_func 值
Cause
分析表明,過度 READDIR 和 READDIRPLUS 源自 BoostFS 掛載檔案系統的作業會提高 CPU 使用率。
歷史調查顯示,自動化索引、安全性掃描、監控公用程式和檔案系統遍歷程序會產生大量的目錄列舉要求,導致 DDFS 和核心 CPU 使用率增加,即使備份工作負荷仍然相對較低。
過量的常見來源 READDIR 活動包括:
mlocate/updatedb 索引程序掃描 BoostFS 掛載點。
安全和防病毒掃描應用程式。
監控和執行狀況檢查工具輪詢掛載的檔案系統。
頻繁的檔案系統列舉活動,例如遞迴目錄清單和統計資訊操作。
使用 BoostFS 或 SDK 介面,可重複遍歷大型目錄結構的應用程式。
執行連續檔案系統探索或清查收集的自動化指令檔。
這些活動可產生數百萬 READDIR 每天的操作,在 DDFS 和基礎文件系統中產生大量的處理開銷。
Resolution
檢閱具有 BoostFS 掛載的系統,以瞭解執行頻繁目錄列舉、索引、監控或掃描活動的應用程式。
建議的動作包括:
識別產生過多 READDIR 針對 BoostFS 掛接的檔案系統的活動。
排除 BoostFS 固定點自 mlocate/updatedb 通過更新 PRUNEFS 配置進行索引。
檢閱並限制針對 BoostFS 掛接不必要的防毒掃描、安全性掃描、監控工具、執行狀況檢查程序,以及檔案系統輪詢活動。
盡可能減少或消除頻繁的遞歸目錄遍曆操作。
顯示器 OSTREADDIRPLUS、 ddp_readdir、CPU 利用率和實施更改后的負載平均值。
請遵循 Data Domain 和 BoostFS 的最佳實務,防止掃描器和索引應用程式持續穿過掛接的備份檔案系統。
根據歷程調查顯示,將 BoostFS 固定點從自動化中排除後,CPU 使用率大幅降低 cron 執行索引和掃描活動的作業。
此行為表示 READDIR 這些程序產生的活動可能是提高 DDFS CPU 使用率的重要原因。
此外,頻繁 "5006-end of directory" 消息可能表示重複的目錄讀取操作。這些訊息的數量可當作 READDIR 針對 Data Domain 系統發生的活動。在 BoostFS 掛載的檔案系統上的讀取操作通常比寫入操作更昂貴,因此避免對掛載的備份命名空間進行不必要的掃描或遍歷非常重要。
勾選 cron BoostFS 用戶端上的工作:
ls -l /etc/cron.daily