ホームページ > バックエンド開発 > PHPチュートリアル > 同時実行性が高い場合、Apache が頻繁に再起動する

同時実行性が高い場合、Apache が頻繁に再起動する

WBOY
リリース: 2016-06-13 12:13:50
オリジナル
1835 人が閲覧しました

高い同時実行性では、Apache が頻繁に再起動します
いくつかのサーバーは Windows2008 システムです
各サーバーの Apache の最大同時実行数は ThreadsPerChild 1000 に設定しました
最近、元のプログラムを最適化するには、次のことが必要です長時間実行されるマルチスレッド プログラムを作成します (PHP は Apache のマルチスレッドを利用して実装します)。スレッド数は 50 です。
これらの長時間実行プログラムは、最長 1 時間実行されると一律に停止することがわかりました。原因を探した結果、プログラムが停止するときに「子プロセス」というメッセージが表示されることがわかりました。 Apache のエラー ログにステータス 255 -- 再起動中です。」が表示され、Apache が自動的に再起動されます。
そこで、各サーバーの Apache のエラー ログを確認したところ、サーバーの同時実行数が高くなるほど、Apache がより頻繁に再起動されることがわかりました。同時実行数が約 200 の 1 つのサーバーは、実際に数分ごとに再起動しました。
その後、1 つのスレッドを使用して長時間実行プログラムを実行しようとしたところ、1 日後には問題がなかったことがわかり、50 スレッドに切り替えた後、1 時間以内に再び停止しました。
私はもう混乱しています。Apache の設定は複数のポートと同時実行数を設定するだけで、その他はすべてオリジナルの設定です。見落としている重要な設定はありますか?
しばらくオンラインで検索しましたが、適切な解決策がありませんでした。
「子プロセスがステータス 255 で終了しました -- 再起動中です。」Apache の再起動の問題を解決するにはどうすればよいですか?
php がプログラムを長時間実行し、Apache が自動的に再起動した場合に自動的に回復するにはどうすればよいですか?

-----解決策のアイデア----------------------
あなたはこのように httpd.conf ファイルを変更します。ボトルネックは一般に mysql にあると思います。それでもうまくいかない場合は、思い切って nginx に変更してください。私も少し前はそうでしたが、今は nginx を使っていてとても満足しています。

<br /><IfModule prefork.c><br />    StartServers           5<br />    MinSpareServers        5<br />    MaxSpareServers        10<br />    ServerLimit            2000<br />    MaxClients             1500<br />    MaxRequestsPerChild    1000<br /></IfModule><br />
ログイン後にコピー

-----ソリューションのアイデア----------------------
子プロセスステータス 255 で終了 -- 再起動中
子プロセスの終了ステータスは 255 です——再起動中

Windows の php はスレッドをサポートしていません

fsockopen を介してシミュレートすると、 active http プロセスが開始されました。 Apache の場合、これはブラウザによって開始されるものと変わりません
同時 http リクエストが Apache の事前設定された同時実行数を超えると、キューイングのみが発生しますが、クラッシュは発生しません
もちろん、同時実行性 メモリによって保証される必要があります。メモリ不足、クラッシュは当然です

また、http レスポンダーが長時間出力しない場合、Apache はハングします。これは Apache の問題ではなく、対応するプログラム

の問題です。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート