2008年10月18、19日の2日間、フランスのストラスブールにおいて「EuroBSDCon 2008」が開催された。本誌では、同カンファレンスの中から特に興味深いセッションをピックアップしてお伝えしていこう。
ネットワーク処理を高速に、FreeBSDをFreeBSDたらしめるもの
登場してから現在でも、FreeBSDがもっとも活用されているのは高性能ネットワークサーバだ。FreeBSD 8-CURRENTでPowerPC、ARM、MIPS向けの移植が活発に進められているが、背景にはこれらプロセッサを搭載したネットワークアプライアンスの開発がある。組み込みでもネットワークの活用が主目的というわけだ。ネットワーク処理を高速にこなせる点はFreeBSDをFreeBSDたらしめている最大の特徴だ。
EuroBSDCon 2008でRobert N. M. Waston氏が主にFreeBSD 7から8にかけて実施してきたネットワーク処理の高速化技術を発表した。FreeBSDがどうやってTCP/UDPを高速に処理しているか、その技術を見渡すうえで興味深い発表だ。ここでは氏の発表を簡単にまとめて紹介する。
Robert Waston氏は活発に開発を継続しているFreeBSD開発者。現在ではTrustedBSDに代表されるセキュリティ関連やネットワークスタックの高速化などを担当している。coreチームのメンバーでもありFreeBSD Foundationのメンバーでもある。近年のFreeBSD開発において欠かせない人物だ。
ハードウェア変化によるOSのネットワーク設計変更
ネットワークスタックの基本的な設計はBSD時代におこなわれたわけだが、ハードウェア事情の変遷にともなって設計そのものに変更の必要性が生まれている。代表的な事情は次のとおり。
- 計算よりもメモリアクセスの方が性能に影響を及ぼすようになった: キャッシュ中心の設計へ変更
- 1コアあたりの処理性能成長が鈍化してきた: マルチコア/プロセッサで性能がでるように設計を変更
- ネットワーク通信速度の成長の方がプロセッサの処理速度向上を上回っている: ハードウェアオフロードの活用
こうしたハードウェアのトレンドをうけて、OSの設計も次のように変更されてきている。
- キャッシュフットプリントコンテンションの管理に注力 (命令とキャッシュミスとのバランスが重要に)
- 増え続けるコア数に対して並列に処理を実施して性能を向上できるように設計および実装を変更
- ハードウェアオフロードが活用できるようにネットワークスタックを変更
FreeBSDのネットワークスタックはこうした事情を反映して改善と対応が進められている。