FreeBSD Daily Topics

2008年3月12日FreeBSD vs Linuxベンチマーク、ULE CS 25%以上高速化、PC-BSD 1.5RC3登場、fifolog(1)導入、realpath(1)機能拡張、他多数

heads-up

Jeff Roberson

Jeff Roberson氏はMore sysbench noiseにおいて、最近Nick Piggin氏が公開したベンチマーク結果に言及し(同結果ではLinuxカーネルの方が若干スケーラビリティが高い⁠⁠、同結果に満足していることを述べています。以前実施されたLinux 2.6.20.1+glicc 2.6 tcmallocとFreeBSD 7を比較したベンチマークでは、FreeBSDのほうが優れた結果を記録していますが、今回Linuxカーネル2.6.25-rc4ではLinuxのほうが優れた結果を出したことになります。

同氏はすでにコードとしては古くなりつつある安定版の7.0のコードが最新のLinuxカーネルに近い性能を発揮できていることを評価しています。

FreeBSD 8-CURRENTでは、すでにいくつかの改善が実施されスケーラビリティとパフォーマンスが向上しているため、最新のソースで比較するとまた立場が逆転する可能性があります。両者は違いよりも似た部分の方が多いため、同氏はこのようにLinuxとFreeBSDのカーネルデベロッパの間で競争が実施されることは好ましいことだとしています。すでにFreeBSDカーネルは16 way Xeonおよび16 way Opteronにおける調整と試験がはじめられています。

ULE

current - ULEコンテキストスイッチ時間が25%以上軽減されました。ティックごとに1回だけタイムシェアプライオリティを計算するか、スレッドがスリープから復帰するときに計算が実施されるようになった他、プライオリティが変更された後で適切なポイントをキープするようになりました。

また、sched_switch()から直接tdq_runq_add()をコールしtdq_add()を経由しなくなっています。さらにキャッシュの振る舞いを改善するために tdqおよびts_schedを整列しています。

ULE

current - 過度のIPIを回避するsched_preempt()実装が追加されました。また論理的に同一でありtdq_notify()およびsched_setpreempt()の間で繰り返すことがないよう、sched_shouldpreempt()を導入することでpreemption/ipiセッティングコードが正規化されています。

PC-BSD

PC-BSDのRCリリースが相次いでいます。執筆現在ではPC-BSD 1.5 RC3が公開されています。PC-BSD 1.5 RC3ではFreeBSD 6.3がベースになっている他、Xorg 7.3、KDE 3.5.8の採用、新しいシステムアップデートツールの導入、WiFiツール(BSSIDサポート、SSIDサポート)の改善、PBI削除ツールの改善、新しいサウンドディテクションプログラムの導入などが実施されています。

src

realpath(1)

current - realpath(1)の機能が拡張されました。コマンドラインから複数のパスを指定できるようになった他、処理できないパスがある場合に警告を表示しないようにするオプションとして⁠-q⁠が追加されました。

処理にはgetopt(3)が使われています。同機能を追加するにあたって、指定されたすべてのパスが成功如何にかかわらず表示されるようになっています。これはどのパスの処理に失敗したかを明らかにするためです。

fifolog(1)

current - テキストやバイナリ情報を固定記憶装置に記録するコンパクトなラウンドロビン循環ストレージとして使うためのfifolog(1)が新しく追加されました。まだデフォルトビルドには組み込まれていませんが、興味があるデベロッパやアドバンストユーザは試してみるといいでしょう。

sys/netgraph/ng_base.c

current - デフォルトのキューアイテムアロケーションリミットが512から4096へ引き上げられました。これは制御メッセージのアロケーション中にそれらを使い尽くすことで発生するNetgraphオペレーションへの予期せぬ動作を回避する目的があります。

sys/dev/nfe

current - NVIDIA nForce MCP Ethernetドライバnfe(4)において、ローカルjumboアロケータを使うのをやめ、かわりにjumboフレームワークとしてUMAバックエンドページアロケータを使うようになりました。また、この変更で必要なくなったjumboバッファのプロジェクトを要求するjlistロック処理が削除されています。

この変更によってnfe(4)におけるjumboフレームのパフォーマンスが若干向上した他、従来のようにjumboバッファアロケーション失敗に遭遇することはなくなったとされています。

cmx(4)

current - Omnikey CardMan 4040 PCMCIAスマートカードリーダドライバcmx(4)が新しく追加されました。

sys/dev/ata

current - IXP600およびIXP700におけるSATA/AHCIの部分への適切なサポートが追加されました。

src/contrib/bsnmp

current - bsnmpが最新のsyrinx_20080307_bugfixへアップグレードされました。

ports

emulators/wine

Windows互換APIレイヤ実装Wineのportが0.9.57へアップグレードされました。マルチプルOpenGLピクセルフォーマットがサポートされた他、カラープロファイルの改善、ウィンドウ管理に関するバグの修正、フルスクリーンサポートの改善、その他多くのバグが修正されています。

www/hudson

cron(8)などによって実施される繰り返しジョブやCruiseControl/DamageControlのように継続してソフトウェアのビルドや試験を実施するジョブをモニタリングするアプリケーションHudsonのportが新しくPorts Collectionへ追加されました。

links

BSDA Traning

Puget Sound TechnologiesがBSD Associate Certification向けのトレーニングクラスを実施しています。講師はJeremy C. Reed氏、2008年4月22日から25日まで、テキサスはFort Worthにおいて実施されます。興味のあるアドバンストユーザは受講を検討してみてください。

おすすめ記事

記事・ニュース一覧