İçeriğe geç

TTL Stratejileri: 5m vs 1h Break-Even Analizi

Anthropic'te 5m TTL ucuz yazma, 1h TTL pahalı yazma. Hangisini seçeceğin trafik yoğunluğuna bağlı. Bu derste optimal TTL formülünü öğreneceksin.

Şükrü Yusuf KAYA
11 dakikalık okuma
Orta

TTL: 5m vs 1h Karar

Modül 3 Ders 14'te TTL'i kısaca gördük. Şimdi formüle dökelim.

Maliyet Modeli#

5m cache write: (1.25 \times P_{\text{input}}) per refresh 1h cache write: (2.0 \times P_{\text{input}}) per refresh
Eğer saat içinde N kez cache miss olacaksan (TTL expired):
(\text{5m cost} = N \times 1.25 \times P_{\text{input}}) (\text{1h cost} = 1 \times 2.0 \times P_{\text{input}})
1h karlı eğer:
Yani saatte 2+ kez cache miss olursa 1h daha ekonomik.

Trafik Hesabı#

5m TTL'in expire olması için: ardışık 5 dakika cache HIT olmaması = trafik bu sürede yok.
Saatlik trafik5m expire ihtimaliTavsiye TTL
1000+ req/saatÇok düşük5m
500-1000 req/saatDüşük5m
100-500 req/saatOrta5m veya 1h (test et)
30-100 req/saatYüksek1h
<30 req/saatÇok yüksek1h veya cache yok
python
def best_ttl(req_per_hour: int) -> str:
"""Saatlik trafik için en ekonomik TTL'i öner."""
# 5m'lik bir TTL'de cache hit window 5 dakika
# Bu süre içinde 1+ trafik varsa TTL reset, expire olmaz
avg_gap_min = 60 / req_per_hour if req_per_hour > 0 else float('inf')
 
if avg_gap_min < 4: # <4dk ortalama gap → 5m hep canlı
return "5m (canlı kalır)"
elif avg_gap_min < 30: # 4-30dk → karışık
return "5m veya 1h, test gerek"
elif avg_gap_min < 60:
return "1h (daha güvenli)"
else:
return "Cache başına git: trafik çok seyrek"
 
for n in [10000, 1000, 500, 100, 30, 10]:
avg = 60/n
print(f"Saatte {n:>5} istek (ortalama {avg:>5.2f}dk arayla) → {best_ttl(n)}")
TTL break-even hesabı
Pragmatik Karar
Pratik tavsiye: Trafik yüksekse (1000+ req/saat) 5m. Düşükse (30-100) 1h. Çok düşükse caching'in kendisi gereksiz olabilir.

Multi-TTL Pattern#

Anthropic 4 breakpoint kullanıyorsan farklı katmanlar farklı TTL alabilir:
# En statik şeyleri 1h, sık değişeni 5m system_blocks = [ {"text": KB, "cache_control": {"ttl": "1h"}}, # nadir değişir {"text": SYSTEM, "cache_control": {"ttl": "5m"}}, # sık değişir ]
Bu sayede her katman optimal TTL'ini alır.

✓ Pekiştir#

Bir Sonraki Derste#

Cache warming — soğuk başlangıç problemini çözmek.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler