메모리 절약 및 성능 향상을 위한 Linux ZRAM 재설계
요약
Google Chrome/Chromium 팀의 Sergey Senozhatsky가 메모리 최적화를 위해 ZRAM 패치 세트를 재작업했습니다. 이 개선은 읽기 및 쓰기 스트림을 분리하고, 전용 R/W 스트림과 CPU별 디압축 컨텍스트를 결합하여 메모리 사용량을 크게 절감합니다. 이는 Linux 커널의 성능 향상에 기여할 것으로 기대됩니다.
핵심 포인트
- ZRAM 패치 재작업으로 메모리 최적화 달성
- 읽기(Read) 및 쓰기(Write) 스트림 분리로 효율 증대
- 전용 R/W 스트림과 CPU별 디압축 컨텍스트 결합
- 일부 백엔드에서 상당한 메모리 절감 효과 기대
메모리 절약 및 성능 향상을 위한 Linux ZRAM 재설계

Google의 Chrome/Chromium 팀 소속 Sergey Senozhatsky가 오늘 메모리 사용 최적화를 돕기 위해 대대적으로 재작업된 ZRAM 패치 세트를 게시했습니다. 이로 인해 컨텍스트별/CPU별로
이 시리즈의 마지막 패치는 분리된 읽기(Read) 및 쓰기(Write) 스트림을 기반으로 하며, 보조 스트림(secondary streams) 처리 방식을 재작업했습니다. 보조 압축 스트림은 디바이스 잠금(device lock)에 의해 직렬화되는 재압축(recompression)에서만 사용되므로 단일 스레드입니다. 하지만 우리는 여전히 CPU별로 보조 스트림을 할당했습니다 (재압축된 객체의 동시 읽기(concurrent Reads)를 허용해야 했기 때문입니다). 이제 전용 R/W 스트림이 생겼으므로, 재압축을 위한 단일 압축 컨텍스트(singleton compression context)를 할당하면서도 여전히 CPU별 디압축 컨텍스트(per-CPU decompression contexts)를 가질 수 있습니다. 이는 일부 백엔드 및 구성(예: zstd, deflate, lz4hc)에서 상당한 양의 메모리를 절약해 줍니다.
이 패치들은 현재 Linux 커널 메일링 리스트에서 검토 중입니다.
컨텍스트별/CPU별 메모리 절감 외에도, ZRAM용 Zcomp 백엔드 코드를 별도의 읽기 및 쓰기 스트림으로 분할하는 것은 상당한 개선을 제공할 수 있는 능력을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기