【案例分享】queue.bin文件異常分析
一、故障描述
接到客戶通知,一臺SuSE11SP4主機的/dev/目錄空間占用率很大,通過du -sh觀察/dev占用率持續(xù)增長到4G左右,需排查問題及原因。
二、故障分析
1. 收集信息
▲df -h 輸出

▲du -sh /dev/.udev/*輸出
發(fā)現(xiàn)/dev/.udev/queue.bin文件很大且在不斷增長。

▲lsof queue.bin的輸出

▲dmesg及udev規(guī)則文件輸出
報錯意思為磁盤驅(qū)動器檢測到光盤托盤已經(jīng)打開,但是沒有光盤在其中,此信息與客戶溝通后確認光驅(qū)確實沒有光盤。Udev的規(guī)則文件全部檢查后未發(fā)現(xiàn)異常。

▲ps -ef | grep sr0輸出

2.排查
▲queue.bin
??/dev/.udev/queue.bin是一個與udev(設(shè)備管理)相關(guān)的文件,用于存儲設(shè)備事件隊列。如果某個進程引起了該文件的暴漲,可能是由于該進程不斷產(chǎn)生大量的設(shè)備事件,導致隊列不斷增長。
▲hal-addon-storage
?由于/dev/sr0被使用o_excl參數(shù)鎖定,“無法進行輪詢”這個錯誤信息,表示設(shè)備/dev/sr0(通常是光驅(qū))當前被另一個進程以獨占訪問的方式鎖定,因此無法進行輪詢檢測。
▲3. 分析
通過以上排查及查閱相關(guān)資料可知,由于/dev/.udev/queue.bin是一個與udev(設(shè)備管理)相關(guān)的文件,用于存儲設(shè)備事件隊列。又根據(jù)hal-addon-storage進程信息,發(fā)現(xiàn)/dev/sr0被使用o_excl參數(shù)鎖定,無法進行輪詢;設(shè)備/dev/sr0(通常是光驅(qū))當前被另一個進程以獨占訪問的方式鎖定,因此無法進行輪詢檢測,造成queue.bin文件不斷產(chǎn)生設(shè)備事件,導致隊列不斷增長,最終使queue.bin文件大小異常。
三、故障處理
√.確保沒有其他程序正在使用光驅(qū)或與光驅(qū)相關(guān)的功能,關(guān)閉可能正在使用光驅(qū)的應(yīng)用程序。
√.檢查是否有其他進程或服務(wù)正在訪問光驅(qū),使用系統(tǒng)監(jiān)控工具或命令行來查找并終止訪問光驅(qū)的進程。
√.嘗試重新啟動計算機,可以釋放對設(shè)備的鎖定并解決問題。
√.通過ps -ef |grep hal-addon-storage得出進程的Pid號,然后通過kill PID后解決。
--END--