FreeBSD Daily Topics

2008年3月20日Dragonfly BSDスケール、atacontrol(8)にスピンダウン機能、split(1)に分割数指定、ZFS mmap(2)修正他

heads-up

FreeBSD Linux DragonFly

current - Kris Kennaway氏は、Performance comparison of FreeBSD 7.0 to FreeBSD 4.11 and Dragonfly BSD 1.12(Mar 2008)においてFreeBSD 7と他のOSのベンチマーク結果を公開しています。Linux、NetBSDなどとの比較結果はこれまでの結果とほぼ同じで、FreeBSD 7が優れたマルチコアスケーラビリティを実現していることが確認できます。

同結果ではとくにDragonFly BSD 1.8と1.12との比較結果が重点的に紹介されており、DragonFly BSDがマルチコアに対してスケールしないこと、SMP機能を有効にするとロスのせいで性能が劣化すること、分野によってはFreeBSD 4.11よりも性能が劣化していることが指摘されています。

一方、FreeBSDはまだ最適化されていないコードがあることがすでに認識され、現在改良が続けられています。各種最適化が実装されたあとはさらにパフォーマンスが向上する見通しです。以前取り上げたようにDragonFly BSDの開発がマンパワー的に十分ではないことは認識されているため、この結果だけを持ってDFを疑問視することは問題がありますが、現状で性能に大きな開きが存在していることは事実のようです。

今後どの段階でスケーラビリティが向上しはじめるかが、DFにおける注目ポイントとなりそうです。

src

sys/compat/linux
sys/i386/linux
sys/amd64/linux32

current - リアルCPUアフィニティセッティングプリミティブを使ってsched_setaffinity()およびget_setaffinity()が実装されました。

atacontrol(8)

current - ⁠spindown⁠機能がatacontrol(8)に追加されました。同機能を活用すると、数秒の間(秒数は設定可能)リクエストが来なかった場合にスピンおよびディスクをダウンさせることができます。次のリクエストが来た段階でスピンは元に復帰します。リクエストが機能のきっかけになるため、たとえば⁠spindown⁠機能を設定するには次のようにコマンドを実行するとされています。

spindown機能を設定する例:設定後にddでリクエストしているところがポイント
# atacontrol spindown ad10 5
# dd if=/dev/ad10 of=/dev/null count=1

⁠spindown⁠機能をそもそも無効にしたい場合は、次のようにタイムアウトを0に設定します。

spindown機能をそもそも無効にしたい場合の設定例
# atacontrol spindown ad10 0
sys/vm

current - だいたい7年くらい前、vm/vm_page.cファイルはvm/vm_contig.c、vm/vm_page.c、vm/vm_pageq.cの3つのファイルへ分割されました。vm/vm_pageq.cファイルは4つの短い関数があるだけで、しかもうち2つはvm/vm_page.cからのみ使われています。

FreeBSD committerであるAlan Cox氏は、今後同ファイルが成長する見通しもないことから、vm/vm_pageq.cをvm/vm_page.cに統合すべき時期にきたとしてマージを実施しました。マージにもとないすでに使われていないPQ_MAXCOUNTは削除され、vm_pageq_enqueue()はvm_page_enqueue()へと名称が変更されました。

split(1)

current - バイトを指定してファイルを分割するのではなく、分割する個数を指定して分割を実施するためのオプション'-n'がsplit(1)コマンドに追加されました。

src/sys/contrib/opensolaris/uts/common/fs/zfs/
zfs_vnops.c

current - VMサブシステムの変更に対してZFSにおけるmmap(2)動作に関して、修正が実施されました。ZFSをファイルシステムとして採用した場合、これまでの実装ではどうもmmap(2)の処理に問題があり、場合によってはファイルの内容が変更されたりメタデータが破壊されることがあったようです。ZFSを使う場合mmap(2)を使うアプリケーションの利用は避けたほうが良いでしょう。問題が発生した場合には報国を実施してください。

おすすめ記事

記事・ニュース一覧