[unix] gzip 압축 속도 향상

gzip프로세스 속도를 높일 수 있습니까?

나는 사용하고있다

mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz

데이터베이스를 디렉토리에 백업합니다 $BACKUP_DIR.

맨 페이지는 다음과 같이 말합니다.

-# –fast –best
지정된 숫자를 사용하여 압축 속도를 조절합니다. # -1 또는 –fast는 가장 빠른 압축 방법을 표시하고 (압축이 적음) -9 또는 –best는 가장 느린 압축 방법을 나타냅니다 ( 최고의 압축). 기본 압축 수준은 -6입니다 (즉, 속도를 희생하여 높은 압축률로 바이어스 됨).

  • 사용하는 것이 얼마나 효과적 --fast입니까?
  • 이것이 현대 컴퓨터의 CPU 사용량을 효과적으로 낮추고 있습니까?

내 테스트 결과

나는 가속을 보지 못했습니다.

  • 7 분 47 초 (기본 비율 -6)
  • 8 분 36 초 (비율 --fast= 9)

빠른 압축을 사용하는 데 시간이 더 걸리는 것 같습니다.

압축률이 높을수록 실제로 속도가 느려집니다.

  • 11 분 57 초 (비율 --best= 1)

아이디어를 얻은 후에도 lzop테스트했으며 실제로 더 빠릅니다.

  • 6 분 14 초 lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo


답변

pigz를 사용하는 멀티 코어 머신을 사용하는 경우 기존 gzip보다 훨씬 빠릅니다.

gzip의 병렬 구현을 의미하는 pigz는 데이터를 압축 할 때 여러 프로세서와 여러 코어를 활용하여 gzip을 완전히 대체합니다. pigz는 Mark Adler가 작성했으며 zlib 및 pthread 라이브러리를 사용합니다.

Pigz ca는 gzip의 드롭 인 대체품으로 사용됩니다. 압축 해제 만 아니라 압축 만 병렬 처리 할 수 ​​있습니다.

pigz를 사용하면 명령 행이됩니다

mysqldump "$database_name" | pigz > $BACKUP_DIR/$database_name.sql.gz


답변

보낸 사람 man gzip:

   -# --fast --best
          Regulate  the  speed  of compression using the
          specified digit #, where -1  or  --fast  indi‐
          cates  the  fastest  compression  method (less
          compression) and -9 or  --best  indicates  the
          slowest compression method (best compression).
          The default compression level is -6 (that  is,
          biased  towards high compression at expense of
          speed).


답변

데이터베이스 잠금 문제로 인해 속도가 빠르고 데이터를 일시적으로 압축하지 않은 디스크를 보유 할만큼 빠르거나 큰 디스크가있는 경우이 방법을 대신 사용할 수 있습니다.

mysqldump "$database_name" > "$BACKUP_DIR"/"$database_name".sql
nice gzip "$BACKUP_DIR"/"$database_name".sql &

즉, 백업을 먼저 저장 한 다음 (디스크가 빠르고 CPU가 느린 경우 백업하는 것보다 빠릅니다) 백그라운드에서 gzipping이 발생합니다.

압축에 걸리는 시간이 더 이상 (직접적으로) 중요하지 않기 때문에 더 나은 압축 알고리즘을 사용할 수도 있습니다.


답변