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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

Q&A

解決済

1回答

5373閲覧

Apacheで最大プロセス数に達した時に古いプロセスから終了させたい

toon

総合スコア26

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

0グッド

0クリップ

投稿2018/08/09 01:09

前提・実現したいこと

CentOS7でWebアプリケーションを開発しているのですが、Apacheのプロセス数が増えすぎて落ちてしまう現象が発生しております。
解決策としてApacheの最大プロセス数(MaxClients)に達した時に古いプロセスから終了させていきたいのですが、
適切な設定がわからず困っております。

解決できる方法をご存知の方、ご教授お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

プロセスの死活はApacheが自動的にするので関与しなくて良いです。

この場合問題になっているのはプロセスの最小数、最大数です。サーバの処理できる以上のプロセスが立ち上がるとOSがプロセスを殺し始めます。するとApacheが最小数を下回ったと判断しプロセスを起動→OSが殺すを繰り返しハングします。
もしかしたらプロセスの処理上限もあるかもしれませんが、これはサーバのアプリとスペックの兼ね合いなので自分で調整してください。

設定値はApacheチューニングをみると良いかもしれません。

投稿2018/08/09 01:53

namda

総合スコア705

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

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

toon

2018/08/09 06:12

ご回答ありがとうございます。 プロセス数が増えてもサーバーのスペック的に負荷は耐えられるものでしたのでプロセスが殺されるといったところまではいっていないようです。 最大数の設定だけだと、超えた時にアプリケーションに接続できず待機状態になってしまうという記載を見ました。 接続しにいけなくなるというのは問題なのでそこを解消する方法はなにかないでしょうか?
namda

2018/08/09 07:08

ならば逆に最大数を増やせば良いのではないでしょうか
namda

2018/08/09 07:21

合わせてコメントしますが、 Apacheも理由が合ってプロセスを握ってます。それを殺すと接続してる人は中断された形になり、それが頻発するようになれば信頼性が非常に悪くなります。 そういったご認識、されているでしょうか。 もしアプリが待つというのであればアプリが極端に重いかバグの可能性が高いです。 アプリ側のバグの場合、先に言及しましたがプロセスの処理上限であるMaxRequestsPerChildを設定すると良いでしょう。10とすれば10リクエスト毎に生まれ変わり、メモリリークを防いでくれます。(メモリリークが原因なら) もしそれで治らない場合、抜本的な方策が必要です。 例えば重たい処理は一旦リクエストを返し、ポーリング等で完了を監視し完了ご後通知する仕組みです。 多アクセスが原因ならばロードバランシングの検討も必要になるでしょう。 単純なサイトを表示するだけならApacheは旧来のCPUでも秒間数百程度はなんなく捌けると念頭にいれ検討してください。
toon

2018/08/09 23:19

TomcatとApacheを連携させて使用していましたが、 本現象はTomcatの設定のセッションタイムアウト時間を参照していたため起きていたことがわかりました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問