zstd는 요즘 꽤 보편적으로 사용되며, gz보다 압축률이 높고 속도도 빠릅니다. 백업용으로 이 방식으로 변경하는 것이 가치가 있을 수 있습니다.
전 세계의 모든 discourse 인스턴스를 고려할 때, 이는 디스크 용량과 전송량에서 상당한 절감 효과를 가져올 수 있습니다.
Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.
zstd는 요즘 꽤 보편적으로 사용되며, gz보다 압축률이 높고 속도도 빠릅니다. 백업용으로 이 방식으로 변경하는 것이 가치가 있을 수 있습니다.
전 세계의 모든 discourse 인스턴스를 고려할 때, 이는 디스크 용량과 전송량에서 상당한 절감 효과를 가져올 수 있습니다.
Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.
개인적으로 좋은 아이디어라고 생각합니다. pr-welcome 태그를 달아두겠습니다.
Discourse 백업[1]에서 압축 가능 데이터와 이미 압축된 데이터 사이의 평균 무게 비율이 어떻게 되는지, 그리고 zstd를 사용하면 데이터의 몇 퍼센트(%)를 절약할 수 있는지 궁금합니다.
이것은 동일한 기능 요청은 아니지만, 백업 압축과 관련된 내용이므로 크로스포스팅합니다:
제 모든 Discourse 포럼에서도 그 비율이 대략 비슷할 것이라고 생각됩니다.
물론 일부 포럼은 이미지 업로드에 크게 의존하는 경우가 있고, 일부 포럼에서는 파일 업로드를 아예 허용하지 않습니다. ↩︎
가끔 백업 과정이 추가 부하로 인해 가용성 문제를 일으키기도 합니다. 그래서 오늘 zstd로 간단한 실험을 해 보았습니다.
Discourse 백업에서 사용된 gzip (레벨 4)과 zstd (기본 레벨 3, 최대 19)으로 동일한 73GiB 크기의 dump.sql 파일을 압축했을 때의 결과는 다음과 같습니다:
압축 크기: 15.8% 더 작음 (.zst 파일이 .gz 파일 크기의 84%)
압축 시간 (-T1): 71% 빠름 (gzip 소요 시간의 29%)
압축 시간 (-T0): 89% 빠름 (gzip 소요 시간의 11%)
결과가 다를 수 있습니다(YMMV). 여러 번 실행하지 않았고, 제 개인용 머신(6코어)에서 실행했으며, 다른 작업도 동시에 수행 중이었고, 그 외 여러 요인이 있었기 때문에 정밀한 측정을 목표로 하지는 않았습니다. 그럼에도 불구하고 이점이 명확하다고 생각합니다.
-T0 옵션이 모든 사용자에게 반드시 좋은 선택일지는 확실하지 않습니다. Discourse 자체를 위한 여유 공간을 확보하는 것이 좋은 아이디어라고 생각하기 때문에, 더 공정한 비교를 위해 -T1 옵션을 사용한 샘플을 제시했습니다.
상호 이익(win-win)이 될 것 같고, Discourse의 호스팅 인프라에도 상당한 영향을 미칠 것으로 보입니다. 다만, PR을 작성할 실력은 없으므로, 발견한 내용만 공유합니다.
Docker 내부의 tar이 --zstd 압축을 지원하는 것을 확인했습니다.
수정: 아, 아니었습니다. tar은 이를 지원하지만, ‘zstd’ 유틸리티가 없습니다. apt-get install로 설치할 수 있습니다.