본문 바로가기

리눅스

[WIP] 우분투에서 pigz 설치 및 사용 방법 (병렬 gzip 압축)

728x90

우분투에서 pigz 설치 및 사용 방법 (병렬 gzip 압축)

pigz(Parallel Implementation of Gzip)는 기존 gzip과 호환되면서 멀티코어를 활용해 훨씬 빠르게 압축/해제할 수 있는 도구입니다.

1. pigz 설치

우분투에서는 기본 패키지로 제공됩니다.

sudo apt update
sudo apt install -y pigz

설치 확인

pigz --version

2. 기본 사용법

파일 압축

pigz example.txt
  • 결과: example.txt.gz
  • 기본적으로 원본 파일은 삭제됨

원본 파일 유지하면서 압축

pigz -k example.txt

압축 해제

pigz -d example.txt.gz

또는 gzip 호환 명령

pigz -d example.txt.gz

주요 옵션 정리

  • -p : N 병렬 스레드 수 지정
  • -k : 원본 파일 유지
  • -d : 압축 해제
  • -f : 강제 덮어쓰기
  • -v : 상세 출력
  • -r : 디렉토리 재귀 처리
  • -b N : 블록 크기 설정 (기본 128KB)
728x90

3. 병렬 처리 설정 (성능 핵심)

pigz는 기본적으로 모든 CPU 코어를 사용합니다.

 

특정 코어만 사용

pigz -p 4 example.txt
서버 부하를 고려해 코어 수를 제한하는 것이 실무에서 중요합니다.

4. tar와 함께 사용하는 방법 (실무 핵심)

단일 파일이 아닌 디렉토리는 tar와 함께 사용합니다.

압축

tar cf - /data | pigz > data.tar.gz

또는 (더 간단한 방법)

tar -I pigz -cf data.tar.gz /data

압축 해제

pigz -dc data.tar.gz | tar xf -

또는

tar -I pigz -xf data.tar.gz

5. 표준 입력/출력 활용 (파이프 처리)

pigz는 스트림 처리에 매우 강력합니다.

 

로그 실시간 압축

cat access.log | pigz > access.log.gz

6. gzip과의 차이점

항목 gzip pigz
압축 방식 단일 스레드 멀티 스레드
속도 느림 빠름
호환성 표준 gzip 완전 호환
생성된 .gz 파일은 서로 완벽하게 호환됩니다.

7. 성능 팁

CPU 많은 서버 → pigz 효과 극대화

디스크 I/O 병목 시 효과 제한

적절한 스레드 수 설정 권장

pigz -p $(nproc) large.log

 

pigz는 gzip과 호환되는 명령어이므로 gzip과 동일한 방식으로 사용할 수 있습니다. 추가로 pigz는 gzip보다 더 빠른 압축 속도를 제공할 수 있습니다.

 

728x90