我一直在使用緊湊型快閃記憶體的 Linux 系統上執行 sysbench 磁碟測試的連續測試。我在輸出中看到一些錯誤,如下所示。這些錯誤到底意味著什麼?這是否意味著某些磁碟讀取失敗?該部件本身是工業級部件,支援 SMART,且 SMART 報告沒有不可恢復的 ECC 故障。
我用來執行測試的命令是:
雖然真實;執行 sysbench --num-threads=16 --test=fileio --file-total-size=3500M --file-test-mode=rndrw 準備; sysbench --num-threads=16 --test=fileio --file-total-size=500M --file-test-mode=rndrw 運行;同步; sysbench --num-threads=16 --test=fileio --file-total-size=3500M --file-test-mode=rndrw 清理;完畢
範例輸出:
sysbench 0.4.12:多執行緒系統評估基準 128 個文件,每個 28000Kb,共 3500Mb 建立測試檔案... 致命:寫入檔案失敗!錯誤編號 = 28 (|||) sysbench 0.4.12:多執行緒系統評估基準 使用以下選項執行測試: 線程數:16 額外的文件開啟標誌:0 128 個文件,每個 3.9062Mb 檔案總大小 500Mb 塊大小 16Kb 隨機IO的隨機請求數:10000 組合隨機 IO 測驗的讀/寫比率:1.50 啟用定期 FSYNC,每 100 個請求呼叫 fsync()。 測試結束時呼叫 fsync(),啟用。 使用同步I/O模式 進行隨機讀/寫測試 話題開始了! 致命:讀取文件失敗!文件:127位置:2965504 errno = 0() 致命:讀取文件失敗!文件:127 位置:540672 errno = 0 () 致命:讀取文件失敗!文件:130 位置:655360 errno = 0 () 致命:讀取文件失敗!文件:129 位置:2441216 errno = 0 () 致命:讀取文件失敗!文件:129 位置:475136 errno = 0 () 致命:讀取文件失敗!文件:128位置:2588672 errno = 0() 致命:讀取文件失敗!文件:126位置:2588672 errno = 0() 致命:讀取文件失敗!文件:127位置:2899968 errno = 0() 致命:讀取文件失敗!文件:125 位置:3309568 errno = 0 (T|v|) 致命:讀取文件失敗!檔案:126個位置:49152 errno = 0 (|v|0R0||v|R0|u||Q0|T|Q0|T|v|) 致命:讀取文件失敗!文件:125位置:1097728 errno = 0() 致命:讀取文件失敗!文件:126 位置:606208 errno = 0 () 致命:寫入檔案失敗!文件:125位置:3440640 errno = 28() 致命:無法進行 wrisysbench 0.4.12:多執行緒系統評估基準測試
答案1
可能是 sysbench 中的錯誤。我在這裡找到了一個類似的標題:在 fileio 測試中使用 --file-extra-flags=direct 執行「準備」失敗。
摘抄
./sysbench --test=fileio --file-total-size=1G --file-test-mode=rndrw --max-time=18000 --max-requests=0 --num-threads=4 --rand-init=on --file-num=2 --file-fsync-freq=0 --file-block-size=16384 --report-interval=10 --file-extra-flags=direct prepare
sysbench 0.5: multi-threaded system evaluation benchmark
2 files, 524288Kb each, 1024Mb total
Creating files for the test...
Extra file open flags: 3
Creating file test_file.0
FATAL: Failed to write file! errno = 9 (Bad file descriptor)
我會向 SysBench 專案提交一個錯誤。您可以在這裡這樣做:
具體來說有一個側面(右側)的連結用於報告錯誤。