通过子进程运行FIO时出现问题。
[当通过选项--bandwidth-log运行FIO时,通过子进程运行命令时,创建的文件(agg-read_bw.log)为空。FIO命令使用以下子进程调用来运行:
cmd_stat = subprocess.check_output(cmd, shell=True)
如果我通过命令提示符运行确切的字符串,则将正确生成并填充文件。在这两种情况下,FIO作业均成功完成。
这是在Ubuntu 18.04,python 2.7.17,FIO版本3.16上的。
编辑:在Python 3.6上尝试过,结果相同
以下是显示此行为的命令的示例:fio --filename = / dev / sda2 --readwrite = read --size = 1g --name = bw_test --bandwidth-log
使用--bandwidth-log
选项在默认为500毫秒的bwavgtime
指定的时间段内对I / O进行采样(奇怪的是,bwavgtime
是命令行选项,而--bandwidth-log
是每个作业选项)。如果您没有设置bwavgtime
,如果您的作业至少有半秒钟没有运行,那么到它退出时,将不会进行“带宽日志”采样,并且带宽日志文件将为空。