# Linux 디스크 스케쥴링

<table border="1" id="bkmrk-perplexity%EC%97%90%EC%84%9C-%EC%83%9D%EC%84%B1%ED%95%9C-ai%EC%9D%B4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8785%;"></col></colgroup><tbody><tr><td>[![image.png](http://igoni.kr/uploads/images/gallery/2026-01/scaled-1680-/XT2image.png)](http://igoni.kr/uploads/images/gallery/2026-01/XT2image.png)

</td></tr><tr><td class="align-right">perplexity에서 생성한 AI이미지</td></tr></tbody></table>

1. 디스크 스케쥴러 소개 <div><table style="width: 99.9991%; height: 306.042px;"><tbody><tr style="height: 46.6667px;"><th scope="col" style="width: 10.9426%; height: 46.6667px;">**스케쥴정보**</th><th scope="col" style="width: 52.4324%; height: 46.6667px;">**설명**</th><th scope="col" style="width: 36.4769%; height: 46.6667px;">**비고**</th></tr><tr style="height: 29.8785px;"><td style="width: 10.9426%; height: 29.8785px;">none</td><td style="width: 52.4324%; height: 29.8785px;">FIFO(선입선출) 스케쥴링</td><td style="width: 36.4769%; height: 29.8785px;">  
    </td></tr><tr style="height: 102.604px;"><td style="width: 10.9426%; height: 102.604px;">mq-deadline</td><td style="width: 52.4324%; height: 102.604px;">대기중인 I/O요청을 읽기 / 쓰기로 배치로 정렬 후 스케줄러에 도달하는 시점의 요청에 대해 처리
    
    읽기 작업은 쓰기 작업보다 우선(어플리케이션에서 읽기가 지연될 경우 차단될 가능성이 높음)
    
    </td><td style="width: 36.4769%; height: 102.604px;">대부분 적합하나, 쓰기 작업은 비동기식으로 사용</td></tr><tr style="height: 80.2257px;"><td style="width: 10.9426%; height: 80.2257px;">bfq</td><td style="width: 52.4324%; height: 80.2257px;">단일 어플리케이션이 모든 대역폭을 사용하지 않도록 설정, 스토리지는 항상 유휴상태인ㄱ덧처럼 반응,
    
    가장 낮은 대기 시간을 전달하는게 목표
    
    </td><td style="width: 36.4769%; height: 80.2257px;">대용량 파일을 복사하는데 적합하고, 시스템이 응답하지 않을 수 있음</td></tr><tr style="height: 46.6667px;"><td style="width: 10.9426%; height: 46.6667px;">kyber</td><td style="width: 52.4324%; height: 46.6667px;">모든 I/O요청 대기시간을 계산해서 각 대기시간 목표를 달성하도록 자체조정</td><td style="width: 36.4769%; height: 46.6667px;">NVMe, SSD는 IOPS가 높은 스토리지에 적합</td></tr></tbody></table>
    
    </div>
2. 스케쥴러 정보 확인 방법 (활성화된 스케쥴은 \[\]로 표시) ```shell
    $ cat /sys/block/sda/queue/scheduler
    noop [deadline] cfq
    ```
3. 스케쥴 변경 방법 (재부팅하면 기존설정값으로 복원됨) ```shell
    $ echo cfq > /sys/block/sda/queue/scheduler
    $ cat /sys/block/sda/queue/scheduler
    noop deadline [cfq]
    ```
4. 영구로 변경시 (Centos7이상) ```shell
    $ grubby --update-kernel=ALL --args="elevator=cfq"
    ```