Reddit

Linux Kernel's LZ4 Compression Code Being Resynced For Better Performance & Cleanliness

리눅스 커널 LZ4 코드 재동기화로 성능과 유지보수 개선

삼성의 Michal Wilczynski가 커널 내 LZ4 코드를 최신 upstream 코드와 동기화하는 패치 묶음을 제출했습니다. EROFS 읽기 처리량은 클러스터 크기에 따라 약 11~14% 높아졌고, 다른 커널 내 벤치마크에서는 최대 21% 향상을 보였습니다.

AI 요약

삼성의 Michal Wilczynski가 리눅스 커널에 포함된 LZ4 코드를 정비하는 패치 묶음을 제출했습니다. 커널 코드는 2017~2018년 이후 upstream LZ4와 동기화되지 않은 포크에 가까웠습니다. 그동안 upstream에는 버그 수정과 성능 최적화가 추가됐습니다.

포크를 없애고 upstream 코드 사용

패치의 목표는 커널용으로 별도 관리하던 LZ4 코드를 upstream 소스와 같은 형태로 커널 트리에 넣는 것입니다. 이렇게 바꾸면 이후 최신 압축·해제 코드를 가져올 때 커널 쪽 코드를 별도로 맞출 필요가 줄어듭니다.

벤치마크 결과

LZ4를 사용하는 읽기 전용 파일 시스템 EROFS에서는 클러스터 크기가 4KB일 때 처리량이 약 11% 증가했습니다. 클러스터 크기가 64KB일 때 읽기 처리량은 최대 14% 높아졌습니다. 다른 커널 내 LZ4 벤치마크에서는 최대 21% 성능 향상을 확인했습니다.

Reddit 반응

  • @u/RegretFree7723 — 그래도 아직 zstd 성능에는 못 미치나요?
    • @u/is_this_temporary — 무슨 뜻인가요? 리눅스 커널의 zstd 코드가 최신 상태가 아니라는 말인가요? 이 문서에는 동기화 작업을 쉽게 해주는 기반이 마련되어 있다고 나옵니다: https://github.com/facebook/zstd/blob/dev/contrib%2Flinux-kernel%2FREADME.md
    • @u/RegretFree7723 — zstd만큼 최적화되지는 않았다는 뜻입니다.
    • @u/is_this_temporary — 아, 처음 댓글의 “reach”가 “속도에 도달하다”라는 뜻이었군요? 수정: Reddit 앱이 댓글을 자동으로 영어로 번역했다는 걸 이제 봤습니다. 그래서 뜻이 명확하게 전달되지 않았을 수 있겠네요.

원문: Phoronix / 번역·요약: Trawling