過去 2 日間で、一連の Apache サーバーを構築しました。各サーバーには 4G のメモリがあり、最初に設定された接続数が少なすぎて、後でユーザーの要求に応答するのに時間がかかりました。 , Apache 2.0.59 設定ファイル httpd.conf を変更しました。
引用
# プリフォーク MPM
# StartServers: 起動するサーバープロセスの数
# MinSpareServers: 予備として保持されるサーバー プロセスの最小数
# MaxSpareServers: スペアとして保持されるサーバー プロセスの最大数
# MaxClients: 起動できるサーバープロセスの最大数
# MaxRequestsPerChild: サーバー プロセスが処理するリクエストの最大数
スタートサーバー 10
MinSpareServers 10
MaxSpareServers 15
サーバーリミット 2000
マックスクライアント 2000
子あたりの最大リクエスト数 10000
httpd プロセスの数 (つまり、Apache がプリフォーク モードで処理できる同時リクエストの数) を確認します。
Linux コマンド:
返される結果の例:
1388年
Apache が 1388 の同時リクエストを処理できることを示します。この値は、グループ内の各サーバーのピーク値が 2002 に達したことに応じて、Apache によって自動的に調整されます。
Apache の同時リクエスト数とその TCP 接続ステータスを確認します。
Linux コマンド:
引用
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
(この発言の出典は、 新浪インタラクティブコミュニティ事業部テクニカルディレクターの王氏から頂きました。とても良い内容でした)
返される結果の例:
LAST_ACK 5
SYN_RECV 30
1597年に設立
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
SYN_RECV は処理を待機しているリクエストの数を示し、ESTABLISHED は通常のデータ送信ステータスを示し、TIME_WAIT は処理が完了し、タイムアウトの終了を待っているリクエストの数を示します。
TCP ステータスの変化については、次の図からはっきりとわかります。
STATUS: DESCRIPTION CLOSED: アクティブまたは進行中の接続はありません LISTEN: サーバーは着信呼び出しを待機しています SYN_RECV: 接続要求が到着し、確認を待っています SYN_SENT: アプリケーションが開始され、接続をオープンしています ESTABLISHED: 通常のデータ転送ステータス FIN_WAIT1:アプリケーションは完了したと言っています FIN_WAIT2: 相手側が解放に同意しました ITMED_WAIT: すべてのパケットが終了するまで待機します CLOSING: 両側が同時に終了しようとします TIME_WAIT: 相手側がリリースを初期化しました LAST_ACK: すべてのパケットが終了するまで待機します