Skip to content

Commit be372b9

Browse files
tweaks
1 parent 84b9722 commit be372b9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

articles/virtual-network/troubleshoot-nat.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ To resolve these problems, follow the steps in the following section.
3434

3535
### SNAT exhaustion
3636

37-
[Virtual Network NAT](nat-overview.md) supports up to 1 million concurrent flows with 16 IP addresses available for the [NAT gateway resource](nat-gateway-resource.md). The mechanism is described [here](nat-gateway-resource.md#source-network-address-translation) in more detail.
37+
A single [NAT gateway resource](nat-gateway-resource.md) supports from 64,000 up to 1 million concurrent flows. Each IP address provides 64,000 SNAT ports to the available inventory. You can use up to 16 IP addresses per NAT gateway resource. The SNAT mechanism is described [here](nat-gateway-resource.md#source-network-address-translation) in more detail.
3838

3939
#### Steps:
4040

4141
1. Investigate how your application is creating outbound connectivity (for example, code review or packet capture).
42-
2. Understand if what is observed is expected behavior or whether the application is misbehaving.
42+
2. Understand if what is observed is expected behavior or whether the application is misbehaving. Use metrics in Azure Monitor to substantiate your findings.
4343
3. Evaluate if appropriate patterns are followed.
4444
4. Evaluate if SNAT port exhaustion should be mitigated with additional IP addresses assigned to NAT gateway resource.
4545

4646
#### Design pattern:
4747

48-
Always take advantage of connection reuse and connection pooling whenever possible. This pattern will avoid resource exhaustion problems outright and result in predictable behavior. Primitives for these patterns can be found in many development libraries and frameworks.
48+
Always take advantage of connection reuse and connection pooling whenever possible. This pattern will avoid resource exhaustion problems outright and result in predictable behavior. Primitives for these patterns can be found in many development libraries and frameworks.
4949
- Consider [asynchronous polling patterns](https://docs.microsoft.com/azure/architecture/patterns/async-request-reply) for long-running operations to free up connection resources for other operations.
5050
- Long-lived flows (for example TCP connections being reused) should use TCP keepalives or application layer keepalives to avoid intermediate systems timing out.
5151
- Graceful [retry patterns](https://docs.microsoft.com/azure/architecture/patterns/retry) should be used to avoid aggressive retries/bursts during transient failure or failure recovery.

0 commit comments

Comments
 (0)