まず、どのIPを確認するためにユニットを接続
netstatの-an
第二に、TCP接続を確認してください
ポート統計の1)80数
netstatの-nat | grep -i "80" | トイレ-l
2)統計のhttpdプロトコル接続
PS -ef | グレップhttpdの| トイレ-l
3)統計に接続し、状態を「確立されています
netstatの-anp | グレップESTABLISHED | トイレ-l
4)、封入され、IPアドレスを見つけるためにアップ接続します
netstatの-anp | グレップESTABLISHED | awkの{$ 5印刷} |のawk -F:{$ 1}印刷します| 並べ替え| uniqの-c | ソート-r + 0nの は、netstat -anp | grepのSYN | awkの{$ 5印刷} |のawk -F:{$ 1}印刷します| 並べ替え| uniqの-c | ソート-r + 0N
例:
1、同時アクセスのApacheの現在の数を参照してください。
netstatの-anp | グレップESTABLISHED | トイレ-l
比較数値どのくらいのhttpd.conf MaxClientsの間のギャップ。
2、どのように多くのプロセスの数を参照してください。
psの補助| グレップhttpdの| トイレ-l
図3に示すように、次のパラメータは、データを表示するために使用することができます
#psの-ef | グレップhttpdの| トイレ-l 1388
プロセスの統計のhttpd数が、でもリクエストは、Apacheサーバで使用するために、プロセスを開始します。
同時要求1388を処理するようにApacheを表し、この値は自動的にApacheの負荷に応じて調整することができます。
#netstatの-ant | grep -i "80" | トイレ-l 4341
netstatの-anは、システムの現在のネットワーク接続のステータスを印刷する、とgrep -i「80」WC -1-関連の接続、抽出統計およびポート80に接続の数に使用されます。デジタル最終的なリターンは現在、すべての80のポートに対する要求の合計数です。
#netstatの-anp | グレップESTABLISHED | トイレ-l 376
-anプリントシステムのnetstat現在のネットワーク接続ステータス、および確立された抽出物に接続を確立して情報をgrepします。そして、-l統計トイレ。デジタル最終的なリターンは、接続の現在の合計数は、すべての80ポートのために確立されているです。
netstatの-ant || グレップESTABLISHED | トイレ -
すべての確立された接続の詳細な記録を表示するには
ビューApacheの同時TCP接続要求とその状態:
netstat -n#| AWK '/ ^ TCP / ++ {S [NFの$]} END用{(AにおけるS)印刷A、S [A]}'
受信したリモートTCP接続することを確実にするのに十分な時間TIME_WAIT 8947待ちます割り込み要求確認
FIN_WAIT1 15の割込み要求のためのリモートTCP接続を待つ、または要求割り込み前の接続確認を
要求割り込みリモートTCPからの接続FIN_WAIT2 1待機
55を設置するオープン接続を表し
、他方が受信し、接続要求を送信するのを待った後SYN_RECV 21接続要求確認
任意の接続状態無しCLOSING 2
LAST_ACKリモートTCP接続に対して割り込み要求の受け付け元の毛髪のための4つの待ちます
TCP接続状態コメント
- LISTEN:リモートTCPポートからの接続要求を待機します
- SYN-SENT:接続要求を一致させるためのさらに待って、接続要求を送信します
- SYN-RECEIVEDは:リクエストを受信し、接続の確認を待機する接続要求を送信します
- 設立:オープン接続を表し
- FIN-WAIT-1:リモートTCPコネクション割り込み、または接続確認前に割り込み要求を待っています
- FIN-WAIT-2:リモートTCPコネクションからの割り込み要求を待っています
- CLOSE-WAIT:ローカルユーザーから送信されるまで待ちますが、割り込み要求に接続されています
- CLOSING:中断されたリモートTCP接続の確認を待っています
- LAST-ACK:確認応答がリモートTCPコネクションに要求割り込み元の髪を待っています
- TIME-WAIT:確認は、リモートTCP接続が割り込み要求を受信したことを確実にするために十分な時間を待ちます
- CLOSED:なし接続状態ません
- SYN_RECV要求処理を待っている表します。
- ESTABLISHED状態は、通常のデータ伝送を表します。
- 処理さTIME_WAIT、タイムアウトの終了を待っている要求の数を表します。
4、ロット見出さTIME_WAIT状態のシステムが接続されているがあり、カーネル・パラメータを調整することによって解決されます。
vimのは/etc/sysctl.conf
ファイルを編集し、次の行を追加します。
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30
そして、実行
/ sbinに/ sysctlを-p
効果を見てみましょう。
有意TIME_WAIT状態を添付:
- net.ipv4.tcp_syncookies = 1 SYNクッキーをオンに示します。SYNキューのオーバーフローが発生すると、SYN攻撃の少量のを防ぐことができ、対処するためにクッキーを有効にすると、デフォルトでは、閉鎖を示し、0です。
- net.ipv4.tcp_tw_reuse = 1は、再利用に示しています。TIME-WAITソケットは、新しいTCP接続のために再使用できるように、デフォルトではオフを示し、0です。
- = 1 net.ipv4.tcp_tw_recycleそれは、デフォルトは0で、TCPコネクションのオープンTIME-WAITソケットの高速リカバリをオフに表しています。
- システムのデフォルトのタイムアウト時間を変更net.ipv4.tcp_fin_timeout
5は、クライアントとサーバのソケットを閉じた後にTCP / IP接続を確立している、サーバー側の接続ポートの状態がTIME_WAITはアクティブクローズソケットがTIME_WAIT状態に入ることのすべてではないですよね?どのような場合には、CLOSED状態に直接ソケットをクローズするためのイニシアチブがありますか?
イニシアティブ最後のACKを送信した後にパーティーを閉じるためには、TIME_WAIT状態が2MSL(最大セグメント寿命)時間ままになります、これは「解決」することはできませんし、あるTCP / IPの基本的な、です。つまり、TCP / IPの設計者は、そのように設計されている可能性があります。
2つの主な理由があります:
- 1、接続パッケージの防止、迷子後の再出現は、新しい接続のインパクト(2MSLては、重複パケットのすべての最後の接続が消えます)
- 2は、信頼性の高いTCPコネクションを積極的に最後のACK(フィン)に送信者によって閉じられ、その後、パッシブ側はフィン再送信されます、そこに欠落している可能性があり閉じられ、当事者はCLOSED状態にあるならば、率先して、代わりにACK、RST応答します。したがって、TIME_WAIT状態にアクティブ側が、閉じることができません。攻撃しない限り、TIME_WAITは、多くのリソースを占有しません。また、パーティーの送信またはのrecvタイムアウトあれば、それはCLOSED状態に直接移動します。
6、どのようにApache HTTPDの接続の最大数を設定するには?
手のオンラインサイトが増え、非常に遅いアクセスがあります。予備的見解は、サーバリソースの不足ですが、接続すると、同じページ上の別のリンクをクリックしていき、すぐに開くことができますテストを繰り返した後、この現象のapacheの説明は、最大接続数がいっぱいですが、唯一の新しい訪問者解決策は、接続のapacheの最大数を増やすことであるので、自由にリンクを持っているし、もしkeeyaliveの生存時間の接続後(のKeepAliveTimeout、5秒のデフォルト)に並んで待って、再オープン接続する必要はありません。
1.設定?
apacheの2.24、デフォルトの設定(FreeBSDのデフォルト設定カスタムMPMをロードしない)、接続のデフォルトの最大数は250です
ローディング/usr/local/etc/apache22/httpd.confに配置されたMPM(フロントノートを削除します)。
#サーバー・プール管理(MPMの特定) など/ apache22 /エクストラ/ httpdの-mpm.conf含めます
1は現在のhttpdの作業モデルがある作品の多くは、モードに応じてMPMの/usr/local/etc/apache22/extra/httpd-mpm.confに表示設定が、そこhttpdのポイント?apachectl -l実行することにより閲覧することができます。
モジュール内でコンパイルされた: core.c prefork.c http_core.c mod_so.cが
preforkの言葉を参照してください、現在のhttpdしたがってpreforkのモードで作業見られるべきで、デフォルトの設定のpreforkのモードは以下のとおりです。
<のIfModule mpm_prefork_module> にStartServers 5 MinSpareServers 5 MaxSpareServersも10 MaxClientsの150 のMaxRequestsPerChild 0 </のIfModule>
2.どのくらい追加しますか?
理論的には、当然のことながら、より良い大きなでサポートされている接続の数ですが、サーバーのCPU、メモリ、帯域幅、などと関係を持っているサーバーの能力の範囲内であることを。
使用可能な接続の現在の数を表示します。
psの補助| グレップhttpdの| トイレ-l
または:
pgrep httpdの|トイレ-l
平均稼働のhttpdメモリを計算します。
PS AUX |はgrep -vグリップ| AWK '/のhttpd / {和+ = $ 6とN ++}; END {プリント和/ N}
基本的には静的なページなので、CPUの消費量は、プロセスメモリが200Kについて、あまりないあたりに、非常に低いです。
サーバーのメモリには、サービスの定期的な開始が500M(保守的な見積もり)程度かかりに2Gは、1.5Gは、その後、理論的にサポートすることができる利用可能な左である1.5 * 1024 * 1024 * 200000分の1024 = 8053.06368
サポート同時アクセス2Wの人々は(他の人が接続するために、1,2秒で待つ必要があり、一度にも非常に滑らかになるにも、人々はすぐにアクセスを保証することができ8K)問題はないはずというプロセスについて8K
接続のMaxClientsの最大数の制御は、しようとするように構成することができます。
<のIfModule mpm_prefork_module> にStartServers 5 MinSpareServers 5 MaxSpareServersも10 ServerLimitの5500 MaxClientsの5000 のMaxRequestsPerChild 100 </のIfModule>
注、この値を超える250のMaxClientsのデフォルト最大値は、明示的にServerLimitのを設定しなければならない、とServerLimitのは、MaxClientsの前に置かれ、または他の値が小さいMaxClientsのよりも、そうでない場合は、再起動のhttpdにそこに求めるメッセージが表示されますすること。
再起動httpdの後、繰り返しのpgrep httpdの実行によって|接続の数を観察するためにトイレ-lを、あなたは、接続の数は、MaxClientsのの設定値に達した後、増加しませんが、今回は訪問が非常に滑らかでもあり、そして、より多く設定されていない貪欲ん見ることができます高い値、もしくは将来の急激な増加へのアクセスサイトは、サーバーのメモリが不足し、その後、あなたは値の最適なセットを見つけるまで、徐々に占有動向の変化や将来のアクセスメモリ圧力に応じて調整されます慎重でない場合。
(MaxRequestsPerChildを0に設定されていない、クラッシュにサーバを引き起こすメモリリークが原因であってもよいです)
式のより良い最大:
apache_max_process_with_good_perfermance <(total_hardware_memory / apache_memory_per_process)* 2 apache_max_process = apache_max_process_with_good_perfermance * 1.5
7、リアルタイム検出のhttpd接続:
1 -d -n時計 "のpgrep httpdの|トイレ-l"
します。https://blog.csdn.net/he_jian1/article/details/40787269からの記事