저지연 IO 스케줄러

저지연 IO 스케줄러

Ubuntu 클라우드 기반 이미지 14.04-1 LTS 버전을 실행하는 일부 가상 머신이 있습니다. VM에서 다양한 IO 스케줄러의 IO 성능을 확인하고 싶어서 /sys/block/<drive>/queue/scheduler게스트 OS로 가서 IO 스케줄러를 변경했습니다. 일반적으로 선택하려면 cfq, deadline, 또는 이 있어야 합니다 noop. 하지만 내가 본 것은 none. Canonical이 클라우드 기반 이미지에서 I/O 스케줄러를 제거했다는 뜻인가요? 아니면 none여기의 스케줄러가 이름이 바뀐 noop스케줄러라는 뜻인가요? 시스템에 I/O 스케줄러가 없으면 어떻게 되나요? 모든 io 요청이 FIFO 순서로 호스트에 직접 전송되었습니까?

밝혀주셔서 감사합니다!

답변1

에서이 데비안 위키:

저지연 IO 스케줄러

(기존 I/O 스케줄러를 우회하고 blk-mq대신 모듈을 사용하는 SATA 대신 NVMe 프로토콜을 사용하는 SSD에는 이 단계가 필요하지 않습니다.)

기본 I/O 스케줄러는 SSD에 필요하지 않은 HDD 검색을 최소화하기 위해 데이터를 대기열에 넣습니다. 따라서 "deadline"대량 트랜잭션으로 인해 소규모 트랜잭션이 느려지지 않도록 하는 스케줄러를 사용하십시오 sysfsutils.

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

(SSD에 맞게 sdX 조정) 재부팅 또는

echo deadline > /sys/block/sdX/queue/scheduler

따라서 대답은 다음 none과 같습니다. 는 의 별칭이 아닙니다 noop. none"스케줄러가 사용되지 않음"을 의미합니다.

답변2

none커널 >= 3.13에서는 더 이상 별칭이 아닌 것 같습니다 noop. 다음과 같은 경우에 표시됩니다.blk-mqI/O 프레임워크사용 중입니다. 이는 blk-mq(현재) 선택할 스케줄러가 전혀 없기 때문에 기존 스케줄러를 완전히 우회한다는 의미입니다 .

이전 커널에서는 none실제로 noop. 보다여기상세 사항은.

답변3

None은 noop의 별칭이 아닙니다.

사용 중인 스케줄러가 없으므로 없음이 표시됩니다. SATA 대신 NVMe 프로토콜을 사용하는 SSD는 기존 I/O 스케줄러를 우회합니다.

답변4

https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

none(Multiqueue) 다중 대기열 무작동 I/O 스케줄러입니다. 요청을 재정렬하지 않고 오버헤드를 최소화합니다. NVME와 같은 빠른 임의 I/O 장치에 이상적입니다.

관련 정보