요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===================
Switching Scheduler
===================
Each io queue has a set of io scheduler tunables associated with it. These
tunables control how the io scheduler works. You can find these entries
in::
/sys/block/<device>/queue/iosched
assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
you can do so by typing::
# mount none /sys -t sysfs
It is possible to change the IO scheduler for a given block device on
the fly to select one of mq-deadline, none, bfq, or kyber schedulers -
which can improve that device's throughput.
To set a specific scheduler, simply do this::
echo SCHEDNAME > /sys/block/DEV/queue/scheduler
where SCHEDNAME is the name of a defined IO scheduler, and DEV is the
device name (hda, hdb, sga, or whatever you happen to have).
The list of defined schedulers can be found by simply doing
a "cat /sys/block/DEV/queue/scheduler" - the list of valid names
will be displayed, with the currently selected scheduler in brackets::
# cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
# echo none >/sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[none] mq-deadline kyber bfq
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
I/O scheduler tunable과 sysfs
1-14각 I/O queue에는 연결된 I/O scheduler tunable 집합이 있습니다. 이 tunable은 I/O scheduler의 동작을 제어하며 다음 위치에서 찾을 수 있습니다.
/sys/block/<device>/queue/iosched
이는 sysfs가 `/sys`에 mount되어 있다고 가정합니다. sysfs가 mount되어 있지 않다면 다음 명령으로 mount할 수 있습니다.
# mount none /sys -t sysfs
실행 중 scheduler 전환
15-25주어진 block device의 I/O scheduler를 실행 중에 `mq-deadline`, `none`, `bfq`, `kyber` 중 하나로 바꿀 수 있으며, 이를 통해 해당 device의 throughput이 개선될 수 있습니다.
특정 scheduler를 설정하려면 다음과 같이 실행합니다.
echo SCHEDNAME > /sys/block/DEV/queue/scheduler
여기서 `SCHEDNAME`은 정의된 I/O scheduler 이름이고 `DEV`는 device 이름입니다. 예를 들어 `hda`, `hdb`, `sga` 또는 실제 system에 있는 다른 이름을 사용합니다.
Scheduler 목록과 현재 선택 확인
26-35정의된 scheduler 목록은 `cat /sys/block/DEV/queue/scheduler`를 실행해 확인합니다. 유효한 이름 전체가 표시되고 현재 선택한 scheduler는 대괄호 안에 나타납니다.
# cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none
# echo none >/sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[none] mq-deadline kyber bfq
요약과 해설
switching-sched.rst:1-35Linux는 block device마다 scheduler를 독립적으로 선택할 수 있습니다. 사용 가능한 scheduler와 현재 선택은 `/sys/block/DEV/queue/scheduler`에서 확인하고, 새 이름을 같은 file에 쓰면 즉시 전환됩니다.
대괄호로 감싼 이름이 현재 scheduler입니다. device와 workload에 맞춰 `mq-deadline`, `kyber`, `bfq`, `none`을 바꾸면 throughput과 latency 특성을 조정할 수 있습니다.