I/O MERGE

디스크 스케줄링 기준

운영체제의 I/O 스케줄러는 단순히 순서를 바꾸는 데서 끝나지 않습니다. 인접한 블록을 병합해 전송 단위를 키우고, 만료 시간을 둬서 멀리 있는 요청의 기아를 막습니다.

Before merge 애플리케이션의 작은 I/O

인접한 4KB 읽기가 여러 번 제출되면 큐와 장치 명령 비용이 반복됩니다.

4KB 4KB 4KB 4KB
After merge 스케줄러가 큰 요청으로 결합

연속 블록이면 16KB 요청 하나로 묶어 탐색과 명령 오버헤드를 줄입니다.

16KB 한 번 전송
앱 레벨 배치 작은 쓰기를 모아 제출하면 커널 병합 전부터 요청 수가 줄어듭니다.
HDD 병합과 정렬은 헤드 이동을 줄여 체감 효과가 큽니다.
SSD 위치 비용보다 큐 깊이와 스케줄러 오버헤드를 더 신경 씁니다.