연구실 과제가 나와서 몇가지 실험중입니다.
write 성능을 비교하는 과제인데 서로 다른 두 스토리지의 I/O 성능을 비교하는 실험이에요
HDD : /dev/hdb
NAND : /dev/hdc
위의 두 파일을 그냥 open하고 write하면 ( 리눅스커널 2.6) 커널 내부에서 버퍼링을 하나요?
하드디스크 내부의 버퍼캐시는 hdparm 유틸리티를 통해 껐습니다만
비동기모드로 쓸때 커널에서 어느 정도의 최적화를 하는 것 같아서요..
답변 부탁드립니다~
write 성능을 비교하는 과제인데 서로 다른 두 스토리지의 I/O 성능을 비교하는 실험이에요
HDD : /dev/hdb
NAND : /dev/hdc
위의 두 파일을 그냥 open하고 write하면 ( 리눅스커널 2.6) 커널 내부에서 버퍼링을 하나요?
하드디스크 내부의 버퍼캐시는 hdparm 유틸리티를 통해 껐습니다만
비동기모드로 쓸때 커널에서 어느 정도의 최적화를 하는 것 같아서요..
답변 부탁드립니다~
댓글 2
-
원민수
2007.03.29 19:00
buffered I/O가 아닌 DMA로 측정을 하시는 걸 원하시는거 맞나요? 전 예전에 buffer를 사용할 때와 DMA를 사용할 때에 대한 성능 테스트를 해본적이 있습니다. 즉 DMA를 사용하실려면 open에서 O_DIRECT 쪽을 한번 봐보시면 될거 같습니다.(이미 알고 계신 걸 적은건 아닌지 모르겠네요. ^^) -
김강년
2007.03.30 06:24
아뇨 DMA모드로 하려는 건 아닙니다. 하드웨어의 성능자체를 비교하고 싶어서 디바이스 드라이버 이상의 계층에서의 모든 버퍼링을 없애고 비교하고 싶거든요
디바이스 파일 직접 open하고 write수행하는건 파일시스템 안거치기 위해서구요
write할때마다 하드디스크 혹은 낸드가 synchronous하게 작동해서 직접 데이터를 써줘야 됩니다. 그 시간을 재서 비교하고 싶어요
.