Skip to main content

Performance Problems

This guide covers common performance issues and optimization strategies.

Slow LLM Responses

Symptom: Requests take 30+ seconds to complete Diagnosis:
Common Causes:

1. Large Context Window

2. Too Many Tool Calls

3. Slow External Tool Calls


Memory Leaks

Symptom: Memory usage grows over time, eventually OOMKilled Diagnosis:
Common Causes:

1. Session Store Not Clearing Old Sessions

2. Large Conversation History

3. Unclosed AsyncMock in Tests


Redis Connection Timeouts

Symptom: redis.exceptions.TimeoutError: Timeout reading from socket Solutions:

1. Connection Pool Exhausted

2. Redis Under Load

3. Network Latency


High CPU Usage

Symptom: CPU usage consistently at 80%+ Diagnosis:
Solutions:

1. Inefficient Serialization

2. Synchronous Operations Blocking Event Loop

3. Missing Connection Pooling


Slow Startup Time

Symptom: Application takes 60+ seconds to start Causes & Solutions:

1. Large Model Loading

2. Synchronous Initialization

3. Health Check Too Aggressive


Request Queue Buildup

Symptom: Requests queuing, response times increasing Diagnosis:
Solutions:

1. Scale Horizontally

2. Add Rate Limiting

3. Enable Request Timeouts


Still Having Issues?

For advanced performance optimization:
  1. Enable Metrics: Set up Prometheus metrics collection
  2. Use LangSmith: Enable tracing for LLM call analysis
  3. Profile Locally: Use cProfile for detailed profiling
  4. Review Architecture: See performance best practices