
Microsoft Azure Performance: Benchmarks, Latency & Limits 2026
Azure Container Apps bills by the second and scales to zero via KEDA. Independent tests flag the slowest cold starts of the big three, near 6x Lambda.
Microsoft Azure Performance verdict
Azure Container Apps runs serverless containers billed by the second, at $0.000024 per vCPU-second and $0.000003 per GiB-second.
Plus $0.40 per million requests and a monthly free grant. KEDA scales it on HTTP, TCP or custom events, down to zero after a 300s cool-down.
The cold start is the thing to design around. For anything latency-sensitive, keep minimum replicas above zero so requests do not wait on Azure's slow start, and keep deployment images small, because cold start gets worse as the package grows. Budget by active vCPU-seconds, since idle replicas bill at the low $0.000003 rate. For steady high-throughput work, move to Dedicated or App Service Premium. Enable zone redundancy at creation for the higher SLA, remembering you cannot add it later.
- The independent cold-start figures are for Azure Functions from 2021, the closest scale-to-zero sibling of Container Apps. Setting minimum replicas above zero avoids cold starts on either.
- Container Apps supports only horizontal replica scaling, with no vertical scaling. Size the replica before deploying.
- Specific SLA percentages are not on the docs page. They live in the master Microsoft Online Services SLA, and zone redundancy increases them, though it must be set at creation.
- Cold start C# (independent)
- 0.932 s
- CPU rate (active)
- $0.000024/vCPU-s
- Idle rate
- $0.000003/vCPU-s
- Warm lifetime
- 20-30 min
- Free requests
- 2M/mo
This page covers how Azure Container Apps performs and scales, and what it costs. Region coverage lives on its own page.
Estimate your Microsoft Azure usage cost
- 1 × (1 vCPU + 1 GB) for 730 h/mo costs about $70.96/mo (89% CPU, 11% RAM), running always-on.
- Consumption billing: 180k vCPU-seconds, 360k GiB-seconds and 2M requests are free per subscription each month; add $0.40 per million requests. Idle replicas bill at a reduced $0.000003/vCPU-second.
Estimated from Microsoft Azure's published per-minute rates ($0.00144/vCPU-min, $0.00018/GB-min). Egress and storage are billed separately. Verify against your own workload.
Cold start and latency, independently measured
| Metric | Value | Source |
|---|---|---|
| Cold start, C# (independent) | 0.932 s | Shilkov, Azure Functions |
| Cold start, Python | 1.281 s | Shilkov, Azure Functions |
| Cold start, JavaScript | 1.575 s | Shilkov, Azure Functions |
| vs AWS Lambda (JS) | ~6x slower | Shilkov comparison |
| Warm-instance lifetime | 20-30 min | Shilkov, before recycle |
| Container Apps billing | Per second | Container Apps pricing |
KEDA autoscaling
| Capability | Value | Notes |
|---|---|---|
| Autoscaling engine | KEDA | HTTP, TCP and custom event triggers |
| HTTP scale trigger | concurrentRequests | Adds a replica when concurrent requests exceed the threshold |
| Scaling algorithm | ceil(current / target) | desiredReplicas from the metric ratio |
| Scale-up steps | 1, 4, 8, 16, 32 | Up to the configured max replica count |
| Poll / cool-down | 30 s / 300 s | Poll every 30s; wait 300s before scaling in |
| Scale to zero | min 0 replicas | No charge when scaled to zero |
| Vertical scaling | Not supported | Horizontal (replica) scaling only |
Microsoft Azure resources and prices
| Option | vCPU / RAM | Price |
|---|---|---|
| Container Apps, Consumption | 0.25, 4 vCPU / 0.5, 8 GiB | $0.000024/vCPU-s active |
| Container Apps, idle | min replicas, warm | $0.000003/vCPU-s |
| Container Apps, Dedicated | D4, D32 (4, 32 vCPU) | $0.0571/vCPU-hr + $0.10/hr |
| App Service B1 | 1 core / 1.75 GB | $13.14/mo |
| App Service B3 | 4 core / 7 GB | $51.10/mo |
| App Service P1v4 | 2 vCPU / 8 GB | $131.40/mo |
| App Service P3v4 | 8 vCPU / 32 GB | $524.14/mo |
Microsoft Azure reliability and architecture
- Both Azure Container Apps and App Service define their SLA percentages in the master Microsoft Online Services SLA document rather than quoting them on the reliability page
- Enabling zone redundancy on a Premium App Service plan increases the uptime percentage defined in the SLA, distributing the app across physically separate availability zones
- Container Apps zone redundancy is available in every region with availability zones, applies to both Consumption and Dedicated profiles, but must be enabled at environment creation and cannot be changed later
- The Container Apps availability SLA depends on the scale rules you configure, and the service is built for stateless, zone-redundant workloads
- Container Apps scales to zero with no usage charges, and idle minimum replicas are billed at a reduced idle rate to keep them warm
- Container Apps offers three workload profile types, Consumption (serverless, scale-to-zero, per-replica billing), Dedicated (reserved compute, per-node billing) and Flex (preview)
Benchmarked cold starts, independently measured
- Mikhail Shilkov's independent, open-source serverless benchmark (cloudbench, 2021) measured Azure Functions Consumption-plan cold starts at a median 0.932s for C#, 1.281s for Python and 1.575s for JavaScript
- The same benchmark found Azure roughly 6x slower than AWS Lambda for equivalent runtimes (JavaScript 1.575s vs 0.264s), calling Azure a clear underdog with startup times often up to 5 seconds
- Azure Functions Java cold starts were extremely slow at a median around 7.7s, and PowerShell ranged from 4 to 27 seconds, the slowest runtime measured
- Cold start scaled sharply with deployment package size on Azure: a 1 KB package started in ~1.6s, a 14 MB package in ~7.3s and a 35 MB package in ~14.6s, far worse than AWS or GCP at the same sizes
- An Azure Functions instance stays warm mostly 20 to 30 minutes after a request before recycling, longer than AWS Lambda (5-7 min) or GCP (15 min), so keep-alive traffic helps
- This independent data is for Azure Functions on the Consumption plan; Container Apps shares the scale-to-zero model, and setting minimum replicas above zero avoids the cold start entirely
Microsoft Azure Performance FAQ
How is Azure Container Apps priced?
By the second on the Consumption plan: $0.000024 per vCPU-second and $0.000003 per GiB-second of active use, plus $0.40 per million requests. A monthly free grant covers 180,000 vCPU-seconds, 360,000 GiB-seconds and 2 million requests per subscription. Idle minimum replicas bill at a reduced $0.000003 per vCPU-second. A Dedicated plan runs $0.0571 per vCPU-hour plus a $0.10 per hour management fee for steady workloads.
How does Container Apps autoscaling work?
It uses KEDA, scaling on HTTP, TCP or custom event triggers. The default HTTP rule adds a replica when concurrent requests pass a threshold, following desiredReplicas = ceil(current metric / target). It scales up in steps of 1, 4, 8, 16, 32 to your max, polls every 30 seconds, and waits a 300-second cool-down before scaling in, including to zero. Vertical scaling is not supported, only horizontal.
Does Container Apps have cold starts?
Yes, because it scales to zero by default after a 300-second cool-down. Independent benchmarks of Azure's serverless platform, Azure Functions being the closest sibling, found the slowest cold starts of the big three. Medians ran 0.93s for C# and 1.58s for JavaScript. Java landed near 7.7s and PowerShell between 4 and 27s, roughly 6x AWS Lambda. Setting minimum replicas above zero avoids the cold start, and idle replicas bill at the low rate.
What SLA does Azure Container Apps offer?
Azure defines the percentage in its master Microsoft Online Services SLA rather than on the reliability page, and the Container Apps figure depends on the scale rules you configure. Enabling zone redundancy raises the guaranteed uptime by spreading the app across physically separate availability zones. It must be done at environment creation, and it applies to both Consumption and Dedicated profiles.
What are the Container Apps resource limits?
On the Consumption profile, each replica can use 0.25 to 4 vCPU and 0.5 to 8 GiB of memory, with scale-to-zero and per-replica billing. The Dedicated profile offers D-series nodes at 4 to 32 vCPU and 16 to 128 GiB, plus memory-optimized E-series up to 256 GiB, with a Flex profile in preview. Vertical scaling is not available, so size the replica and scale horizontally.
Sources & verification
| Source | What was checked | Last checked |
|---|---|---|
| Microsoft Official | Official product page | July 10, 2026 |
| Microsoft App Service Linux | App Service Linux | July 10, 2026 |
| Microsoft Details Container Apps | Details Container Apps | July 10, 2026 |
| Microsoft Learn | Container Apps Scale App | July 10, 2026 |
| Microsoft Learn | Reliability Reliability Container Apps | July 10, 2026 |
| Microsoft Learn | Reliability Reliability App Service | July 10, 2026 |
| Microsoft Learn | Container Apps Workload Profiles Overview | July 10, 2026 |
Every fact on this Microsoft Azure page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.
Explore Microsoft Azure
Every page on Microsoft Azure in one place, you are on performance.
