first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 21:52:23 +03:00
commit 880f412e2c
2662 changed files with 866266 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
---
title: "t3.medium"
description: "Detailed performance metrics and analysis for Bifrost running on AWS t3.medium instances (2 vCPUs, 4GB RAM)."
icon: "server"
---
## Instance Configuration
**AWS t3.medium Specifications:**
- **vCPUs**: 2
- **Memory**: 4GB RAM
- **Network Performance**: Up to 5 Gigabit
**Bifrost Configuration:**
- **Buffer Size**: 15,000
- **Initial Pool Size**: 10,000
- **Test Load**: 5,000 requests per second (RPS)
---
## Performance Results
### **Overall Performance Metrics**
| Metric | Value | Notes |
|--------|-------|--------|
| **Success Rate** | 100.00% | Perfect reliability under high load |
| **Average Request Size** | 0.13 KB | Lightweight request payload |
| **Average Response Size** | 1.37 KB | Standard response size for testing |
| **Average Latency** | 2.12s | Total end-to-end response time |
| **Peak Memory Usage** | 1,312.79 MB | ~33% of available 4GB RAM |
### **Detailed Performance Breakdown**
| Operation | Latency | Performance Notes |
|-----------|---------|-------------------|
| **Queue Wait Time** | 47.13 µs | Time waiting in Bifrost's internal queue |
| **Key Selection Time** | 16 ns | Weighted API key selection |
| **Message Formatting** | 2.19 µs | Request message preparation |
| **Params Preparation** | 436 ns | Parameter processing |
| **Request Body Preparation** | 2.65 µs | HTTP request body assembly |
| **JSON Marshaling** | 63.47 µs | JSON serialization time |
| **Request Setup** | 6.59 µs | HTTP client configuration |
| **HTTP Request** | 1.56s | Actual provider API call time |
| **Error Handling** | 189 ns | Error processing overhead |
| **Response Parsing** | 11.30 ms | JSON response deserialization |
**Bifrost's Total Overhead: 59 µs***
*\*Excludes JSON marshalling and HTTP calls, which are required in any implementation*
---
## Performance Analysis
### **Strengths on t3.medium**
1. **Perfect Reliability**: 100% success rate even at 5,000 RPS
2. **Memory Efficiency**: Uses only 33% of available RAM (1,312.79 MB / 4GB)
3. **Minimal Overhead**: Just 59 µs of added latency per request
4. **Fast Operations**: Sub-microsecond performance for most internal operations
### **Resource Utilization**
- **Memory Usage**: Very efficient at 1,312.79 MB peak usage
- **CPU Performance**: Handles 5,000 RPS workload effectively
- **Queue Management**: 47.13 µs average wait time indicates good throughput
---
## Configuration Recommendations
### **Optimal Settings for t3.medium**
Based on test results, these configurations work well:
```json
{
"client": {
"initial_pool_size": 10000,
"buffer_size": 15000
}
}
```
### **Tuning Opportunities**
**For Lower Memory Usage:**
- Reduce `initial_pool_size` to 7,500-8,000
- Decrease `buffer_size` to 12,000-13,000
- Trade-off: Slightly higher latency
**For Better Performance:**
- Increase `initial_pool_size` to 12,000-13,000
- Increase `buffer_size` to 17,000-18,000
- Trade-off: Higher memory usage (monitor RAM limits)
---
## Comparison Context
### **vs. t3.xlarge Performance**
| Metric | t3.medium | t3.xlarge | Difference |
|--------|-----------|-----------|------------|
| **Bifrost Overhead** | 59 µs | 11 µs | +81% slower |
| **Queue Wait Time** | 47.13 µs | 1.67 µs | +96% slower |
| **JSON Marshaling** | 63.47 µs | 26.80 µs | +58% slower |
| **Response Parsing** | 11.30 ms | 2.11 ms | +81% slower |
| **Memory Usage** | 1,312.79 MB | 3,340.44 MB | -61% usage |
**Key Insights:**
- t3.medium uses **61% less memory** than t3.xlarge
- Performance trade-offs are reasonable for cost savings
- Most operations still complete in microseconds
---
## Next Steps
**When to upgrade to t3.xlarge:**
- Sustained load approaches 4,000+ RPS
- Queue wait times consistently exceed 75 µs
- Memory usage approaches 75% of available RAM
- **[Run Your Own Benchmarks](./run-your-own-benchmarks)** to test with your specific workload
- **[Compare with t3.xlarge](./t3.xl)** for performance scaling analysis