요약:
Linux 커널은 널리 사용되는 LZ4 압축 알고리즘으로 대대적인 업그레이드를 진행하고 있습니다. 개발자들은 최근 커널에서 LZ4 구현을 완전히 재구성하기를 희망하는 대규모 패치 세트를 제출했습니다. 이를 통해 상당한 성능 향상을 가져올 뿐만 아니라 업스트림 프로젝트에서 코드의 장기적인 분리 및 유지 관리가 종료됩니다.

현재 Linux 커널의 LZ4 코드는 실제로 독립적으로 유지 관리되는 포크 버전이며 기본 코드는 대략 2017년부터 2018년까지의 상태로 유지됩니다. 그 이후로 수년 동안 LZ4 업스트림 프로젝트는 계속해서 수많은 버그 수정, 성능 최적화 및 코드 개선을 진행해 왔지만 이러한 업데이트는 Linux 커널에 완전히 포함되지 않았습니다.
이번 업그레이드는 삼성 엔지니어 Michal Wilczynski가 주도했습니다. 제출된 패치 계획에 따르면 Linux는 더 이상 특별히 수정된 LZ4 포크 버전을 유지하지 않고 대신 업스트림 LZ4 소스 코드를 직접 도입하고 동기화합니다. 즉, 향후 Linux 커널에서는 최신 LZ4 압축 및 압축 해제 개선 사항을 더욱 쉽게 얻을 수 있을 것입니다.
개발자들은 이번 조정이 유지 관리 작업량을 줄일 뿐만 아니라 장기적인 포크로 인해 발생하는 호환성 및 동기화 문제를 방지하는 데 도움이 될 것이라고 말했습니다. LZ4 프로젝트가 향후 새로운 최적화나 수정 사항을 출시하면 Linux 커널은 이러한 업데이트를 직접적으로 더 쉽게 흡수할 수 있을 것입니다.
성능 테스트 결과로 볼 때 이번 업그레이드로 인한 이점은 매우 분명합니다.
LZ4 압축을 사용하는 EROFS 읽기 전용 파일 시스템 테스트에서 4KB 데이터 블록을 사용할 때 읽기 처리량이 약 11% 증가했습니다. 64KB 데이터 블록을 사용할 때 읽기 처리량이 최대 14% 증가했습니다.
EROFS 외에도 다른 Linux 커널 내부 LZ4 테스트에서도 추가 개선 사항이 나타났습니다. 일부 벤치마크 테스트 결과에 따르면 새 버전의 LZ4에서 달성한 성능 향상은 최대 21%에 달할 수 있습니다.
LZ4는 Linux 생태계에서 가장 일반적인 고속 압축 알고리즘 중 하나입니다. 파일 시스템, 메모리 압축, 시작 이미지, 컨테이너 환경 등 빠른 압축과 압축 해제가 필요한 다양한 시나리오에서 널리 사용됩니다. 더 높은 압축률을 추구하는 알고리즘에 비해 LZ4의 가장 큰 특징은 극도로 낮은 지연 시간과 극도로 높은 처리량이므로 성능에 민감한 분야에 많은 응용 분야가 있습니다.
업계 관계자들은 이번 업데이트가 새로운 프로세서 지원이나 대규모 기능 추가만큼 눈길을 끌지는 못하더라도 Linux의 기본 성능에 큰 의미가 있다고 믿습니다. LZ4는 많은 하위 시스템에서 널리 사용되므로 한 자릿수 비율의 최적화라도 장기적으로 상당한 이점을 가져올 수 있습니다.
동시에 Linux 커널은 최근 압축 기술 최적화를 지속적으로 추진하고 있습니다. LZ4 외에도 Zstd 압축 코드도 개선 및 성능 향상을 받고 있습니다. 데이터의 크기가 지속적으로 증가하고 AI, 클라우드 컴퓨팅, 컨테이너 배포에 대한 수요가 확대되면서 고성능 압축 기술의 중요성이 점점 더 부각되고 있습니다.
이 패치 세트가 마침내 메인라인 커널에 의해 승인된다면 Linux는 향후 더욱 현대적이고 효율적이며 유지 관리가 쉬운 LZ4 구현을 갖게 될 것이며 몇 년 전에 현 상태에 갇혀 있던 커널 버전은 공식적으로 역사가 될 것입니다.
댓글