Homepage 23.3 saniyede yükleniyor! Hedef 2-3 saniye olmalıydı. Bu 10 kat daha yavaş demektir. Sorun acilen çözülmeli!
Session garbage collection (Eski oturum kayıtlarını temizleme işlemi) her request'te çalışıyor!
delete from sessions where last_activity <= 1764503683
Duration: 16806.76ms (16.8 saniye!)
Her request'te session verisi güncelleniyor ama çok yavaş.
update sessions set payload = ...
Duration: 4965.75ms (5 saniye!)
Tenant ve domain sorguları gayet hızlı. Sorun sadece session sisteminde.
Laravel, session garbage collection (eski session kayıtlarını temizleme) işlemini varsayılan olarak lottery sistemi ile yapar:
'lottery' => [2, 100] // %2 ihtimalle temizle
Ancak bu ayar yetersiz kalabilir:
Database driver yerine Redis driver kullan. Redis bellekte çalıştığı için 10-20x daha hızlıdır.
Avantajlar:
Yapılacaklar:
Beklenen Sonuç:
Eğer database driver kullanmaya devam edeceksen, garbage collection'ı request-time'dan çıkar, scheduled task (zamanlanmış görev) yap.
Yapılacaklar:
Avantaj:
Dezavantaj:
Eğer database driver kullanmaya devam edeceksen, session tablosuna index ekle. DELETE sorgusu çok daha hızlı olur.
Yapılacaklar:
Beklenen Sonuç:
Session ömrünü azaltarak session tablosunun şişmesini önle.
Yapılacaklar:
Neden en iyi:
Risk: Yok (Redis zaten sistemde var, kullanılıyor)
Tavsiye: ✅ HEMEN UYGULA!
Ne zaman kullanılır:
Dezavantaj: Redis kadar hızlı olmaz