質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

1187閲覧

Apacheのserver-statusの表示について

umegon

総合スコア24

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2019/02/08 02:15

Apacheのserver-statusを有効にしてみたのですが、表示に気になるところがありますので質問させて頂きました。

server-statusは上から、
Webサーバーの情報
スコアボード(wとか_が表示されるところ)
スコアボードの説明
サーバープロセスの一覧があると思います。

このサーバープロセスの個所が起動時は1行なのですが、アクセスを行うと増えていくのは当たり前だと思うのですが、表示が減らないです。
(SSの個所は秒数がどんどん増えているので処理はしていないようです。)
(KeepAliveは5で設定しています。)

しかしスコアボードの表記は以下のようになっており、止まっているようにも見えます。

1 requests currently being processed, 63 idle workers______________________________________W_________________________

上記のように、サーバープロセスの個所の表示行数が減らないのは正常なのでしょうか?
最後に処理した内容が起動したデーモンの数だけ残るのかなと考えているのですが、いまいちそのことについて書いているサイトが見つからないので知っている方ご教示いただけると有難いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Apache の MPM の設定によって挙動は変わりますが、基本的には すぐには減らない、完全に減らすことはない です。
プロセスを起動するコストは割と高い方なので、必要になってからプロセスを追加するよりは事前に起動して待機させた方がよい、という判断に基づき、あらかじめスペアのプロセスを用意するようになっています。
ですからプロセスが空いたからといって、すぐさまプロセスを止めるようなことはしません。

MPM が prefork の場合(Linux 系はたいていこれがデフォルト)、MinSpareServers / MaxSpareServers ディレクティブによりプロセス数が制御されます。

投稿2019/02/08 03:04

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umegon

2019/02/08 03:30

ご回答ありがとうございます。 プロセスを起動するというのはコストが割と高い行為なのですね。 待機している状態であることが分かって助かりました。 WinNTを使用していますが、WINNTでもすぐプロセスを止めるという挙動は無さそうですね。 前に設定を学んでいた時に、prefork等よりWINNTは設定項目が少なく、MinSpareServers はWINNTでは設定できないような内容を見たことがあるので確認してみようと思います。 ありがとうございます。
tacsheaven

2019/02/08 03:59

mpm_winnt はプロセスは1固定で、スレッド数でコントロールです。
umegon

2019/02/08 04:13

Apache Server Statusで確認すると、Server MPM: WinNTにはなっているのですが、 Apache Server Statusの↓には複数行表示されています。 解説サイト等ではpreforkなどが例に出ているのでプロセス一覧と説明されていますが、WinNTのときはスレッド一覧になるんですね。 今、動かしている環境では、ThreadsPerChildで数を設定している状況です。
tacsheaven

2019/02/08 04:32

status で表示しているのはworker(requestを処理するもの)なので、mpm_winnt ではスレッド数分だけありますし、prefork であればプロセス数×x(一プロセス当たり同時処理リクエスト数)になります。
umegon

2019/02/08 04:45

worker(requestを処理するもの)を表示しているのですね。 「prefork であればプロセス数×x(一プロセス当たり同時処理リクエスト数)」こちらもpreforkを使用する時に参考にさせて頂きます。 見ていたサイトでスレッド数と記載が多かったので、もやもやが晴れすっきりしました。有難うございます。
tacsheaven

2019/02/08 06:47 編集

1 requests currentry being processed, 63 idle workers ですから、 「1個のリクエストが現在処理中(being processed)、63のworkerが待機中」 であって、表示単位が worker であることが分かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問