
Veritabanı, bir sunucudan en spesifik şeyi isteyen iş yüküdür. Web sunucusu paralel istekleri işler, oyun sunucusu tek çekirdek hızı ister; veritabanı ise bellek ve disk gecikmesine odaklanır. Bu farkı bilmek, aynı bütçeyle kat kat fazla performans almanın yoludur.
Bu rehber, fiziksel sunucu üzerinde veritabanı barındırmayı — donanım seçiminden yapılandırmaya — ele alıyor.
Temel İlke: Veri Belleğe Sığsın
Veritabanı performansında tek bir kural diğerlerinin hepsinden önemlidir: aktif veri kümesi belleğe sığmalıdır.
Sığdığında sorgular diske hiç gitmez ve yanıt süreleri kat kat iyileşir. Sığmadığında ise her sorgu disk okuması yapar ve disk, bellekten kat kat yavaştır.
Bu yüzden veritabanı sunucusu boyutlandırmasında ilk hesap şudur: veritabanının aktif kısmı ne kadar, üzerine ne kadar pay bırakmalıyım? Bu hesap yapıldığında, bellek yatırımı diğer her yatırımdan önce gelir.
Donanım Öncelikleri
| Bileşen | Öncelik | Neden |
|---|---|---|
| RAM | 1 | Veri belleğe sığarsa disk devre dışı kalır |
| NVMe disk | 2 | Belleğe sığmayan kısım ve yazma işlemleri için |
| RAID 10 | 3 | Yazma performansı + disk arızası dayanıklılığı |
| ECC bellek | 3 | Sessiz veri bozulmasını önler — pazarlıksız |
| CPU | 4 | Genellikle darboğaz değil |
ECC satırı özellikle önemlidir: veritabanı barındıran bir sunucuda hata düzeltmeyen bellek kullanmak, sessiz veri bozulması riski almaktır. Bozulan veri diske yazılır, yedeğe girer ve fark edildiğinde geri dönülecek temiz bir nokta kalmamış olabilir.
RAID seçiminde de veritabanı özel bir durumdur: eşlik hesabı yazma işlemlerini yavaşlattığı için, yazma yoğun veritabanlarında aynalama tabanlı düzenler belirgin biçimde daha uygundur. Kapasitenin yarısını verirsiniz ama yazma performansı ve yeniden yapılandırma hızı kazanırsınız.
Web Sunucusuyla Aynı Makinede mi?
Küçük ve orta ölçekli kurulumlarda veritabanını web sunucusuyla aynı makinede tutmak doğru tercihtir: ağ gecikmesi olmaz, yönetim basittir, maliyet düşüktür.
Ayırma kararı şu durumlarda anlamlı hâle gelir:
- Kaynak rekabeti: Web sunucusu ve veritabanı aynı belleği paylaşmak için yarışıyor ve ikisi de yetersiz kalıyor.
- Birden fazla uygulama sunucusu: Yatay ölçeklenmeye geçiyorsanız, hepsinin eriştiği ortak bir veritabanı gerekir.
- Farklı donanım profili: Veritabanı bol bellek ve hızlı disk, uygulama sunucusu çok çekirdek istiyor. Ayırmak, her birine uygun donanım almanızı sağlar.
- Yedeklilik: Veritabanı çoğaltması kuracaksanız zaten ayrı makineler gerekir.
Ayırmanın bedeli ağ gecikmesidir. Aynı makinede yerel bağlantı üzerinden yapılan sorgu, ağ üzerinden yapılandan hızlıdır. Çok sayıda küçük sorgu üreten uygulamalarda bu fark birikir — ayırmadan önce sayfa başına sorgu sayınızı bilin.
Yapılandırma: Varsayılanları Bırakmayın
Paket yöneticisinden kurulan bir veritabanı sunucusu, çok küçük makinelerde de çalışabilecek varsayılanlarla gelir. Fiziksel bir sunucuda bu varsayılanlar, donanımınızın küçük bir bölümünü kullanmanız anlamına gelir.
Bellek Havuzu
En yüksek getirili ayar budur. Sunucu yalnızca veritabanı çalıştırıyorsa toplam belleğin büyük bölümü havuza ayrılabilir; işletim sistemi ve dosya önbelleği için pay bırakın.
Ölçüt basittir: takas alanı hiç kullanılmamalı. Kullanılmaya başlıyorsa fazla ayırmışsınız demektir ve bu, kazanç değil kayıp üretir.
Yazma Dayanıklılığı
Veritabanları, yazma işlemlerini ne zaman diske kalıcı hâle getireceğine dair ayarlanabilir bir davranışa sahiptir. Daha gevşek bir ayar performansı artırır ama ani bir güç kesintisinde son işlemlerin kaybı riskini getirir.
Sipariş veya finansal veri tutuyorsanız dayanıklılıktan taviz vermeyin. Analitik veya yeniden üretilebilir veri için gevşetmek makul olabilir. Bu, teknik değil iş kararıdır.
Bağlantı Sınırı
Eşzamanlı bağlantı sınırını, uygulama sunucularınızın açabileceği toplam bağlantı sayısıyla uyumlu belirleyin. Çok düşükse istekler bekler; çok yüksekse her bağlantının tükettiği bellek toplamda sunucuyu zorlar.
Log ve Geçici Dosya Yerleşimi
İşlem günlüğünü ve geçici dosyaları veri dosyalarından ayrı bir diske almak, disk baskısını böler ve yazma yoğun sistemlerde ölçülebilir kazanç sağlar. Fiziksel sunucuda bu ayrımı yapabilirsiniz — sanal ortamda genellikle yapamazsınız.
Yedekleme: İki Katman
Veritabanı yedeklemesinde tek bir yöntem yetmez:
- Mantıksal döküm: Taşınabilir ve seçici geri yüklemeye izin verir. Tek bir tabloyu geri almak isterseniz bu gerekir. Büyük veritabanlarında yavaştır.
- Fiziksel yedek: Veri dosyalarının kopyası. Hızlı geri yüklenir ama aynı sürüm ve yapılandırma gerektirir.
Her iki yöntemde de kritik nokta tutarlılıktır: yazma trafiği devam ederken alınan bir yedek, tabloları farklı anlardan yakalayabilir ve geri yüklendiğinde ilişkiler tutmaz. Yedekleme aracının tutarlı bir an yakaladığından emin olun.
Ve her zaman geçerli kural: yedeği sunucunun dışında tutun, geri yüklemeyi düzenli olarak test edin.
Sonuç
Veritabanı barındırmada sıra nettir: önce belleği aktif veri kümesine göre boyutlandır, sonra NVMe ve uygun RAID düzenini kur, sonra varsayılan yapılandırmayı donanımına göre yeniden ayarla. Bu üç adım, aynı donanımdan kat kat fazla performans çıkarır. ECC bellekten ise taviz vermeyin — veritabanı barındıran bir sunucuda sessiz veri bozulması, performans sorunundan çok daha ciddi bir risktir.
Sıkça Sorulan Sorular (SSS)
Ne kadar bellek gerekir?
Aktif veri kümenizin sığacağı kadar, üzerine pay. Tüm veritabanı belleğe sığıyorsa ideal durumdasınız. Sığmıyorsa, en sık erişilen kısmın sığması bile belirgin fark yaratır. Ölçüt takas alanının hiç kullanılmamasıdır.
Veritabanını ayrı sunucuya taşımalı mıyım?
Tek sunucu kaynakları yetiyorsa gerekmez — ayırmak ağ gecikmesi ekler. Kaynak rekabeti gerçekten sorun olduğunda, birden fazla uygulama sunucusuna geçtiğinizde veya çoğaltma kuracağınızda anlamlıdır.
Veritabanı için hangi RAID düzeni?
Yazma yoğun sistemlerde aynalama tabanlı düzenler tercih edilir; eşlik hesabı yazma performansını düşürür. Kapasitenin yarısını verirsiniz ama yazma hızı ve yeniden yapılandırma güvenliği kazanırsınız.
ECC bellek şart mı?
Veritabanı barındıran bir sunucuda evet. ECC olmayan bellekte oluşan tek bit hataları sessiz veri bozulmasına yol açar — bozuk veri diske yazılır, yedeğe girer ve fark edildiğinde temiz bir geri dönüş noktası kalmamış olabilir.