Debian EtchにMPMがpreforkのApache2.2をいれる

どーもApache君が仮想メモリを数百MB単位で消費なさるので色々調べていたら、どうもMPMが worker だと仮想メモリを食う代わりに prefork よりも動作が軽いらしいという情報を発見。
それぞれのMPMの特徴を超単純にあげると・・・

  • worker
    • プロセス&スレッドのハイブリッド君。基本スレッドでがんがん回すが、プロセスを複数立ち上げとく事で安定性も確保。
  • prefork
    • プロセスでがんばる子。予め処理用のプロセスをがんがん立ち上げておく。

なのかな?
そしてぱっとみ prefork のがメモリ食いそう・・・


でもまぁ、やってみないとわからんので駄目もとでチャレンジ。
まずは念の為、現状どのMPMで動いてるのかチェック!

# /usr/sbin/apache2 -V
Server version: Apache/2.2.3
・・・
Server MPM:     Worker
・・・

思いっきり worker ですね。
と言うわけでまずは worker を削除します。

# apt-get remove apache2-mpm-worker

んでもって次に prefork をインストールっ

# apt-get install apache2-mpm-prefork

出来た出来た。
MPM変わったかなー

# /usr/sbin/apache2 -V
Server version: Apache/2.2.3
・・・
Server MPM:     Prefork
・・・

変わった!!
そして仮想メモリの使用量も10MB位まで減りました。
超激減・・・


にしても、Debianのモジュール分割ポリシーはホントに惚れるなぁ。
かっこよすぎる。