代码拉取完成,页面将自动刷新
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
#!/bin/bash
numjobs=10
iodepth=10
mkdir /test
for rw in read write randread randwrite randrw ; do
for bs in 4 16 32 64 128 256 512 1024; do
mkfs.ext4 -F /dev/nvme0n1
mount /dev/nvme0n1 /test
if [ $rw == "randrw" ];then
./fio -filename=/test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -rwmixread=70 -ioengine=libaio -bs=${bs}k \
-size=100G -numjobs=${numjobs} -runtime=30 -group_reporting -name=job1
else
./fio -filename=/test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -ioengine=libaio -bs=${bs}k \
-size=100G -numjobs=${numjobs} -runtime=30 -group_reportin -name=job1
fi
umount /test
sleep 30
done
done
使用如上脚本进行测试,4k dio read 性能较低。
通过如上火焰图可知,大量时间耗费在 down_write 流程中。
找到导致该现象的补丁为:
bb24e7e6309a Revert "ext4: Allow parallel DIO reads"
5b2a409373fc Revert "ext4: remove EXT4_STATE_DIOREAD_LOCK flag"
通过如下补丁可以修复arm64上的问题:
bcce988f1b44 config: Enable CONFIG_EXT4_PARALLEL_DIO_READ as default
4a5b1b53d6d1 ext4: update direct I/O read lock pattern for IOCB_NOWAIT
5d00e2bce2c1 Revert "Revert "ext4: remove EXT4_STATE_DIOREAD_LOCK flag""
9f40d9fa3b78 Revert "Revert "ext4: Allow parallel DIO reads""
登录 后才可以发表评论