apacheの prefork.cとworker.cの違い

In: apache

12 5月 2011

/etc/httpd/conf/httpd.conf
を見ると、KeepAliveとかMaxClientとかの設定をする部分が、2つあることに気付きます。

 # prefork MPM
 
StartServers       2
MinSpareServers    5
MaxSpareServers   20
ServerLimit      32
MaxClients       32
MaxRequestsPerChild  0
 
# worker MPM
 
StartServers         2
MaxClients         30
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0

それぞれ一体何が違うのかというと…。

apacheの prefork.cとworker.cの違い

リクエストに対して子プロセスを起動していく方式=prefork
リクエストをスレッドにより対応していく方式=worker

という事のようです。

広告

じゃあ自分が動かしているApacheは一体どっちの方式で動いているのか?
これは、コンパイル時にオプションで設定するんですが、おそらくデフォルトではprefork型のようです。

どっちで動いているかを調べる

それを調べるコマンドはこちら。

[root@ ~]# /usr/sbin/apachectl -V

環境によってはapache部分が違います。

[root@ ~]# /usr/sbin/apache2 -V

いずれにせよ、これでバージョン情報がズラズラと返ってきますが、その中に

Server MPM: Prefork

という記述があります。この場合はprefork型ですね。
もしくは、コンパイル情報の

Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”

という箇所を探してください。

これで、Apacheの設定をちゃんとピンポイントで適切に行なうことができるようになって、めでたしめでたし。

コメント

1 Response to apacheの prefork.cとworker.cの違い

トラックバックURL:

Avatar

Apache | gozonji.jp

9月 24th, 2012 at 6:35 PM

[…] apacheの prefork.cとworker.cの違い […]

Comment Form

About this blog

ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。

カテゴリー

カテゴリー

アーカイブ