
mongodb(~500GB)의 백업을 .tar.gz 아카이브로 압축하고 있는데, 이 작업에는 몇 시간 정도의 시간이 걸립니다. 테스트 목적으로 해당 데이터베이스를 다른 컴퓨터에 백업하려고 하는데, 컴퓨터당 이 작업에 걸리는 시간을 추정하고 싶습니다.
내 질문은 압축에 걸린 시간을 기준으로 아카이브의 압축을 푸는 데 걸리는 시간을 추정할 수 있는 방법이 있습니까?
감사해요
답변1
압축과 압축 해제의 표준 비율은 데이터와 서버 리소스에 따라 달라지기 때문에 잘 모르겠습니다. 다른 모든 리소스가 동일하다고 가정하면 관련된 계산 작업이 적기 때문에 일반적으로 압축 해제가 더 빠릅니다. 최악의 경우 추정치는 초기 압축 시간과 동일할 수 있습니다.
그러나 쉬운 승리를 위해서는 다음을 사용하는 것이 좋습니다.pigz
, 병렬 구현은 gzip
여러 프로세서 및 코어를 활용합니다. 단일 코어만 사용할 수 있는 경우를 제외하고는 pigz
압축 및 압축 해제 시간을 크게 줄여야 합니다.
다음을 사용한 샘플 사용법 tar
:
tar -c --use-compress-program=pigz -f data.tgz /path/to/data
더 많은 예를 보려면 다음을 참조하세요.StackOverflow: tar+gzip/bzip 압축/압축 해제를 위해 멀티 코어 활용.
답변2
동일한 머신에 대한 명확한 비율은 없으며 여러 머신(다른 유형)을 사용하면 확실히 영향을 미칠 수 있습니다. 압축 및 압축 해제에는 데이터 저장소(예: "하드 드라이브" 또는 "SSD"), 프로세서 및 메모리와 같은 기타 구성 요소가 적극적으로 포함됩니다.
과도한 일반화로 인해 압축 해제는 매우 빠르며, 압축되지 않은 양의 데이터를 복사하는 것보다 더 빠를 수도 있습니다. 압축도 비슷하게 빠르며 RLE 압축과 같은 경우에는 빠를 수 있습니다. zip 및 gzip의 경우 일반적인 구현은 압축 해제보다 느리며, 2~4배 더 오래 걸릴 수 있는 더 공격적인 압축 옵션을 선택하면 압축 효율성을 5%~15% 더 끌어낼 수 있는 경우가 많습니다.
차이점은 주로 압축에 일부 테스트(때때로 "추측"으로 간주됨)가 포함되고 일부 테스트는 효과가 없기 때문입니다. 대조적으로, 압축 해제는 일반적으로 사전 설정된 프로세스를 따르기 때문에 상대적으로 더 빠르게 진행됩니다.