Architecture & System Design › Cloud Design Patterns
Noisy Neighbor
One tenant or workload hogging shared resources and slowing others down.
Also known as: noisy neighbor, noisy neighbour, multi-tenant interference
The noisy neighbor problem: one tenant’s burst degrades everyone sharing the infrastructure — CPU stolen, I/O saturated, queues flooded, rate limits consumed collectively. Multi-tenancy’s efficiency (shared resources) meets its core risk (shared fate), and the design answer is isolation: quotas, bulkheads, priority and noisy-capable architecture throughout.
tenant A ×100 burst → shared DB saturates → tenants B…Z suffer equally
fixed: per-tenant quotas + bulkheads + priority → A's burst contained
Mitigations layer: admission control per tenant (quotas, rate limits), resource bulkheads (pools, queues, partitions per tenant or tier), priority scheduling (interactive over batch, paid tiers over free), and noisy-aware capacity (headroom plus fast scale for bursts).
The classic mistakes:
- No per-tenant limits. Shared infrastructure without quotas lets any tenant consume everything. Limit first; optimise second.
- Global rate limits only. One shared bucket punishes quiet tenants for loud ones. Limit per tenant (and per endpoint within tenants).
- Unpartitioned noisy data. One tenant’s hot keys saturating shared shards needs tenant-aware partitioning or isolation (dedicated shards for whales).
- Priority blindness. Treating free-tier scrapers and paying interactive users identically wastes goodwill and revenue. Tier service deliberately.
- Burst capacity absent. Zero headroom turns every burst into universal degradation. Buffer plus autoscale plus shed — in that order.
- Blame without attribution. “The system is slow” without per-tenant metrics can’t identify (or bill, or throttle) the noise. Attribute resource use per tenant always.
- One giant pool. Shared everything (threads, connections, queues) maximises interference surface. Partition critical resources by tenant tier at least.
How to contain it: quota per tenant, bulkhead shared resources, prioritise by value, attribute usage precisely. Shared infrastructure with private guarantees — isolation engineered, not assumed.