AWS Ubuntu 1604의 fio에서 디스크 병합을 활성화하는 방법은 무엇입니까?

AWS Ubuntu 1604의 fio에서 디스크 병합을 활성화하는 방법은 무엇입니까?

엔진을 Ubuntu 1604사용하여 VM에서 실행 중입니다 .fio-2.1.10libaioAWS

해당 IO 스케줄러는 " none"입니다. (아마도 " "를 사용할 것 같습니다 noop).

그리고 디스크는 nomerge입니다 0. 이는 병합이 활성화되었음을 의미합니다.

하지만, 실행할 때 fio다음이 있음을 알 수 있습니다.병합이 발생하지 않았습니다.(fio 결과 보기:) merge=0/0.

Amazon Linux 2016.09VM AWS(동일한 VM 유형 및 동일한 디스크 구성)에서 동일한 설정과 동일한 fio 명령을 실행했고 병합이 발생했습니다.

그렇다면 이 설정의 차이점이 무엇인지 말해주실 수 있나요 Ubuntu 1604? Amazon LinuxUbuntu 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(병합=0/0)입니다. iostat에서는 병합이 발생하지 않았다고 보고합니다.

답변1

장치가 다중 대기열에 있을 수 있으므로 실제로는 ioscheduler가 없습니다. 장치가 너무 빠르고 직접 요청을 병합할 시간이 없을 수도 있습니다. 비슷한 문제가 조사되고 있습니다https://lists.gt.net/xen/devel/394204#394204사용자는 완료 시간이 충분히 길 때만 병합이 발생한다는 것을 발견했습니다. 요청 대기 시간을 낮추는 것이 Ubuntu 설정입니까?

(우분투의 fio는 꽤 오래되었습니다)

관련 정보