src
- Unmapped I/
O FreeBSD開発者であるJeff Roberson氏およびKonstantin Belousov氏がマルチコア/メニーコアシステムにおけるFreeBSDの動作性能を向上させるパッチを開発し、
試験的に公開をはじめました。http:// people. で公開されています。4コアという、freebsd. org/~kib/ misc/ unmapped. 13. patch 現在ではすでに古いマルチコアプロセッサですら、 UFSにおけるファイル読み込みにおいて、 システム時間が30%短縮したと報告されています。 FreeBSDは大規模SMPシステムにおいてパフォーマンス改善の余地が残されていることが知られています。VMIOバッファの作成と削除のタイミングで、
すべてのコアに対してTLBを無効にする必要があるのですが、 ここが性能のボトルネックになっています。 TLBの無効化はプロセッサ間割り込みブロードキャストを送信することで実行されます。割り込みを受けたコアはコアごとに実行パスが中断され、
それだけリクエストの遅延が生じます。I/ O要求処理はデータを保持するためにカーネル内にバッファを要求しますので、 コアの多いマシンになればなるほど、 TLBの無効化はI/ Oスケーラビリティのボトルネックになります。 この無効化のやり取りの中で、
ユーザモードとカーネルページキャッシュの間でデータの往復コピーが発生するのですが、 マッピングされたこれらデータが使われることはほとんどなく、 つまり無駄な処理が発生していることになります。この処理を高速化するテクニックはすでに存在しており (amd64ならダイレクトマップなど)、 今回公開されたパッチは、 このテクニックを整理した形でまとめたものです。 マルチコア/メニーコアシステムを活用したビッグデータ処理、
HPCなどの必要性があるなか、 FreeBSDの処理性能が向上することは価値があります。これらパッチは最終的にFreeBSD 10. 0-RELEASEに取り込まれることになるとみられます。FreeBSD 10. 0-RELEASEは今までよりもHPCやビッグデータ処理に向いたプラットフォームになるものと見られます。