我试图理解旋转硬盘上的顺序磁盘写入性能。我正在使用直接和同步 io 来绕过页面缓存。对于小块大小 (4KB),fio 报告的 iops 约为 11。所以这意味着 fio 发出 11 个write
系统调用,每个调用大小为 4k(所以总带宽 = 11*4k = 44kb/s)。但是当我使用 iostat 监控磁盘时,它告诉我磁盘看到 ~60iops (w/s),平均请求大小为 4k (wareq-sz),总带宽为 60*4k ~ 240kb/s ( wkB/s)。所以我的问题如下
为什么即使在进行顺序写入时我的吞吐量也如此之低?(小块大小不应该真的很重要,因为磁盘头不应该移动太多)
谁导致了 iostat 中看到的 3 倍写入放大。
我附上了 fio 作业文件以及 iostat 输出
工作文件
[global]
filename=/mnt/500gbhdd/fio_file
runtime=30s
ioengine=sync
time_based
direct=1
sync=1
rw=write
size=5G
wait_for_previous
[4k]
bs=4k