4

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

1 Answer 1

1

Any type of network issues that have timeouts or a machine that needs to be rebooted every few days probably has port issues. Use the following commands to give you 60,000 ports. I had to do this on my domain controllers, DNS requires lots of ports.

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .