The FreeBSD Projectは11日(協定世界時)、2007年第2四半期(4月~6月)状況報告を公開した。同報告から特にパフォーマンス改善やディスクストレージ、ファイルシステムなどに関する項目などを中心にいくつかトピックを紹介する。

SCHED_SMPおよびSCHED_ULE

新しいスケジューラとしてSCHED_SMPの開発が進められている。SCHED_SMPはULEスケジューラから派生したスケジューラで、7-CURRENTに導入された新しい細粒度スケジューラロックを使ったスケジューラだ。いくつもの負荷状況においてSMP性能が明らかに向上するとされている。アフィニティ性能が向上しているほか、CPUロードバランシング、構造の改善、チューン用のsysctl値導入、そのほか改善が実施されている。同スケジューラはULE 3.0として検討されており、7.0-RELEASEに対してSCHED_SMPとして導入するか、7.1/7.2-RELEASEにおいてSCHED_ULEとして導入するかが検討されている。

現在のSCHED_ULE(ULE 2.0)は多くのバグ修正や性能改善が実施されており、すでに実験的位置づけのスケジューラではないと考えられている。マルチコア/プロセッサにおいてもユニプロセッサにおいてもSCHED_4BSDよりも優れた性能を発揮するとされている。

細粒度スレッドロック

ここ6ヵ月の間、グローバルスケジューラロックを細粒度スレッドロックへ置き換える作業が進められてきた。この結果、ハイエンドマルチプロセッサマシンにおいて明らかな改善がみられ、コンテンションの低減が実現されたと報告されている。プロセス時間の統計情報に若干の問題があるものの、同改善はすでに7-CURRENTには追加されておりきわめて安定して動作していることも確認されている。

MySQLを使ってネックを分析、カーネルコンテンションの削減

ここのところFreeBSDではMySQLをカーネルコンテンションホットスポットを発見するためのテストベッドどして活用している。結果、7-CURRENTではすぐれた性能改善がみられると種々の報告がなされている。最近ではfcntl()においてGiantロックの削除が実施されており、マルチプロセッサシステムにおける書き込み性能の改善が確認されている。この変更は7.0-RELEASEに取り込まれることになる。またselect()に対しても改善変更が進められているが、こちらは時間的に7.0-RELEASEには間に合わないとみられる。7.1-RELEASE以降でのマージ検討となるだろう。

FreeBSD/Xen

FreeBSD/Xenの開発は順調に進んでおり、FreeBSD 7.0-RELEASEまでに仕上がるとみられている。動作は安定しており性能も十分に発揮されているようだ。今のところ7-CURRENTで導入されたGCC 4.2で動作しないためこの問題を解決する必要があるほか、Xenデバイスドライバのnewbusへの移植、PAEサポートの実現、amd64への対応作業などが残っている。

Linux KVM移植

プロセッサが提供しているIntel VTやAMD-Vなどの仮想化機能を活用するLinuxカーネルベースの仮想マシンにLinux KVM (Linux kernel-based Virtual Machine)がある。同機能をFreeBSDに移植する開発が実施されている。ports/devel/linux-kmod-compatに成果物が用意されており、カーネルモジュールとして動作する。仮想化機能を活用するための重要なモジュールになるとみられる。

Gvinum改善、Gvirstor統合

論理ボリュームマネージャ制御プログラムであるgvinum(8)だが、今年に入ってから大幅に書き換えが進められている。依然として実験的な提供だがパッチも提供されており、興味があるデベロッパやアドバンスドユーザは試してみるといいだろう。また仮想ストレージ機能を提供するGEOMクラスであるGvirstorの開発も進んでおり7-CURRENTへのマージ準備が進められている。7.0-RELEASEには機能として統合される見通しだ。

A tar File System

tarファイルをファイルシステムのように扱うためのtar File Systemの開発が進められている。当面の目的として標準的なリードオンリー機能のサポート、大容量tarファイルのサポート、省メモリでの動作の実現、rootファイルシステムとしての動作のサポート、高速動作の実現などがあげられている。tar File Systemが動作するようになるとFreeSBIEといったシステムが構築しやすくなるほか興味深い活用が期待できる。

FreeSBIE+unionfs+tmpfs

FreeBSDベースのLiveCDシステムであるFreeSBIEだが、7.0-RELEASEをめどに新しいバージョンの開発が取り組まれる見通し。今回はunionfsと、新しく追加されたtmpfsを組み合わせて構築するとしている。しかしunionfsとtmpfsは今のところ組み合わせて動作させることができない。同対応作業は現在進められている最中であり、次期FreeSBIEがunionfs/tmpfsを活用して動作できるかどうかはunionfs/tmpfsの開発具合にかかってくると言えそうだ。