目前,由于IO性能的原因,我正在执行各种开发任务,这些任务在我的当前系统上执行得很慢。
是否有一种方法在执行IO消耗任务时记录磁盘操作,包括性能信息(写/秒、读/秒等),然后在新系统上重放它们以查看性能在哪里(而不必在同一组数据上重新运行相同的命令)?
在这种情况下,blktrace,blkparse或fio会帮助我吗?
例如:假设在我的系统上,我想对
find -name "*.php" | xargs grep -r "test_string"在包含50 000个文件的文件夹中(当然,在多个级别上)
我想捕获所有的磁盘操作,包括统计数据,然后在另一个没有50000文件文件夹的系统上重放它们。基本上,只是模拟操作和检查它们是否做得更快。
我尝试通过以下方法捕获磁盘示例
blktrace -d /dev/sda -o myfile.blk但我不知道我怎么能试着和fio重播。
这个是可能的吗?
谢谢
发布于 2012-03-15 19:12:01
不是的。如果要查看同一任务在不同硬件上所需的时间,则需要在新硬件上运行相同的任务。
如果您想要模拟任务,那么除了尝试读取/写入相同的磁盘扇区之外,您还需要想出一种方法来模拟任务在读取数据后对数据所做的任何工作。
发布于 2018-07-31 21:37:03
要使用fio回放blktrace文件,首先需要将其转换为blkparse二进制数据文件--更多信息请参见菲奥氏read_iolog选项 (replay_redirect也可能有用)。
注意:使用fio重新运行包含写的重放会破坏文件/磁盘中被重放的数据,所以要小心!
https://unix.stackexchange.com/questions/34235
复制相似问题