Linux

I/O 스케줄러

seungkyua@gmail.com 2014. 4. 5. 17:20
반응형

1. I/O 스케줄러의 종류

   - noop (No Optimization) : 1개의 sub queue 를 가지고 순서대로 처리

   - cfg (Complete Fair Queuing) : 64개의 sub queue 로 분배하여 각 프로세스마다 공평하게 처리

   - deadline(Deadline) : Read sub queue 와 Write sub Queue 를 가진다. 

   - anticipatory : deadline 기능에 다음에 올 요청을 예상하는 기능을 추가


2. 특정 디바이스 (sda) 에 대한 I/O 스케줄러 변경

# cat /sys/block/sda/queue/scheduler        (스케줄러 조회)

# echo "cfg" > /sys/block/sda/queue/scheduler       (스케줄러를 cfg 로 변경)


3. 시스템 전체 I/O 스케줄러 변경하려면 /boot/grub 아래의 grub 파일을 변경해야 한다.

    예) elevator=deadline 으로 지정


4. SAN 과 같이 외부 디스크 장치를 사용하는 경우에는 LUN 에 대해서 deadline 스케줄러가 cgf 보다 더 효과적이다.


5. ionice 를 활용한 프로세스 스케줄러 조정

# ionice -c 1 dd if=/dev/zero of=test bs=1M count=500 oflag=direct &


-c 1 : Real time

-c 2 : Best effort

-c 3 : Idle


/dev/zero : 바이트 코드 0 (NULL) 값

oflag=direct : 디스크 캐시를 사용하지 않음




반응형