Production'da bir sayfanın yavaş açıldığı şikayeti geldi. Sorunun frontend'de mi backend'de mi olduğunu nasıl bulursunuz?

Cevap

Tahmin yerine ölçerek ilerlerim: önce sorunu yeniden üretip zamanın nereye gittiğini parçalara ayırırım, sonra en büyük parçaya odaklanırım.

1. Kapsamı netleştir

  • Herkes mi, belirli kullanıcılar mı (bölge, cihaz, büyük hesaplar)? Tüm sayfalar mı, tek sayfa mı? Ne zamandan beri; bir deploy ile çakışıyor mu?
  • RUM verisi (Core Web Vitals, Sentry performance) varsa p75/p95 değerlerine bakılır.

2. Tarayıcıda zamanı ayrıştır

DevTools Network sekmesinde:

  • TTFB yüksek (HTML veya API yanıtı geç başlıyor) -> sorun büyük ihtimalle backend, DB veya ağda.
  • TTFB düşük ama indirme uzun -> yanıt çok büyük (sıkıştırma yok, gereksiz alanlar, sayfalama yok).
  • İstek şelalesi (waterfall) -> istekler sırayla atılıyor; bir isteğin sonucunu bekleyip sonrakini atan bileşenler.
  • Ağ hızlı ama sayfa geç etkileşime giriyor -> Performance sekmesinde uzun JS task'ları, büyük bundle, gereksiz re-render: sorun frontend'de.

3. Backend'i ayrıştır

  • Trace (OpenTelemetry, APM) ile isteğin süresini parçala: middleware, DB sorguları, dış API çağrıları.
  • Yavaş sorgu logu ve EXPLAIN ANALYZE; N+1 sorgular, eksik index.
  • Dış servis çağrısında timeout var mı? Bağlantı havuzu dolu mu (istekler havuzda bekliyor)?

4. Düzelt ve doğrula

BulguTipik çözüm
Yavaş sorguIndex, sorguyu yeniden yazma, cache
İstek şelalesiParalel istek, tek BFF endpoint'i, server-side veri çekme
Büyük yanıtSayfalama, alan seçimi, gzip/brotli
Büyük bundleCode splitting, ağır kütüphaneyi değiştirme
Uzak bölgeCDN, edge cache

Düzeltmeden sonra aynı metrikle iyileşmeyi kanıtlarım ve bir daha yaşanmaması için performans bütçesi veya alarm eklerim.

  1. SSR, SSG ve CSR arasındaki farklar nelerdir?OrtaWeb MimarisiFull Stack
  2. Monorepo nedir? Avantajları, dezavantajları ve araçları nelerdir?ZorWeb MimarisiFull Stack
  3. MVC mimarisi nedir? Modern web uygulamalarında nasıl karşılık bulur?KolayWeb MimarisiFull Stack
  4. Bir kullanıcı girişinin uçtan uca akışını (frontend'den veritabanına) anlatın.OrtaWeb MimarisiFull Stack
  5. Büyük dosya yükleme akışını nasıl tasarlarsınız? Presigned URL nedir?ZorWeb MimarisiFull Stack
  6. Backend for Frontend (BFF) deseni nedir, ne zaman kullanılır?OrtaWeb MimarisiFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle