FUSE에서 prefetch 하는데 조언 부탁드립니다.
글쓴이: tyolee83 / 작성시간: 목, 2008/11/13 - 11:35오전
FUSE userlevel filesystem을 이용하여
read() 콜이 들어올때 다른 곳에서 파일을 읽어오도록 하고 있습니다.
성능 향상을 위해 prefetching을 하려고 합니다.
파일 1개를 대상으로, fb라고 GNU에서 나온 바이너리 읽는 프로그램을 대상으로 하려고 합니다.
일단 시퀀셜 리드를 대상으로 하려고 합니다.
어플리케이션이 읽는 속도와 파일을 읽어서 버퍼에 넣는 속도차가 생기기 때문에
prefetch하는데 이것저것 고려해야 할 것이 많을 것 같은데,
저는 원형 큐를 이용해서 하는 방법밖에 떠오르지가 않네요...
prefetching 하는데 좋은 아이디어 있으면 조언 부탁드립니다.
감사합니다.
Forums:
원형큐 쓰는 것도
원형큐 쓰는 것도 괜찮을 듯 하네요.
파일입출력에서 데이타의 이동 경로를 살펴보면
선반입(prefetching)은 HDD (Hard Disk Drive)와 파일시스템에서 이루어집니다.
HDD에서는 원형큐와 비슷한 알고리듬을 써서 버퍼를 관리하겠죠.
커널의 파일시스템에서는 버퍼 캐쉬를 사용합니다.
일단 원형큐로 구현했다가 필 받으면 버퍼 캐쉬로 갈아타는 것도 좋을 듯 합니다.
근데 커널의 파일시스템에서 이미 선반입이 이루어져서 FUSE에서 선반입을 한다고 하더라도
반응시간 측면에서 큰 성능 개선이 생길지 의문입니다.
댓글 달기