I have come across an issue that Tableau server degraded suddenly. We had to restart the services to bring Tableau server online. 
We see below errors from the log file and after research, we found that 
Tableau Server Port Exhaustion caused the issue 
Errors in Server event log 
TCP/IP failed to establish an outgoing connection because the selected local endpoint was recently used to connect to the same remote endpoint. This error typically occurs when outgoing connections are opened and closed at a high rate, causing all available local ports to be used and forcing TCP/IP to reuse a local port for an outgoing connection. To minimize the risk of data corruption, the TCP/IP standard requires a minimum time period to elapse between successive connections from a given local endpoint to a given remote endpoint. 
Error in Tableau log files 
2020-07-05 07:10:42.800 -0700 (,,,) StatusServerThread_dataserver_2 : INFO  com.tableausoftware.service.thrift.win32.NamedPipeServerTransport - Awaiting client connection on \\.\pipe\dataserver_2-status, handle native@0x1a3c. 
2020-07-05 07:10:49.990 -0700 (,,,) FilestoreHostLocatorThread : 
ERROR org.apache.curator.framework.imps.CuratorFrameworkImpl - Background exception was not retry-able or retry gave up 
java.io.IOException: Couldn't instantiate org.apache.zookeeper.ClientCnxnSocketNIO 
at org.apache.zookeeper.ZooKeeper.getClientCnxnSocket(ZooKeeper.java:1845) 
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:452) 
at org.apache.curator.utils.DefaultZookeeperFactory.newZooKeeper(DefaultZookeeperFactory.java:29) 
at org.apache.curator.framework.imps.CuratorFrameworkImpl$2.newZooKeeper(CuratorFrameworkImpl.java:150) 
at org.apache.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:94) 
at org.apache.curator.HandleHolder.getZooKeeper(HandleHolder.java:55) 
at org.apache.curator.ConnectionState.reset(ConnectionState.java:262) 
at org.apache.curator.ConnectionState.start(ConnectionState.java:109) 
at org.apache.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:191) 
at org.apache.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:259) 
at com.tableausoftware.tdfs.common.ZkConnection.<init>(ZkConnection.java:67) 
at com.tableausoftware.tdfs.common.ZkConnectionProvider.getConnection(ZkConnectionProvider.java:50) 
at com.tableausoftware.tdfs.common.HostLocator.lambda$initialize$1(HostLocator.java:146) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
at java.lang.Thread.run(Thread.java:748) 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.GeneratedConstructorAccessor105.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at org.apache.zookeeper.ZooKeeper.getClientCnxnSocket(ZooKeeper.java:1843) 
... 19 more 
Caused by: java.io.IOException: Unable to establish loopback connection at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:94) 
at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:61) 
at java.security.AccessController.doPrivileged(Native Method) 
at sun.nio.ch.PipeImpl.<init>(PipeImpl.java:171) 
at sun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:50) 
at java.nio.channels.Pipe.open(Pipe.java:155) 
at sun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:127) 
at sun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:44) 
at java.nio.channels.Selector.open(Selector.java:227) 
at org.apache.zookeeper.ClientCnxnSocketNIO.<init>(ClientCnxnSocketNIO.java:43) 
... 23 more 
Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): bind 
1. To Identify the dynamic port range 
Open a command prompt as an administrator, and run the following command to determine the dynamic port range: 
netsh int ipv4 show dynamicportrange tcp 
or 
netsh int ipv6 show dynamicportrange tcp 
The command will display the port number of the first dynamic port,  and the number of ports. You need to add the number of ports to the start port to determine the port range. 
2. Run below command to view ports currently in use 
netstat –n 
Thanks & Regards,
Satishbabu Gunukula, Oracle ACE
http://www.oracleracexpert.com