gzip을 멀티코어를 사용해 압축해보자
2021. 3. 1. 18:10ㆍIT/S . e . v . e . r . I . n . f . r . a
파일이나 디렉토리의 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
'IT > S . e . v . e . r . I . n . f . r . a' 카테고리의 다른 글
XtraBackup(MariaBackup)에서 Stream 백업시 로깅하기 (0) | 2021.07.16 |
---|---|
[shell] find로 검색한 리스트를 배열에 넣기 (0) | 2021.07.15 |
삼바 서버 설정하기 (0) | 2021.03.08 |
쉘 스크립트 변수 뒤에서부터 자르기 (0) | 2021.03.01 |
현재디렉토리의 숨김파일 포함 압축 (0) | 2021.03.01 |
^M 문자로 인해 shell script 오류발생시 해결법 (0) | 2021.03.01 |