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

TarですべてのCPUコアを使用してアーカイブを圧縮する方法

TarですべてのCPUコアを使用してアーカイブを圧縮する方法

tarを使用して大量のデータを圧縮する必要があった場合 、あなたはそれがどれほどの痛みになるかを知るでしょう。多くの場合、非常にゆっくりと進み、 Ctrlを押すことになります。 + C タスクを終了し、それを忘れるだけです。ただし、tarが使用できるツールは他にもいくつかあり、それらは今日の高度にマルチスレッド化されたCPUを利用して、tarのアーカイブを高速化するための優れた方法です。この記事では、Linuxでアーカイブを圧縮するときにtarがすべてのコアを使用するようにする方法を説明します。

ツールの理解とインストール

ここで問題となっている3つの主要なツールは、pigz、pbzip2、およびpxzです。ツール間には微妙な違いがいくつかありますが、違いはgzip、bzip2、xzにあります。そのそれぞれの順序で、圧縮レベルが増加します。つまり、gzipで圧縮されたアーカイブはxzで圧縮されたアーカイブよりも大きくなりますが、gzipは当然xzよりも時間がかかりません。 bzip2は途中です。

各ツールの名前を開始する「p」は、「並列」を意味します。並列化は、何年にもわたってますます重要になっているものです。つまり、何かがすべてのCPUコアにどれだけうまく広がっているかです。 64コアと128スレッドに到達できるAMDのEpycやThreadripperラインのようなCPUでは、どのアプリケーションがそれを利用できるかを理解することが重要です。これらの圧縮機能は最有力候補です。

ツールをインストールするには、リポジトリにアクセスするだけです。

sudo apt install pigz pbzip2 pxz # Debian/Ubuntu
sudo dnf install pigz pbzip2 pxz # Fedora
sudo pacman -Sy pigz pbzip2 pxz   # Arch Linux
TarですべてのCPUコアを使用してアーカイブを圧縮する方法

この記事では、一貫性を保つためにpxzに焦点を当てています。 pigzのこのチュートリアルをチェックしてください。

Tarを使用したアーカイブの圧縮

tarの構文はかなり単純です。ディレクトリを圧縮するには、次のようなコマンドを使用できます。

tar czf linux-5.10-rc3.tar.gz linux/
tar cjf linux-5.10-rc3.tar.bz2 linux/
tar cJf linux-5.10-rc3.tar.xz linux/

1つ目はgzipを使用し、2つ目はbzip2を使用し、3つ目はxzを使用します。ファイル名とディレクトリは何をしているかによって異なりますが、LinuxカーネルをGitHubから「/ home」ディレクトリにプルし、それを使用します。そこで、先に進み、そのコマンドをtimeで開始します。 前面のコマンドを使用して、所要時間を確認します。また、xzがこのシステムでCPUの最も高い割合を占めていると記載されていることもわかりますが、100%で1つのコアを固定しているだけです。

TarですべてのCPUコアを使用してアーカイブを圧縮する方法 TarですべてのCPUコアを使用してアーカイブを圧縮する方法

そして、ご覧のとおり、古いi7-2600がLinux 5.10-rc3を圧縮するのに非常に長い時間がかかりました(約28分)。

TarですべてのCPUコアを使用してアーカイブを圧縮する方法

ここで、これらの並列圧縮ツールが役立ちます。大きなファイルを圧縮してより高速に処理したい場合は、これらのツールを十分にお勧めできません。

Tarでの並列圧縮ツールの使用

--use-compression-programで圧縮プログラムを使用するようにtarに指示することができます オプション、または-Iの少し単純なコマンドフラグを使用できます 。これらのツールの構文の例は次のようになります:

tar -I pigz -cf linux-5.10-rc3.tar.gz linux/
tar -I pbzip2 -cf linux-5.10-rc3.tar.bz2 linux/
tar -I pxz -cf linux-5.10-rc3.tar.xz linux/

それをテストして、CPUの8つのスレッドすべてにアクセスできるLinuxカーネルをシステムが圧縮するのにかかる時間を見てみましょう。私のhtopを見ることができます pxzのために100%の使用率で固定されたすべてのスレッドを示す読み出し。

TarですべてのCPUコアを使用してアーカイブを圧縮する方法 TarですべてのCPUコアを使用してアーカイブを圧縮する方法

そのアーカイブを圧縮するのにかかる時間が大幅に短縮されたことがわかります(約7分!)。これはマルチタスクの場合でした。バックグラウンドで仮想マシンを実行していて、現在Webブラウジングを行っています。 Linuxカーネルハードウェアスケジューラは、個人的なものに必要なものを提供するため、pxzを離れた場合 システム上で他のものを実行せずに実行するコマンドを使用すると、より高速に実行できる場合があります。

TarですべてのCPUコアを使用してアーカイブを圧縮する方法

pigz、pbzip2、およびpxzを使用した圧縮レベルの調整

圧縮レベルをpxzに渡して、ファイルをさらに小さくすることもできます。これには、より多くのRAM、CPU、および時間が必要になりますが、本当に小さなファイルを取得する必要がある場合は、それだけの価値があります。 2つのコマンドとその結果を並べて比較します。

TarですべてのCPUコアを使用してアーカイブを圧縮する方法 TarですべてのCPUコアを使用してアーカイブを圧縮する方法 TarですべてのCPUコアを使用してアーカイブを圧縮する方法

圧縮はそれほど大きくはなく、時間は必ずしも価値があるとは限りませんが、メガバイトごとに重要な場合でも、それは優れたオプションです。

すべてのコアを使用してtarを使用してアーカイブを圧縮するためのこのガイドを楽しんでいただけたでしょうか。 Linux用の新しいPCを構築する方法、AptをマスターしてAptの第一人者になる方法、RaspberryPiにArchLinuxをインストールする方法など、他のLinuxコンテンツのいくつかを確認してください。


  1. Minikubeを使用してラップトップでKubernetesを使い始める方法

    前のチュートリアルで、Kubernetesの基本についてはすでに説明しました。単一ノードのKubernetesクラスターであるMinikubeは、仮想マシン内に真っ直ぐに配置できるため、ラップトップでKubernetesを実行するための最良の方法です。 Kubernetesの公式ウェブサイトには、Minikubeの使用を開始するための完全な手順が記載されています。次の手順では、実際のスクリーンショットを使用してこれらの手順を再作成しました。 ステップ1.ハイパーバイザーをインストールする まず、KVM、VMware Fusion、Hyper-V、VirtualBoxなどのハイパーバイザーを

  2. CinebenchでCPUをベンチマークする方法

    5800Xや5900XなどのRyzen7ファミリーの1つなど、強力な新しいCPUを購入したばかりの場合は、幸運です。新しいCPUを実際にそのペースに乗せるための最良の方法は、ベンチマークを行うことです。使用できるツールはさまざまですが、Cinebenchはほとんどの愛好家にとって頼りになるツールです。 比較的高速な10分間のテストで、Cinebenchは、すべてのCPUコアを最大限に活用する独自の画像レンダリングプロセスを使用して、PC内部のパワーの完璧な画像を提供します。そのテストにより、より合成的である傾向がある他のほとんどのベンチマークよりもはるかに正確な「実際の」ベンチマーク読み取り