Container Compute Service (ACS) supports managed CoreDNS. This topic describes the performance characteristics of managed CoreDNS to help you plan DNS capacity and avoid throttling.
The following figures apply only when the total number of Services and pods in your cluster does not exceed 50,000. If your cluster exceeds this threshold, submit a ticket to contact support.
Performance at a glance
Managed CoreDNS runs two replicas by default and scales automatically based on load. The following table summarizes QPS ceilings by resolution type.
| Resolution type | Per replica | Default (2 replicas) |
|---|---|---|
| In-cluster domain names | 5,000 QPS | 10,000 QPS |
| VPC internal domain names (PrivateZone) | — | 8,000 QPS |
| Public domain names | Depends on upstream DNS service | Depends on upstream DNS service |
Actual throughput varies with the number of Services and pods in the cluster, cache size, and cache TTL configuration.
Factors that affect performance
Performance depends on two categories of factors: those you can adjust, and platform-level limits that are fixed regardless of your configuration.
Factors you can adjust
| Factor | How it affects performance |
|---|---|
| Number of replicas | More replicas increase aggregate QPS. Default is 2; scales automatically based on load. |
| Cache size and TTL | Larger cache and longer TTL reduce upstream resolution requests, improving effective throughput. |
| Number of Services and pods | Higher counts increase DNS lookup volume. Performance data in this topic applies to clusters with 50,000 or fewer Services and pods. |
Platform-level limits (PrivateZone)
The following PrivateZone limits act as hard ceilings on CoreDNS throughput, regardless of replica count:
| Limit | Threshold |
|---|---|
| DNS resolution requests per IP address in a VPC | 5,000 QPS — requests above this threshold may be throttled |
| External recursive resolution requests per IP address in a VPC | 600 QPS — requests above this threshold may be throttled |
| Recursive DNS requests to the internet across all ECS instances in a VPC | 5,000 QPS — requests above this threshold may trigger throttling |
In-cluster domain names
Each CoreDNS replica resolves in-cluster domain names at up to 5,000 queries per second. The default two-replica deployment provides up to 10,000 queries per second in aggregate.
External domain names
When resolving external domain names, CoreDNS forwards requests to an upstream DNS service. Performance depends on that upstream service and is subject to PrivateZone limits.
VPC internal domain names
The default upstream DNS service for CoreDNS is PrivateZone (internal DNS resolution), reachable at 100.100.2.136 and 100.100.2.138. The default two-replica deployment resolves VPC internal domain names at up to 8,000 queries per second.
Add caching for frequently accessed VPC internal domain names to improve resolution efficiency and reduce upstream load.
Public domain names
Resolution performance for public domain names depends on the public DNS service you use and is also subject to the PrivateZone limits listed above.
Add caching for frequently accessed public domain names. Cached results continue to be served if the authoritative DNS provider experiences an outage.