高速WebサーバMighttpdのアーキテクチャ

http://www.iij.ad.jp/company/development/tech/activities/mighttpd/index.html
http://mew.org/~kazu/proj/mighttpd/en/

コアごとにプロセスを起動してすべてのコアを活用し、イベント駆動で性能を引き出し、その上で軽量スレッドを使ってコードを簡潔に保つ方法は、現時点では最良のサーバ・アーキテクチャだと思いますが、1つ注意点があります。
サーバがたくさんシステムコールを発行すると、思ったほど性能が出ないのです。これは、システムコールを発行すると、コンテキストスイッチが起こって、CPU時間がカーネルに割り当てられ、すべての軽量スレッドが止まってしまうことが原因です。そのためMighttpdでは、例えばファイルに対する stat() システムコールの結果を一定時間キャッシュし、システムコールの発行数を低減しています。
関数型言語は遅いとか実用的でないと誤解している方もたくさんいらっしゃるようですが、我々のベンチマークでは、Mighttpdはnginxと比肩する性能を出しています。