--fast
を使用して gzip の速度を変更できます --best
または -#
# は 1 ~ 9 の数値です (1 は最速ですが圧縮率は低く、9 は最も遅くなりますが圧縮率が高くなります)。デフォルトでは、gzip はレベル 6 で実行されます。
tar が gzip に比べて時間がかからない理由は、ファイルを 1 つのファイルにコピーする際の計算オーバーヘッドがほとんどないためです (これが tar の動作です)。一方、gzip は、実際には圧縮アルゴリズムを使用して tar ファイルを圧縮しています。
問題は、(あなたが発見したように) gzip が 1 つのスレッドに制限されていることです。
複数のスレッドを使用して圧縮を実行できる pigz を入力します。これを使用する方法の例:
tar -c --use-compress-program=pigz -f tar.file dir_to_zip
--use-compress-program オプションの簡潔な要約が姉妹サイトにあります。
<ブロック引用>
単一の CPU を約 100% 使用しているようです。
これは、I/O パフォーマンスの問題はなく、圧縮に 1 つのスレッドしか使用されていないことを意味します (これは gzip の場合に当てはまります)。
他のツールをインストールするために必要なアクセス/合意を達成することができれば、7zip はマルチコア CPU を利用するために複数のスレッドもサポートしますが、それが gzip 形式だけでなく独自のものにも拡張されるかどうかはわかりません.
当分の間 gzip だけを使用することに固執していて、圧縮するファイルが複数ある場合は、それらを個別に圧縮してみることができます。これにより、複数のプロセスを並行して実行することで、マルチコア CPU をより多く使用できます。 I/O サブシステムの容量に近づくとすぐにパフォーマンスが急激に (1 つのプロセス/スレッドを使用していた場合よりも低下する) 低下するため、無理をしないように注意してください。