OSの機能をフル活用してHTTPサーバの動きを高速化するHTTPアクセラレータ

Varnishというアプリケーションをご存知だろうか。Varnishは、2006年9月20日(ノルウェー時間)にバージョン 1.0がリリースされた、比較的新しいHTTPアクセラレータである。開発言語はC言語で、高速に動作するという特徴がある。以前発表されたApache 3.0構想においてVarnishのVCL(Varnish Config Language)の採用が検討されるなど、現在、多くの開発者の間で注目を集めている。また、今月20日(東部標準時)にはバージョン 1.0.4がリリースされたほか、9日(ノルウェー時間)には次期メジャー版とみられるVarnish 2.0の開発が開始されたことが公式に発表されている。

Varnishは、FreeBSD 6系とLinux 2.6系を動作プラットフォームとして想定しており、これらのOSが提供している仮想メモリシステムやI/O機能をフルに活用して動作するように実装されている。HTTPサーバの動作を高速化するものだが、OSの機能をフルに発揮するという部分に多くの実装テクニックが組み込まれており、高速化実装のための参照技術としても利用されるプロダクトだ。

Varnishは、特にCMS(Content Management System)のようにドキュメントやデータの発信を行うサーバの動作を高速化するためのアクセラレータで、すでにかなりの実績を挙げている。

Varnishの開発はFreeBSDのアクティブデベロッパの1人であるPoul-Henning Kamp氏が主に担当している。仮想メモリシステムやI/O機能など、OSの機能をフルに活用して動作するアプリケーションの開発が実現できた背景には、同氏のようにOSのカーネルに精通したデベロッパを採用したことが大きいといえるだろう。同氏は18日(東部標準時)、BSDCan 2007においてVarnishの発表を行っているので、ここではその概要をかいつまんで紹介する。