> ## Content Index
> Fetch the complete content index at: https://linuxroom.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# Linux  커널 7.4 버전, Zstd의 불필요한 초기화를 줄여 압축 성능 개선
- URL: https://linuxroom.net/linux-74-zstd-redundant-initialization-performance/
- Published: 2026-09-17T07:59:26.000Z
- Updated: 2026-09-17T07:59:26.000Z
- Author: 0xCD
- Tags: News

> ### 커널 속 Zstd 초기화, 꼭 필요할 때만 시작한다

![리눅스 커널 Zstd 스트림 초기화 최적화 - 중복 작업 제거](https://linuxroom.net/content/images/2026/09/image-67.png)

리눅스 커널 Zstd 스트림 초기화 최적화 - 중복 작업 제거

Linux 커널은 파일 시스템, 스왑, 암호화 보조 기능 등 여러 경로에서 데이터를 압축하고 다시 풀어냅니다. Zstd는 이 작업에 쓰이는 압축 알고리즘 가운데 하나로, 처리 속도가 빠르고 압축률도 괜찮아 커널 안에서도 활용 범위가 넓습니다.

압축 성능을 높이는 일은 단순히 알고리즘을 바꾸는 것만으로 끝나지 않습니다. 같은 일을 반복해서 준비하거나 실제 데이터가 들어오기 전에 필요하지 않은 메모리 작업을 수행하는 작은 비용도 요청이 쌓이면 전체 처리 시간에 영향을 줍니다.

이번에 제안된 패치는 Zstd의 cstream과 dstream 초기화 과정을 손봅니다. cstream은 압축 작업을 위한 스트림이고 dstream은 압축 해제 작업을 위한 스트림입니다. 둘 다 데이터를 다루기 전에 작업 환경을 준비하는 역할을 합니다.

첫 초기화가 끝난 뒤 실제 데이터를 처리하기도 전에 그 결과가 버려지고 다시 초기화가 진행되는 경로가 있어 문제였습니다. 처음부터 필요하지 않았던 준비 작업을 한 번 수행한 셈입니다. 한 번만 보면 사소하지만 커널의 압축 경로가 반복해서 호출되는 환경에서는 누적 비용이 됩니다.

> ### 첫 데이터가 들어올 때 초기화하기

![Zstd 스트림 초기화 지연 최적화: 성능 향상 분석](https://linuxroom.net/content/images/2026/09/image-68.png)

Zstd 스트림 초기화 지연 최적화: 성능 향상 분석

새 패치는 스트림 초기화를 첫 번째 walk 반복까지 미룹니다. 여기서 walk는 압축 또는 압축 해제 대상 데이터를 순서대로 훑는 처리 단계라고 이해하면 됩니다. 실제 작업을 시작하는 순간에 초기화하므로 사용되지 않을 준비 작업을 줄일 수 있습니다.

이 방식은 기능을 바꾸기보다 작업 순서를 정리하는 최적화에 가깝습니다. 압축 결과의 형식이나 Zstd가 처리할 데이터의 의미를 바꾸는 것이 아니라 같은 결과를 만들기 전에 불필요하게 거치는 단계를 덜어내는 접근입니다.

개발자가 공개한 4KB crypto\_acomp 벤치마크에서는 압축 속도가 한 자릿수 비율로 개선됐고 압축 해제 속도는 베어메탈에서 13%, 가상 머신에서 35% 빨라지는 결과가 제시됐습니다. 모든 시스템에서 같은 수치가 나온다는 뜻은 아니지만 작은 블록을 반복 처리하는 경로에서 초기화 비용이 무시하기 어렵다는 점을 보여줍니다.

특히 가상 머신에서 개선 폭이 더 크게 나타난 점이 눈에 띕니다. 가상화 환경에서는 CPU와 메모리 접근 비용이 실제 하드웨어와 다르게 나타날 수 있기 때문에 짧은 작업을 여러 번 수행하는 코드의 불필요한 준비 단계가 상대적으로 크게 보일 수 있습니다.

> ### Linux 커널 7.4 버전에 들어가기 전 확인할 것

![Linux 커널 암호화 최적화 패치의 검증 및 배포 과정](https://linuxroom.net/content/images/2026/09/image-69.png)

Linux 커널 암호화 최적화 패치의 검증 및 배포 과정

이 두 패치는 이번 주 커널 암호화 서브시스템의 개발 브랜치에 반영됐습니다. 다만 개발 브랜치에 들어갔다고 해서 곧바로 모든 배포판의 안정 커널에서 사용할 수 있다는 의미는 아닙니다. Linux 커널 7.4 버전의 병합 창에 제출되는 절차를 거쳐야 합니다.

병합 뒤에도 다양한 입력 크기와 압축 수준, CPU 종류를 대상으로 동작을 확인해야 합니다. 벤치마크에서 빨라졌더라도 특정 경로의 예외 처리나 스트림 재사용에 문제가 없는지 검증하는 과정이 필요합니다. 커널 안의 압축 코드는 저장 장치나 메모리 관리와 맞물릴 수 있어 단순한 사용자 프로그램보다 영향 범위가 넓습니다.

일반적인 데스크톱 사용자가 이번 패치만으로 즉각적인 체감 성능 향상을 경험하기는 어려울 수 있습니다. 압축이 실제 병목인 작업을 하지 않는다면 전체 시스템 반응 속도에서 차지하는 비중이 작기 때문입니다. 반면 컨테이너 이미지, 암호화 장치, 압축된 커널 데이터처럼 짧은 압축 작업이 자주 반복되는 환경에서는 누적 효과를 기대할 여지가 있습니다.

커널 개발에서 이런 최적화가 의미 있는 이유는 큰 기능을 추가하지 않고도 반복 비용을 줄일 수 있기 때문입니다. 초기화를 늦추는 작은 변경이더라도 호출 횟수가 많은 내부 경로에 들어가면 전체 시스템의 CPU 시간을 아낄 수 있습니다. 다만 실제 운영 환경에서는 성능 수치보다 결과의 정확성과 다양한 하드웨어에서의 안정성이 먼저 확인돼야 합니다.

> [원문 뉴스 : Phoronix](https://www.phoronix.com/news/Zstd-Linux-7.4-Avoid-Redundant?ref=linuxroom.net)

---

> ### 🐧 Linuxroom의 생각 :

이번 변경은 사실 새 기능보다 커널 내부의 반복 작업을 줄여가는 최적화에 가까운 변경이라고 생각합니다. 

일반 유저는 보통 초기화가 몇 번 일어나는지 알 필요가 없지만 컨테이너나 가상 머신처럼 압축 작업이 계속 쌓이는 환경에서는 이런 차이가 운영 비용으로 이어질 수 있죠.

베어 메탈보다 가상 머신에서 개선 폭이 크게 나온 점도 흥미롭습니다. 다만 공개된 벤치마크 숫자를 그대로 모든 서버에 적용하기보다는, 실제 데이터 크기와 CPU, 가상화 설정에 맞춰 측정하는 편이 안전합니다. 성능 패치는 환경을 만나야 비로소 의미가 드러나기 때문입니다.

Linux 커널 7.4 버전에 최종적으로 포함될지는 병합 과정과 추가 검증을 지켜봐야 합니다. 그래도 필요해질 때까지 준비를 미루는 설계는 커널뿐 아니라 반복 작업이 많은 프로그램 전반에 적용할 수 있는 기본 원칙으로 보입니다.

---

#### ※ 각주

\[1\] Zstd: 빠른 압축과 압축 해제를 목표로 설계된 데이터 압축 알고리즘입니다.

\[2\] 스트림: 데이터를 한꺼번에 처리하지 않고 순서대로 흘려보내며 처리하는 작업 단위입니다.

\[3\] cstream: Zstd에서 데이터를 압축할 때 사용하는 스트림 처리 구조입니다.

\[4\] dstream: Zstd에서 압축된 데이터를 원래 형태로 되돌릴 때 사용하는 스트림 처리 구조입니다.

\[5\] 초기화: 작업에 필요한 상태와 메모리 등을 처음 사용할 수 있도록 준비하는 과정입니다.

\[6\] walk 반복: 압축 또는 압축 해제 대상 데이터를 순서대로 훑으며 처리하는 반복 단계입니다.

\[7\] crypto\_acomp: 커널 암호화 서브시스템에서 비동기 압축 작업을 다루는 인터페이스입니다.

\[8\] 베어메탈: 가상화 계층 없이 물리 컴퓨터에서 운영체제를 직접 실행하는 환경입니다.

\[9\] 가상 머신: 한 물리 컴퓨터 안에서 별도의 컴퓨터처럼 운영체제를 실행하는 소프트웨어 환경입니다.

\[10\] 병합 창: Linux 커널의 다음 주요 버전에 새 기능을 받아들이는 개발 기간입니다.

\[11\] 서브시스템: 커널 안에서 파일 시스템, 네트워크, 암호화처럼 특정 영역을 담당하는 큰 구성 단위입니다.