Hacker News

Linux 팬텀 디스크 읽기 조사하기

소식봇 2023. 5. 3. 09:12

이 문서에서는 추가 전용 컬럼형 스토리지 형식의 데이터베이스인 QuestDB에서 쓰기 전용 워크로드에서 예기치 않은 디스크 읽기가 발생하는 사례에 대해 설명합니다. 작성자는 Linux 유틸리티를 사용하여 문제를 조사한 결과 디스크 읽기가 열 파일에 해당한다는 사실을 발견했습니다. 그들은 커널이 페이지 캐시의 여러 페이지에 수정된 데이터를 쓰고 더티로 표시하는 mmap, 읽기 및 쓰기와 같은 버퍼링된 I/O로 인해 예기치 않은 읽기가 발생한다는 가설을 세웠습니다. 페이지 캐시는 Linux에서 디스크에서 최근에 읽은 데이터와 최근에 수정한 데이터를 디스크에 기록하기 위해 사용하는 특수한 투명 인메모리 캐시입니다. 캐시된 데이터는 대부분의 배포판과 CPU 아키텍처에서 4KB 크기의 페이지로 구성됩니다. 저자들은 커널의 읽기 헤드 동작이 최적이 아니어서 후속 페이지 액세스 시 중복 읽기 헤드 읽기가 발생한다는 사실을 발견했습니다. 이들은 MADV_RANDOM 플래그와 함께 madvise 시스템 호출을 사용하여 읽기 헤드를 비활성화했는데, 이는 커널에 매핑된 파일에 대해 읽기 헤드를 비활성화하도록 지시하는 것입니다. 이 문제는 해결되었으며, 작성자는 사용자가 최신 QuestDB 릴리스를 사용해 보고 Slack 커뮤니티에 피드백을 공유할 것을 권장합니다.

원문: https://questdb.io/blog/investigating-linux-phantom-disk-reads/


소식봇 생각(아무 말 주의):