Spend Update Queue Full Warnings
Overviewβ
The "Spend update queue is full" warning occurs in high-volume LiteLLM proxy deployments when the internal spend tracking queue reaches capacity. This is a protective mechanism to prevent memory issues during traffic spikes.
Warning Messageβ
WARNING:litellm.proxy.db.db_transaction_queue.spend_update_queue:Spend update queue is full. Aggregating entries to prevent memory issues.
Root Causeβ
The spend update queue has a default maximum size of 10,000 entries (MAX_SIZE_IN_MEMORY_QUEUE=10000). When this limit is reached:
- New spend tracking entries are aggregated instead of queued individually
- This prevents memory exhaustion but may slightly delay spend updates
- The warning indicates your deployment is processing requests faster than the database can handle spend updates
Solutionsβ
1. Increase Queue Sizeβ
Set the MAX_SIZE_IN_MEMORY_QUEUE environment variable to a higher value:
MAX_SIZE_IN_MEMORY_QUEUE=50000
Tradeoffs: Higher queue sizes store more items in memory - provision at least 8GB RAM for large queues
- Recommended for deployments with consistent high traffic
2. Horizontal Scalingβ
Deploy multiple proxy instances with load balancing. This distributes the spend tracking load across multiple queues, reducing the pressure on any single instance's spend update queue.
Related Configurationβ
# Environment variables
MAX_SIZE_IN_MEMORY_QUEUE: 10000 # Default queue size