Linux
 Computer >> コンピューター >  >> システム >> Linux

pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

gzipは利用可能なアーカイブ・圧縮ソリューションの中でも動作が速い部類に入りますが、ひとつだけ弱点があります。それは、複数のプロセッサ(CPUコア)を活用できないという点です。そのため、比較的新しいPCを使っていても、その性能を十分に引き出せません。

pigzはgzipのマルチスレッド実装であり、GNU zip形式への圧縮を従来の何分の一かの時間で実行できます。この記事では、pigzを使ってファイルをより速く圧縮する方法を解説します。

pigzのインストール

Ubuntu、MintなどDebian系ディストリビューションにpigzをインストールするには、次のコマンドを実行します。

sudo apt install pigz
pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

Arch LinuxやManjaro Linuxの場合は、以下のコマンドを使用します。

sudo pacman -S pigz

openSUSEをお使いの場合は、次のコマンドでインストールできます。

sudo zypper install pigz

単一ファイルを圧縮する

pigzで任意のファイルをGNU Zip形式に圧縮するには、次のように入力します。

pigz ファイル名
pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

デフォルトでは、pigzは圧縮後に元のファイルを削除します。これが問題になる場合もあるでしょう。元のファイルを残したい場合は、-kオプション(小文字であることに注意)を使用します。

pigz -k ファイル名
pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

pigzは複数の圧縮レベルに対応しており、ダッシュの後に数字を指定することで選択できます。例えば次のとおりです。

pigz -5 圧縮対象ファイル

使用できる数字は1から9までです。「1」は最も速いパフォーマンスを発揮しますが圧縮率は最低、「9」は最も遅いものの最高の圧縮率を実現します。

pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

フォルダを圧縮する

pigzには大きな制限があります。フォルダ(ディレクトリ)をサポートしていないため、単一ファイルしか圧縮できません。この回避策として、tarと組み合わせて使う方法があります。

例えば「Pictures」フォルダを圧縮したいとしましょう。tarは外部の圧縮プログラムを利用できるため、次のようなコマンドを実行できます。

tar --use-compress-program="pigz -k -9" -cf pictures.tar.gz Pictures

このコマンドでは、tar --use-compress-programによって、アーカイブの作成自体はtarが行うものの、内容の圧縮は外部プログラム経由で行うことを指定しています。

その外部プログラムとそのパラメータは、コマンド内のpigz -k -9の部分で定義されています。

最後に、「Pictures」フォルダ内のすべてのファイルを含む「pictures.tar.gz」というファイルを作成することを指示しています(-cfはCreate Fileの意味)。

pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

ファイル・フォルダを展開する

pigzでgzファイルを展開するのは非常に簡単で、次のいずれかのコマンドを入力するだけです。

pigz -d ファイル名.gz
unpigz ファイル名.gz

先ほど作成したようなtar.gzファイルからフォルダを展開する場合も、同じくtarのアプローチを使用します。

tar --use-compress-program="pigz -d" -xvf pictures.tar.gz
pigzでファイルを高速に圧縮する方法【マルチコア対応gzip】

並列処理の数を制限する

最後に、覚えておくと便利なもうひとつのオプションとして-pを紹介します。pigzはデフォルトでPCのすべてのプロセッサ/コアを使用します。大容量のデータセットを圧縮する際、これがPC全体の応答性に影響を与えることがあります。

-pオプションを使えば、pigzが使用するプロセッサ/コアの数を特定の値に制限できます。残りのコアは他のタスクや操作用に確保され、作業中も快適にPCを操作できるようになります。オプションの直後にコア数を指定してください。

pigz -k -p2 圧縮対象ファイル

-p2はpigzの使用を2つのコアのみに制限します。任意の数を指定できますが、ハードウェアの上限を超えない範囲に収めることをおすすめします。

Linuxでのファイル圧縮や展開についてさらに詳しく知りたい方は、Linuxのアーカイブ・圧縮コマンドに関する詳細ガイドもぜひご覧ください。

  1. Microsoft OneDriveでファイルを管理・同期・共有する方法【初心者向けガイド】

    Googleが「Google Drive」を、Appleが「iCloud」を提供しているように、Microsoftも「OneDrive(旧称:SkyDrive)」というクラウドストレージサービスを展開しています。近年、個人ユーザーや企業の間では、高価なハードウェアへの依存を減らし、ファイルやドキュメントをクラウド上で管理するスタイルが主流になりつつあります。 クラウドサービスへの需要が高まる中、OneDriveも機能拡張を続けています。最新版では、ドラッグ&ドロップによるファイルや写真の簡単な転送、リアルタイムでの共同編集(共同オーサリング)、ファイルのプレビュー機能、より多くのファイル形式へ

  2. ディスクの空き容量を回復してPCを高速化!Disk Speedupの使い方

    デジタルストレージの空き容量は、誰にとっても不足しがちなものです。ハードドライブをどれだけ追加購入しても、USBメモリをどれだけ集めても、ストレージ容量は常に足りません。この普遍的な問題に直面した筆者は、新たなストレージ機器を買い足す以外の解決策を探すことにしました。そこでたどり着いたのが「Disk Speedup」です。本アプリはWindows向けのメンテナンスツールとして紹介されていますが、実際には、不要に占有されていたことすら気づかなかったハードディスクの領域を解放するのに役立ちます。今回は、Disk Speedupを使ってWindows 10のディスク容量を確認・回復する方法をご紹介し