如何在 AWS Ubuntu 1604 中的 fio 中启用磁盘合并?

如何在 AWS Ubuntu 1604 中的 fio 中启用磁盘合并?

我正在上的 VM 上Ubuntu 1604使用fio-2.1.10引擎运行。libaioAWS

它的IO调度器是“ none”。 (我猜它会使用“ noop”)。

并且,磁盘的nomerge0,这意味着合并已启用。

,运行时fio,我看到有没有合并发生(参见 fio 结果:)merge=0/0

Amazon Linux 2016.09我在on上执行了相同的设置和相同的 fio 命令AWS(相同的 VM 类型和相同的磁盘配置),合并确实发生了。

那么你能告诉我这个设置的区别在哪里吗Ubuntu 1604Amazon Linux如何在 Ubuntu VM 上启用此合并?

root@ip-10-0-96-236:~# cat /sys/block/xvdb/queue/nomerges
0

root@ip-10-0-96-236:~# cat /sys/block/xvdb/queue/scheduler
none


root@ip-10-0-96-236:/mnt# /home/ubuntu/fio-2.1.10/fio --name=read --bs=4k --ioengine=libaio --iodepth=128 --size=16G --direct=1 --runtime=12000 --numjobs=8 --rw=read --group_reporting
read: (g=0): rw=read, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=128
...
fio-2.1.10
Starting 8 processes
... ...
... ...

Disk stats (read/write):
  xvdb: ios=1240654/0, merge=0/0, ticks=1842300/0, in_queue=1844664, util=99.98%

注意:参见上面的日志,合并为0(merge=0/0)。 iostat 还报告没有发生合并。

答案1

该设备可能是多队列的,因此它实际上没有 ioscheduler。可能是设备速度太快,直接请求没有时间合并。有一个类似的问题正在调查https://lists.gt.net/xen/devel/394204#394204用户发现只有当完成时间足够长时才会发生合并。是否是 Ubuntu 设置使您的请求延迟较低?

(请注意,Ubuntu 上的 fio 相当旧)

相关内容