디스크 I/O가 메모리 캐싱을 능가한다? 놀라운 벤치마크 결과

2025-09-05

일반적인 상식으로는 메모리 접근이 디스크 I/O보다 훨씬 빠르며, 메모리 캐싱이 필수적이라고 생각합니다. 이 글은 정교한 벤치마크 테스트(대용량 데이터셋 내 10의 개수 세기)를 통해 이러한 상식에 도전합니다. 오래된 서버를 사용하고 코드 최적화(루프 언롤링 및 벡터화), 그리고 사용자 지정 io_uring 엔진을 통해 저자는 특정 조건 하에서 디스크 직접 읽기가 메모리 캐싱보다 더 빠르다는 것을 보여줍니다. 핵심은 디스크가 메모리보다 빠른 것이 아니라, 기존 메모리 접근 방식(mmap)이 상당한 지연 시간을 유발한다는 점입니다. 사용자 지정 io_uring 엔진은 디스크의 높은 대역폭과 파이프라이닝을 활용하여 지연 시간을 감춥니다. 이 글은 최신 아키텍처에서 최대 성능을 얻으려면 알고리즘과 데이터 접근 방식을 하드웨어 특성에 맞춰야 함을 강조하며, 미래 하드웨어 트렌드에 대한 전망도 제시합니다.

더 보기
하드웨어 메모리 캐싱

무어의 법칙의 종말? 기존 소프트웨어 성능의 병목 현상

2025-09-02

지난 20년 동안 하드웨어의 특정 측면은 빠르게 발전했지만(예: 코어 수, 대역폭, 벡터 유닛), 클럭당 명령어 수, IPC, 대기 시간은 정체되었습니다. "메모리는 디스크보다 빠르다"와 같은 기존의 경험적 규칙은 더 이상 적용되지 않습니다. 이 기사에서는 기존 소프트웨어(단일 스레드, 비 벡터화)의 성능 향상이 이러한 정체된 지표로 제한되어 캐시 미스 비용이 급증하고 있다고 주장합니다. 저자는 끊임없이 발전하는 하드웨어 성능을 최대한 활용하려면 소프트웨어 작성 방식을 재고해야 한다고 제안합니다.

더 보기
기술