我一直在使用紧凑型闪存的 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 项目提交一个错误。您可以在这里这样做:
具体来说有一个右侧的链接用于报告错误。