Yahoo でカスタマイズされた apache のまとめ
Yahoo で使用されている独自カスタマイズされた apache についてのプレゼンテーション資料が公開されていたので、自分なりにまとめてみました。
Hacking Apache HTTP Server at Yahoo!
- HTTPヘッダーの "Server:" は出力しない
- apache 1.3 がベース
- 安定動作が重要
- スレッドは使用しない(動作が複雑)
- ログフォーマットは独自フォーマット
- ログローテンションは独自の仕組みを持つ。シグナルもパイプも使用しない
- レスポンスコード 30x は最小限のものだけ出力
- コンテンツは gzip 圧縮して出力(HTTP/1.1)。CPU 使用率が 90% を超えると自動的に gzip 圧縮をストップ
- 起動と同時に最大数のプロセスを生成する
- プロセスがアイドル状態になっても終了しない
- HTTPリクエストをカーネル側でバッファして、apacheが効率的に動作できるようにする
- 全てのレスポンスを送信後、すぐにソケットを閉じる。クライアントが全てのデータを受け取ったかどうかは気にしない
- HTMLに自動的にホスト名の情報をコメントとして挿入。ユーザからHTMLを送ってもらって原因追求ができるように
- SSLの処理には専用のアクセラレータ(ハードウェア)を使用
- 全ての https(443) へのアクセスは http(80) へ渡される
- コアダンプはさせないようにする
- プロセスの状態を見る独自ツール - ysar
Yahoo のように巨大なシステムになってくると、
こういった細かいところまでカスタマイズが必要なんでしょうね。
細かいカスタマイズによる高速化は全体から見れば大きな効果になるわけで。