私の会社には、サーバー2012 R2でIIS 8.5を実行している高度に利用されているWebサーバーがあります。
常に、IISへの34,000接続、および毎秒200リクエストがあります。また、平均100人の接続ユーザーがいるマシンでSFTPサービスが実行されています。監視システムがタイムアウトし、FTPユーザーが接続できなくなります。ポートの枯渇について多くの調査を行ってきましたが、IISを使用したエフェメラルポートの枯渇に関する明確なドキュメントは見つかりません。
私の理解では、HTTPサービスに接続した場合でも、FTPサービスと同様に、応答はポート80から送信されます。同じボックスでRESTサービスを接続するASP.NETサイトを実行します。これらの接続はエフェメラルポートを使用することはわかっていますが、16,384個すべてを使用しているかどうかはわかりません。
ポートの枯渇を検出するためにオンラインでいくつかのスクリプトを使用しました http://blogs.technet.com/b/clinth/archive/2013/08/09/detecting-ephemeral-port-exhaustion.aspx -スクリプト2%を超える一時的なポートの使用はめったに表示されません http://blogs.msdn.com/b/debuggingtoolbox/archive/2010/10/11/powershell-script-troubleshooting-for-port-exhaustion-using-netstat .aspx このスクリプトは、ポートを待機しているいくつかの接続を表示します。
Ports Used: 35,084
Ports Waiting: 654
ポートを待機している接続のうち、以下はローカルマシンからのものです
127.0.0.1 44 waiting of 110 total (40%)
私の質問は、サーバーがポートの枯渇に苦しんでいるのですか? netstat -nをエクスポートし、エフェメラルポートでフィルタリングすると、使用中の286のみが表示されます。 Webサーバー(80および443)は接続の32,300を占め、FTPアカウントは450を占めます。
IIS 8.5に接続制限はありますか?
[編集]使用中のポートのうち、状態別の内訳は次のとおりです
ESTABLISHED 32,394
TIME_WAIT 710
CLOSING 16
FIN_WAIT_1 2
FIN_WAIT_2 3
LAST_ACK 14
SYN_RECEIVED 238
タイムアウトのあるタイプのネットワークの問題や、数日ごとに再起動する必要のあるマシンには、おそらくポートの問題があります。次のコマンドを使用して、60,000ポートを提供します。ドメインコントローラーでこれを実行する必要がありました。DNSには多くのポートが必要です。
netsh int ipv4 set dynamicport tcp start = 10001 num = 50000
netsh int ipv4 set dynamicport udp start = 10001 num = 50000
netsh int ipv6 set dynamicport tcp start = 10001 num = 50000
netsh int ipv6 set dynamicport udp start = 10001 num = 50000
netsh int ipv4 show dynamicport tcp