IT/S . e . v . e . r . I . n . f . r . a
gzip을 멀티코어를 사용해 압축해보자
지니보이
2021. 3. 1. 18:10
파일이나 디렉토리의 gzip 압축을 수행할 때 1 코어 밖에 사용하지 않기 때문에 압축시간이 오래 걸린다.
8 코어 CPU를 활용하여 병렬에서 gzip 압축을 하고 싶다.
이런 상황에서 쓸 수 있는 좋은 방법을 소개합니다.
pigz
yum으로도 설치 가능한 "pigz"는 멀티 코어를 충분히 이용하여 파일 압축 성능을 올려줄 수 있습니다.
사용법
평소 사용하는 tar 명령에 --use-compress-prog옵션을 함께 사용하여 pigz을 지정합니다.
# tar cf sample.tar.gz --use-compress-prog=pigz sample
데이터 디렉토리 (/var/lib/mysql)을 압축한다면 다음과 같은 형식의 커맨드로 실행하시면 됩니다.
# cd /var/lib
# sudo tar cf /backup/mysql-YYYYMMDD.tar.gz --use-compress-prog=pigz mysql
pigz 단독으로도 사용 가능한 데 아래와 같은 방법으로 사용하시면 됩니다.
압축을 할 때는 항상 -k 옵션을 붙여주시면 원본 파일을 삭제하지 않습니다.
# pigz -k -p8 data.csv
압축을 풀어줄 때는 -d 옵션을 붙여주시면 해제가 가능합니다.
# pigz -dk -p8 data.gz
기본적으로 -p 옵션으로 프로세서 수를 지정하지 않으면 전체 사용가능한 프로세서를 모두 사용하고 프로세서수가 확인되지 않으면 8core를 기본 설정으로 지정합니다. 그 외의 옵션들은 man 을 참조하시기 바랍니다.
설치
epel 리포지토리에서 pigz 커맨드를 간단하게 설치 할 수 있습니다.
# yum install -y pigz