실시간 압축률을 보여주는 압축기

실시간 압축률을 보여주는 압축기

일부 압축기는 작업을 수행하는 동안 정보(압축 비율, 총 시간 및 크기 등)를 표시할 수 있습니다 xz -v. 예를 들면 다음과 같습니다.

--- % 2,580.2KiB / 6,552.0KiB =0.394   1.2MiB/초0:05

대용량 파일을 압축할 때 압축률이 낮을 때 프로세스를 중지하고 압축되지 않은 상태로 유지할 수 있도록 작업의 압축률을 알고 싶습니다.

이 기능이 있는 다른 프로그램이 있나요? ( xz압축률은 높으나 속도가 느림)

답변1

이를 수행하는 일반적인 방법은 pv압축기의 입력 및 출력 크기를 모니터링하는 것과 같은 방법을 사용하는 것입니다. 예를 들어:

$ pv -cpterba -N in /dev/urandom | gzip | pv -cpterba -N out > /dev/null 
      out:  956MiB 0:00:42 [23.1MiB/s] [22.8MiB/s] [                           <=>        ]
       in:  956MiB 0:00:42 [23.1MiB/s] [22.8MiB/s] [                           <=>        ]

무작위 데이터를 압축하려고 할 때 예상한 대로 출력 크기가 입력 크기와 동일하다는 것을 위에서 보면 쉽게 알 수 있습니다.

압축률이 매우 좋은 파일을 사용하려고 하면 다음과 같습니다.

$ pv -cpterba -N in /dev/zero | gzip | pv -cpterba -N out > /dev/null 
      out: 2.62MiB 0:00:25 [ 109KiB/s] [ 107KiB/s] [                   <=>                ]
       in: 2.65GiB 0:00:25 [ 110MiB/s] [ 108MiB/s] [                   <=>                ]

출력 크기는 2.62MiB, 입력 크기는 2.65GiB로 3배 정도 더 큽니다.

부작용으로 일반 파일에 사용하면 pvETA가 제공됩니다.

$ pv -cpterba -N in debian-8.2.0-amd64-DVD-1.iso | gzip | pv -cpterba -N out > /dev/null 
      out:  578MiB 0:00:27 [22.1MiB/s] [21.4MiB/s] [                  <=>                 ]
       in:  595MiB 0:00:27 [22.1MiB/s] [  22MiB/s] [==>                   ] 15% ETA 0:02:25

제시 DVD 이미지는 대부분 압축된 파일이라 압축률이 썩 좋지는 않지만, 그래도 완성하는데 2분 30초가 걸린다.

이를 사용하여 이미 실행 중인 프로세스를 모니터링할 수도 있습니다 pv -d. 실행 중인 압축기에 적용하면 입력 파일과 출력 파일의 위치를 ​​알려주므로 비율을 빠르게 확인할 수 있습니다.

$ pv -pterba -d "$(pidof gzip)"
   3:/var/tmp/mp3s.tar:  911MiB 0:00:44 [  20MiB/s] [19.9MiB/s] [>         ]  9% ETA 0:07:35
   4:/var/tmp/mp3s.tar.gz:  906MiB 0:00:44 [  20MiB/s] [19.8MiB/s] [                <=>   ] 

MP3 Tar 파일도 잘 압축되지 않습니다.

노트:많은 압축기는 블록 단위로 작동합니다. 이것이 바로 전송 속도가 급증한 다음 0으로 이동하여 프로세스를 반복하는 것과 같은 현상이 나타날 수 있는 이유입니다. 실제로 예상되는 비율에 대한 아이디어를 얻으려면 압축기를 잠시 동안 작동시켜야 합니다. 스파이크 이후에는 블록에서 읽을 수 있지만 압축된 버전은 아직 작성되지 않았습니다. 하지만 10블록을 기다렸다면 최대 10%가 틀렸습니다.

(내가 사용하는 pv 옵션: -p진행률 표시줄 켜기, -t경과 시간 켜기, -eETA 켜기, -r전송 속도 표시, -b바이트 카운터 켜기, 파이프라인 작업에서 여러 s -c만들기 , 레이블 설정).pv-N

관련 정보