Block scheduler

디스크 스케줄링의 목적은 장치가 느린 이유에 따라 달라진다

HDD는 헤드 이동과 회전 지연을 줄이는 정렬이 중요하고, SSD와 NVMe는 큐 깊이와 컨트롤러 병렬성이 더 중요하다.

HDD

물리적 이동 비용

FCFS는 공정하지만 탐색 거리가 커질 수 있고, SCAN/LOOK 계열은 헤드 방향을 유지해 평균 seek를 줄인다.

SSD/NVMe

플래시 변환 계층과 병렬 큐

회전 지연이 없으므로 과한 재정렬보다 요청 병합, 큐 관리, 장치 내부 스케줄러와의 충돌 방지가 중요하다.

mq-deadline

요청 병합과 deadline을 조합해 굶주림을 줄이며, SATA SSD나 일반 서버의 균형 선택지로 자주 쓰인다.

bfq

대화형 데스크톱처럼 프로세스별 응답성을 중시할 때 유리하지만 처리량 중심 서버에는 비용이 될 수 있다.

none

NVMe처럼 장치 자체 큐가 강한 경우 커널 재정렬을 줄이고 하드웨어 큐에 직접 맡기는 편이 낫다.