오라클 같은 것을 보면 block device를 raw device에
bind해서 쓰는데, 왜 그런거죠?
그냥 raw가 더 빠르다고 알고 있어서 그런가 했는데
간단한 프로그램으로 read/write throughput을 측정해보니
write는 두배가까이 차이가 나긴 하는데 read는 block으로
하는게 20%가까이 빠르던데요. 흠..
커널의 블럭 디바이스 드라이버는 효율성을 높이기 위해서
I/O 요청을 스케줄링하여 처리합니다.
하지만 DBMS 와 같이 I/O 가 크리티컬한 요소가 되는 경우에는
이를 커널에 맡겨두지 않고 직접 DBMS 에서 처리하기 위해
raw device 를 사용하는 것으로 알고 있습니다.
DBMS 에서 직접 관리하기 위해서..
커널의 블럭 디바이스 드라이버는 효율성을 높이기 위해서
I/O 요청을 스케줄링하여 처리합니다.
하지만 DBMS 와 같이 I/O 가 크리티컬한 요소가 되는 경우에는
이를 커널에 맡겨두지 않고 직접 DBMS 에서 처리하기 위해
raw device 를 사용하는 것으로 알고 있습니다.
댓글 달기