FreeBSD Daily Topics

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

この記事を読むのに必要な時間:およそ 0.5 分

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やビッグデータ処理に向いたプラットフォームになるものと見られます。

コメント

コメントの記入