Apache を HTTP サーバーとして使用するサイトでは、必然的にこの問題が発生します。Apache の負荷は非常に低いですが、Web サーバーへのアクセスが非常に遅いということです。スクリプトプログラムの原因を除けば、基本的にはApacheの設定の問題です。
次のコンテンツは、この問題の解決に役立つ可能性があります。
1. まず、Apache で使用される MPM (Multi-Processing Modules) を理解する必要があります
MPM は Apache の中核であり、その役割はネットワーク接続を管理し、リクエストをスケジュールすることです。
Apache2.0のMPMは3種類(perfork、worker、event)に分かれています。 perfork は Apache1.3 から継承されたプロセス管理方式を採用しており、より信頼性の高いパフォーマンスと優れた互換性を提供します。worker は Apache2.0 で追加されたスレッド制御方式を採用しており、システムのオーバーヘッドとプロセスを節約します。 perfork よりも多くのデータを処理できますが、互換性があまり良くなく、多くの古いプログラムはワーカーの下では動作しません。イベントはまだ実験段階にあり、各タスクに異なるプロセスを割り当てる必要があります。この時に使用されます。
コマンド httpd -l
を使用して、Apache によって現在どの MPM が使用されているかを取得できます。
この記事では、perfork メソッドについてのみ説明します
2. perfork の仕組みを理解する
Apache2.0 の設定ファイル httpd.conf を確認すると、おおよそ次のような perfork 設定セクションが表示されます。
サーバー制限 256
スタートサーバー 5
MinSpareServers 10
MaxSpareServers 15
最大クライアント数 256
子供あたりの最大リクエスト数 4000
Apache が起動されると、Apache は自動的に StartServers プロセスを作成し、アイドル プロセスの数を MinSpareServers と MaxSpareServers の間で維持するよう最善を尽くします。
アイドル状態のプロセスが MinSpareServers より小さい場合、Apache は 1 秒あたり約 1 つの割合で新しいプロセスを作成します。
アイドル プロセスが MaxSpareServers より小さい場合、Apache は余分なアイドル プロセスを削除し、サーバー リソースを解放します。
Apache1.3 では、プロセスの最大数は MaxClients によって制御され、最大値は 256 にのみ設定できます。ただし、Apache2.0 では、構成の先頭に ServerLimit 項目を追加することで、256 の制限を突破できます。この場合、MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild は、処理後に各プロセスが自動的に破棄されるリクエストの数を制御するために使用されます。このパラメーターを 0 に設定すると、無制限 (つまり、プロセスは破棄されません) を示すことができます。
3. パフォーマンスを最適化する
まず、比較的負荷の高い Web サイトの場合、サーバーが 256 のプロセス制限に達すると、次のアクセスをキューに入れる必要があるため、サーバーによっては負荷が高くなります。高くはありませんが、アクセスが遅い理由の 1 つです。したがって、まずサーバーがビジー状態にあるときのサーバー上のプロセスの数を理解する必要があります。
コマンド ps -ef|grep httpd|wc -l を使用して現在のシステムの Apache プロセスの数を知ることができ、ServerLimit と MaxClients を設定することでサーバーのソフト拡張の目的を達成できます。
そして、トラフィックのピーク時によく発生するのは、突然多くの同時接続が発生し、その後突然アクセスが大幅に減少することです。 Apache が十分な数の準備プロセスを準備していない場合、アクセスは Apache が 1 秒あたり 1 つの新しいプロセスを追加するのを待つことしかできず、その後、冗長なプロセスを削除するだけで済み、アクセスが大幅に減少します。スピード。 StartServers、MinSpareServers、および MaxSpareServers を適切に増やすことができるため、Apache が無駄な作業に忙しくする必要がなくなります。
最後に、MaxRequestsPerChild を 0 に設定しないことを強くお勧めします。これを 0 以外に設定すると、Apache プロセスをメモリ リークから保護できます。これは、Apache 上で実行されているアプリケーションがいつ問題を起こしてメモリ リークを引き起こすかわからないためです。
設定後は次のようになります:
サーバー制限 1000
スタートサーバー 30
最小スペアサーバー 30
MaxSpareServers 45
最大クライアント数 1000
子供あたりの最大リクエスト数 4000
詳細な手順 http://www.liaoxiansheng.cn/?p=496

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール
