My company has a highly utilized web server running IIS 8.5 on Server 2012 R2
At any given time, there are 34,000 connections to IIS and 200 requests per second. We also have an SFTP service running on the machine that has an average of 100 connected users. Everyone once in a while our monitoring system will timeout and FTP users are unable to connect. I've been doing a lot of research on port exhaustion, however, I cannot find any definite documentation on ephemeral port exhaustion with IIS.
From my understanding, when a connection is made to the HTTP service, the response still comes from port 80, same with the FTP service. We do run ASP.NET sites that connect REST services on the same box, I know those connections would use an ephemeral port, but I'm not sure that it's using all 16,384.
I have used several scripts online to detect port exhaustion
http://blogs.technet.com/b/clinth/archive/2013/08/09/detecting-ephemeral-port-exhaustion.aspx - Script rarely shows any ephemeral port usage above 2%
http://blogs.msdn.com/b/debuggingtoolbox/archive/2010/10/11/powershell-script-troubleshooting-for-port-exhaustion-using-netstat.aspx
This script will show some connections waiting for ports.
Ports Used: 35,084
Ports Waiting: 654
Of the connections waiting for a port, the following are from the local machine
127.0.0.1 44 waiting of 110 total (40%)
My question is, is the server suffering from port exhaustion? When I export a netstat -n and filter by ephemeral ports, I only see 286 in use. The Web Server (80 and 443) account for 32,300 of the connections and FTP accounts for 450.
Is there a connection limit on IIS 8.5?
[edit]
Of the ports in use, here is the breakdown by state
ESTABLISHED 32,394
TIME_WAIT 710
CLOSING 16
FIN_WAIT_1 2
FIN_WAIT_2 3
LAST_ACK 14
SYN_RECEIVED 238
Comments
Post a Comment