水曜日, 17 1 月 2007

Apacheチューニング: ロギングを高速化する この記事(Apacheチューニング: ロギングを高速化する)を「はてなブックマーク」に追加 この記事をクリップ! この記事(Apacheチューニング: ロギングを高速化する)を「del.icio.us」に追加

« memcachedを使ったPHPのシングルトン実装 | Main | Macでバックアップ: ChronoSyncを使う »
あまり知られていません(と思われる)がApache2(2.0.41以降)にはアクセスログの書き出しをメモリにバッファリングし高速化させるという機能があります。
今回はその機能を有効にするとどれぐらい速くなるのか調べてみました。

設定方法はhttpd.confに
BufferedLogs On
と追加するだけでログのバッファリングが有効になります。

以下ベンチマークを取った結果です。

バッファリング無効984 Request/Sec
バッファリング有効1033 Request/Sec
(参考)ロギング無し1055 Request/Sec
※小さなhtmlファイルに対してab -c 100 -n 1000を何度か繰り返した結果の平均です。

体感では違いを感じられないとは思いますがベンチを取るとおよそ5%程Request per secondの値が上がっていました。
静的なファイルが中心のリクエスト数の多いWebサーバであればこれを有効にすることによって多少は速くなるのではないでしょうか。
1行追加するだけで(少し)パフォーマンスアップできるのでオススメです。

追記:
BufferedLogsディレクティブは未だにexperimentalなままなので使用には注意が必要です。
Posted by tsujitako at 11:35 午後 in Linux/