미리 읽기를 비활성화하려면 hdparm 또는 POSIX_FADV_RANDOM을 사용하십시오.

미리 읽기를 비활성화하려면 hdparm 또는 POSIX_FADV_RANDOM을 사용하십시오.

Linux 커널 문서에 따르면 미리 읽기를 비활성화하려면 POSIX_FADV_RANDOM을 권장하는 것 같습니다. 그러나 (sudo hdparm -A 0 /dev/sdb)를 사용하여 Readhead를 비활성화하면 read(2)가 512k마다 분할되어 별도의 호출로 작동하는 것으로 나타났습니다(이유는 모르겠지만 최대 섹터일 수도 있음). 요청에 따라).

그렇다면 실제로 미리 읽기를 비활성화하는 옵션은 무엇입니까? POSIX_FADV_RANDOM도 OS 캐시를 비활성화합니까, 아니면 POSIX_FADV_DONTNEED를 추가해야 합니까?

답변1

POSIX_FADV_RANDOM커널 파일 시스템 드라이버가 수행하는 미리 읽기를 비활성화합니다. 파일 시스템 계층에 필요한 것보다 더 많이 읽지 않도록 조언합니다. 미리 읽기는 파일 수준에서 수행됩니다. 파일 시스템 계층은 동일한 파일에서 추가 데이터를 가져올 수 있지만 POSIX_FADV_RANDOM.

hdparm -A 0디스크 자체에서 수행되는 미리 읽기를 비활성화합니다. 한 섹터를 읽을 때 내부 캐시에 다음 몇 개의 섹터를 저장해서는 안 된다는 점을 디스크에 조언합니다.

둘 다 미리 읽기를 비활성화하지만 시스템의 서로 다른 계층에서 사용됩니다.

POSIX_FADV_RANDOM프리페칭만 비활성화됩니다. POSIX_FADV_DONTNEED영역을 캐시하지 않으려면(또는 캐시에서 제거하려면) 영역을 로 설정하세요.

관련 정보