개발자는 zswap에 대한 두 가지 최적화 패치를 제출했으며 특정 테스트에서 페이지 읽기 대기 시간이 크게 감소했습니다.

📅 2026-10-07

요약:

Linux 개발자 Osama Arif는 zswap이 스왑 페이지를 로드할 때 요청 경합을 줄이는 것을 목표로 커널 메일링 리스트에 두 개의 패치를 제출했습니다. Zswap은 Linux의 압축 캐시 메커니즘입니다. 교체할 페이지를 압축하여 임시로 메모리에 저장합니다. 압축 캐시에서 페이지를 읽을 수 있으면 스왑 장치에 대한 액세스가 줄어들 수 있으며 이는 메모리가 부족할 때 디스크 I/O 압력을 완화하는 데 특히 유용합니다.

image.webp

문제는 기존 코드가 압축된 쓰기 및 압축된 읽기가 비동기 CPU별 압축 요청 및 뮤텍스 잠금을 공유하도록 한다는 것입니다. 잠금 기간 동안 우선순위가 낮은 쓰기 작업이 선점되면 우선순위가 높은 읽기 작업도 강제로 대기할 수 있습니다. 첫 번째 패치는 각각 압축 및 압축 해제를 위한 요청, 대기 개체 및 뮤텍스 잠금을 설정하므로 쓰기 작업으로 인해 읽기가 더 이상 차단되지 않습니다. 두 번째 패치는 동기식 소프트웨어 압축 알고리즘이 스택상의 요청을 사용하여 zswap 잠금을 우회할 수 있도록 허용합니다. 비동기 처리 또는 추가 요청 컨텍스트가 필요한 알고리즘은 여전히 ​​CPU별 요청 및 뮤텍스 잠금을 사용합니다.

패치 작성자가 게시한 벤치마크 테스트에 따르면 단일 가상 CPU 환경에서 라운드당 가장 느린 읽기 지연 시간 중앙값은 22.3밀리초에서 0.97밀리초로 감소했습니다. 8개의 가상 CPU 환경에서는 314밀리초에서 7밀리초로 감소했습니다. 각 테스트는 zstd 압축기, 가상 머신 및 메모리 디스크를 스위칭 장치로 사용하고 다양한 우선 순위 작업을 통해 로드를 생성하는 5회 동안 실행되었습니다. 10밀리초를 초과하는 읽기 횟수도 단일 코어에서 라운드당 26~35회에서 0으로 줄었고, 멀티 코어 환경에서는 라운드당 3~18회에서 최대 1회로 줄었습니다. 저자는 벤치마크와 테스트 프로그램이 대규모 언어 모델의 도움으로 작성되었다고 말합니다.

이 수치는 특정 스트레스 테스트의 읽기 지연 시간 개선을 반영하며 모든 Linux 장치 또는 일일 워크로드의 전반적인 속도 향상이 동일하다는 의미는 아닙니다.

패치는 아직 커널 메일링 리스트 검토 단계에 있으며 아직 메인라인 커널에 병합되지 않았습니다.

https://lore.kernel.org/lkml/

[이메일 보호됨]

/

관련 태그

관련 글

댓글

0/500
Captcha (click to refresh)
댓글 없음