RabbitMQ

The Prefetch Starvation Pattern

warning
configurationUpdated Feb 2, 2026

Incorrect prefetch count settings either starve consumers (prefetch=1, causing wait-for-ack latency) or create uneven load distribution (prefetch=1000+, where slow consumers hoard messages while others idle).

How to detect:

Monitor consumer prefetch settings, per-consumer unacknowledged message counts, and consumer idle time. Uneven distribution shows some consumers with high unacked counts while others have zero. Low throughput with prefetch=1 shows as high ack latency.

Recommended action:

Set prefetch count based on consumer processing time: 250 for fast (<10ms), 50 for medium (10-100ms), 10 for slow (>100ms) or I/O-bound operations. Configure per-consumer QoS (global_qos=False) to ensure fair distribution across multiple consumers on same queue.