![저지연 IO 스케줄러](https://rvso.com/image/658742/%EC%A0%80%EC%A7%80%EC%97%B0%20IO%20%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC.png)
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-mq
I/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 장치에 이상적입니다.