728x90
반응형
우리는 리눅스 커널의 Disk I/O scheduling을 흔히 elevator 라고 부르는데,
noop, deadline, CFQ, Anticipatory I/O Scheduler 들은
이 elevator 가 사용할 수 있는 I/O Scheduling 방식들이다.
Anticipatory I/O Scheduler의경우 read_expire, write_expire 등의 파라미터 등을 이용하여 I/O 작업 및 expire 조건을설정하는 방식으로 사용할 수 있으며, 설정 방법은 비교적 간단하며, 아래와 같다.
set Anticipatory I/O Scheduler
/*현재 설정 확인*/
]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
/*Anticipatory 로 변경*/
]# echo "anticipatory" > /sys/block/sda/queue/scheduler
/*변경 내용 확인*/
]# cat /sys/block/sda/queue/scheduler
noop [anticipatory] deadline cfq
/*Anticipatory 패라미터 확인*/
]# ls /sys/block/sda/queue/scheduler/iosched
antic_expire est_time read_batch_expire read_expire write_batch_expire write_expire
/*read_expire 확인*/
]# cat /sys/block/sda/queue/scheduler/iosched/read_expire
124
/*read_expire 변경 및 확인*/
]# echo "50 " > /sys/block/sda/queue/scheduler/iosched/read_expire
]# cat /sys/block/sda/queue/scheduler/iosched/read_expire
52
하지만 쉽지많은 않은법!!
위의 내용을 보면 read_expire 를 50으로 설정 했으나, 실제 set 된 read_expire 는 52 가 나온다!?
왜 이럴까잉?! 물론 오타는 아니다!!
실제 설정되는 단순 숫자 값을 적용 하는 것이라 나름의 연산을 거쳐 적용되며,
해당 read_expire set 연산은 다음과 같다.
100*((seek time / read_expire) + 1)
seek time 을 어떻게 확인하는 지는 정확히 모르겠으나 위와 같은 수식을 계산해보면 read_expire 에
50을 set 한경우 52가 나오는 것을 알수가 있다.
-----------------------------------------------------------------------------------------------------
* read_expire Controls how long until a request becomes "expired". It also controls the interval between which expired requests are served, so set to 50, a request might take anywhere < 100ms to be serviced _if_ it is the next on the expired list. Obviously it won't make the disk go faster. The result basically equates to the timeslice a single reader gets in the presence of other IO. 100*((seek time / read_expire) + 1) is very roughly the % streaming read efficiency your disk should get with multiple readers.
내가 잘못이해한건지 모르겠는데;;
수식은 계산해보면
100((x+50)50) 이 되고, 이거슨 2(x+50) 이 되면 2x + 100 = 52 가 나와야 하는 데,
그럼 2x = -48 이 되고 x = -24, 근데 x == seek time ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
728x90
반응형
댓글