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のモジュール分割ポリシーはホントに惚れるなぁ。
かっこよすぎる。