FreeBSD Daily Topics

2013年3月11日FreeBSD、マルチコアで性能向上パッチ登場

src

Unmapped I/O

FreeBSD開発者であるJeff Roberson氏およびKonstantin Belousov氏がマルチコア/メニーコアシステムにおけるFreeBSDの動作性能を向上させるパッチを開発し、試験的に公開をはじめました。http://people.freebsd.org/~kib/misc/unmapped.13.patchで公開されています。4コアという、現在ではすでに古いマルチコアプロセッサですら、UFSにおけるファイル読み込みにおいて、システム時間が30%短縮したと報告されています。

FreeBSDは大規模SMPシステムにおいてパフォーマンス改善の余地が残されていることが知られています。VMIOバッファの作成と削除のタイミングで、すべてのコアに対してTLBを無効にする必要があるのですが、ここが性能のボトルネックになっています。

TLBの無効化はプロセッサ間割り込みブロードキャストを送信することで実行されます。割り込みを受けたコアはコアごとに実行パスが中断され、それだけリクエストの遅延が生じます。I/O要求処理はデータを保持するためにカーネル内にバッファを要求しますので、コアの多いマシンになればなるほど、TLBの無効化はI/Oスケーラビリティのボトルネックになります。

この無効化のやり取りの中で、ユーザモードとカーネルページキャッシュの間でデータの往復コピーが発生するのですが、マッピングされたこれらデータが使われることはほとんどなく、つまり無駄な処理が発生していることになります。この処理を高速化するテクニックはすでに存在しており(amd64ならダイレクトマップなど⁠⁠、今回公開されたパッチは、このテクニックを整理した形でまとめたものです。

マルチコア/メニーコアシステムを活用したビッグデータ処理、HPCなどの必要性があるなか、FreeBSDの処理性能が向上することは価値があります。これらパッチは最終的にFreeBSD 10.0-RELEASEに取り込まれることになるとみられます。FreeBSD 10.0-RELEASEは今までよりもHPCやビッグデータ処理に向いたプラットフォームになるものと見られます。

おすすめ記事

記事・ニュース一覧