FreeBSD 10.3-RELEASEには11-CURRENTに導入されたマルチスレッド対応のxz(1)コマンドがマージされています。マルチコア(マルチスレッド)のシステムで利用すると圧縮時間の短縮が期待できます。デフォルトでは有効になっていませんが、オプションを指定することで機能を有効にすることができます。今回はこの機能を紹介します。
マルチスレッド対応xz(1)コマンド
xz(1)はデータ圧縮コマンドのひとつです。現在ではFreeBSDで用意する配布物はxz(1)で圧縮されるようになっています。それはxz(1)コマンドが類似のツールと比較して圧縮率が高く、展開にかかる時間が高速だからです。配布物のようにサイズが小さく展開にかかる時間が短いほどよいというケースにおいて、xz(1)コマンドは適切な選択肢というわけです。
そのかわり、xz(1)コマンドは圧縮に時間がかかります。そこでFreeBSD 10.3-RELEASEに追加されたマルチスレッド機能です。今回導入されたのは圧縮時に複数のスレッド(コア)を利用するための機能で、圧縮時間の短縮化が見込めます。この手の処理はマルチコア/スレッドの高い効果が見込める部分です。
マルチスレッド対応のxz(1)では-Tオプションで利用するスレッドの数を指定します。FreeBSD 10.3-RELEASEではオプションなしで通常の処理、-T 2でスレッド数2個、-T 3でスレッド数3個のように同時に実行するスレッド数を増やすことができ、-T 0でプロセッサの提供している論理コア数(スレッド数)までスレッドを生成して処理を行います。
処理速度と消費メモリ
スレッド(論理コア)が4のマシンを使って処理速度と消費メモリを調べてみます。まず次のように圧縮の対象となるダミーのデータファイルを作成します。
次に、/usr/bin/timeを使ってxz(1)コマンドの実行にかかった実時間と、あとは最大のレジデントセットのサイズを取得します。
結果をグラフにまとめると次のようになります。
実行に利用したマシンは論理コアが4つですので、-T 4と-T 0は同じ意味になります。実際、測定結果もほとんど同じです。
スレッド数を増やすとその分実際の実行時間(real)が短くなり、かつ、メモリの消費量が増えていることを確認できます。処理するデータ量は同じですから、合計した実行時間(user)はほとんど変わっていません。ほとんど想定通りの挙動が得られていることがわかります。
将来的には展開時にもマルチスレッド対応
-T 0の挙動はいずれはデフォルトになるように思いますので、コアの多いマシンほど圧縮処理が高速になるのではないかと思います。圧縮に時間がかかるのはxz(1)の弱いところですので、この部分が高速化するのは好ましいことだといえます。
xz(1)の特徴は高い圧縮率と高速な展開時間にあります。将来的にはこの展開に関してもマルチコア/スレッド対応機能が入るものとみられますので、より高速にデータ展開が可能になるものとみられます。
FreeBSD勉強会 告知
第52回 5月26日(木)19:00~ FreeBSD翻訳に貢献しよう!基本的なツールの使い方
ソースコードが読めないからドライバを書いたりカーネルを書き換えたりできないし、新しくportsを作るのもちょっと難しい……そう思ってはいませんか? プロジェクトに貢献するのはなにもソースコードだけではありません。FreeBSDにはFreeBSD Handbookという優れたドキュメントがあります。このドキュメントを翻訳するだけでも、多くの日本のユーザに貢献することになります。
FreeBSD Docチームは最近POの機能を取り込んだ翻訳システムを構築して活用しています。このシステムを導入する前に比べると自動化できる部分も増えましたし、システマティックに変更部分を判断することもやりやすくなりました。こうした新しい翻訳作業に関してdocチームは各国で開催されるカンファレンスやサミットでチュートリアルを開催するなど、こうした仕組みを広く伝える取り組みをおこなっています。
今回の勉強会では、翻訳するにあたって使われているツールやサービスについて紹介したり、実際にどうやって作業を行っているのかの紹介を実施します。実際に翻訳作業をするわけではなくても、新しいドキュメント管理の方法を学ぶという上でも役に立つのではないかと思います。多くの方のご参加をお待ちしております :)
参加申請はこちらから。
第53回 6月22日(水) 19:00~ ZFSマスターベーシックス
ストレージシステムや仮想化システムのファイルシステムとしてデファクトスタンダードになりつつあるZFS。FreeBSDでネイティブに動作するファイルシステムで、FreeBSDをストレージシステムや仮想化システムのオペレーティングシステムとして採用する強い同期になっています。
ZFSについては聞いたことはあるけど使ったことはない、どんなものか知りたい、使ってみたい、という方向けの勉強会です。ZFSの概要や基本的な使い方などを紹介します。
参加申請はこちらから。