【发布时间】:2020-05-19 17:21:55
【问题描述】:
我在通过子进程运行 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
【问题讨论】:
-
当您手动运行和通过 python 运行时,了解您的作业运行需要多长时间会有所帮助。如果由于某种原因缓存失效没有成功(也许你已经安装了
/dev/sda2的文件系统锁定页面,在这种情况下请小心 - 对包含数据的块设备进行 fio 测试,你不能承担被破坏是有风险的,不推荐作为一次失误,数据是不可挽回的)你可能会发现自己正在执行内核缓存满足的读取操作,并且这些操作可以非常快速完成...... -
您好,下面的回答是否说明了您的情况?如果可以,你能接受吗?谢谢!
标签: python-2.7 subprocess