Vaka Çalışması
Ölçerek optimize etmek: tek sorgu düzeltmesiyle sunucu küçültme
Bağlam
Vitrin ikas’a taşındıktan sonra bizim sunucularda yalnızca yönetim paneli ve entegrasyonlar kaldı. Mantıklı adım sunucuları küçültmekti. Ama trafik yokken bile veritabanı sunucusunda ciddi bir yük vardı; kaynağı bilinmeden küçültmek riskliydi.
Yaklaşım
- Önce ölçmek: Veritabanının yük ve bekleme istatistikleri birkaç gün boyunca düzenli olarak toplandı.
- Bulgu: Veritabanı işlemci yükünün yaklaşık %85’i tek bir sorgudan geliyordu. Her yeni kayıtta bir sıralama değeri hesaplanıyordu ve bu, milyonlarca satırlık tablolarda her seferinde tablonun tamamını taramak demekti.
- Düzeltme:
- Sorguya uygun index eklendi; sorgunun maliyeti binlerce kat düştü.
- Sıralama değeri gerekmeyen tablolarda bu hesap tamamen kaldırıldı.
- Veritabanının paralellik ayarları yeniden yapılandırıldı.
- Gereksiz loglama kaldırıldı ve eski loglar için düzenli bir temizlik işi kuruldu.
- Küçültme: Düzeltmenin ardından veritabanı sunucusu 24’ten 12 vCPU’ya ve 48’den 36 GB belleğe, uygulama sunucusu 12’den 6 vCPU’ya indirildi.
Öğrenilenler
- “Sunucu yetmiyor” çoğu zaman “bir sorgu yanlış” demek. Donanım kararından önce birkaç gün ölçüm yapmak en ucuz yatırımdı.
Benim katkım
Ölçümü, analizi ve düzeltmeleri ben yaptım; sunucu boyutlandırma kararı şirketle birlikte verildi.
Yazılım Danışmanı