İdeal sunucuyu nasıl oluşturursunuz: Yapılandırıcı kılavuzu
Sunucu yapılandırıcısını doğru kullanmak için uygulamanızın "darboğazını" belirlemeniz gerekir: web sunucuları için CPU frekansı kritiktir, veritabanları için RAM miktarı ve disk hızı (IOPS), analitik işlemler için ise çekirdek sayısı ve bellek bant genişliği önemlidir. Önce iş yükü türünü değerlendirin, ardından bileşenler arasında denge kurarak dengesizliklerden (örneğin güçlü işlemci ile yavaş disk kombinasyonu) kaçının.
Barındırma sağlayıcılarının yapılandırıcıları genellikle çok sayıda seçenek içerdikleri için korkutucu olabilir. Bu makale, projenizin teknik gereksinimlerini sipariş sepetindeki somut rakamlara dönüştürmenize yardımcı olacak; böylece gereksiz kaynaklar için fazla ödeme yapmaz ve performans düşüşüyle karşılaşmazsınız.
İçindekiler
Yapılandırıcının çalışma prensibi
Sunucu yapılandırıcısı bir dengeleme aracıdır. Amacı, bir bileşenin boşta kalırken diğerinin aşırı yük altında çalıştığı durumdan kaçınmanıza yardımcı olmaktır.
Yapılandırma sırasında izlenecek algoritma:
- Uygulama türünü belirleyin. Bu bir web sitesi, veritabanı, dosya deposu mu yoksa makine öğrenimi hizmeti mi?
- İş yükü profilini değerlendirin. Yanıt süresi (latency) mi yoksa aynı anda birçok görevi işleme kapasitesi (throughput) mi daha önemli?
- Temel parametreleri girin. Beklenen kullanıcı sayısını veya veri hacmini belirtin.
- Bileşenleri dengeliyin. "Darboğaz" haline gelecek kaynağın gücünü artırın.
Yoğun yük dönemleri (örneğin indirim kampanyaları veya viral içerikler) için kaynaklarda her zaman %20–30'luk bir pay bırakın. Dikey ölçeklendirme (mevcut sunucunun yükseltilmesi) genellikle yeniden başlatma gerektirdiğinden, başlangıçta küçük bir rezervle başlamak daha iyidir.
İşlemci (CPU) seçimi: Çekirdek mi yoksa frekans mı?
İşlemci sunucunun beynidir, ancak farklı görevler farklı "beyinler" gerektirir.
Frekansın (GHz) önemli olduğu durumlar
Uygulamanız tek iş parçacıklıysa veya gecikmelere duyarlıysa (Nginx/Apache web sunucuları, PHP, Node.js, oyun sunucuları), yüksek saat frekansına sahip işlemcileri seçin.
- Kural: 16 yavaş çekirdek yerine 4–6 hızlı çekirdek daha iyidir.
- Neden: Tek bir istek daha hızlı işlenir, kullanıcı yanıt için beklemek zorunda kalmaz.
Çekirdek sayısının önemli olduğu durumlar
Paralel işleme görevleri için: veritabanları (PostgreSQL, MySQL), sanallaştırma (Proxmox, VMware), konteynerleştirme (Kubernetes, Docker), kod derleme, video kodlama.
- Kural: Ne kadar çok iş parçacığı olursa o kadar iyi. Frekans orta düzeyde olabilir.
- Neden: Görevler aynı anda birçok çekirdeğe dağıtılır.
Sıradan bir web sitesi için maksimum çekirdek sayısına ulaşmaya çalışmayın. WordPress için 2.1 GHz frekansta 16 çekirdek, 3.5 GHz frekansta 4 çekirdekten daha yavaş çalışacaktır, çünkü çoğu CMS tek bir isteği etkili bir şekilde paralelleştiremez.
RAM seçimi: Gerçekten ne kadar gerekiyor?
RAM, sunucunun yavaş diske başvurmadan "elinin altında" tutabileceği veri miktarını etkiler.
Miktarı nasıl hesaplayabilirsiniz
- İşletim sistemi ve sistem hizmetleri: Linux/Windows'un çalışması için sadece 1–2 GB ayırın.
- Uygulama: Yazılımınızın belgelerine bakın. Örneğin, Java uygulamaları (JVM) çok fazla belleği sever.
- Veritabanları: Bunlar ana tüketicilerdir. Veritabanları indeksleri ve "sıcak" verileri RAM'de tutmaya çalışır.
- MySQL/PostgreSQL için genel kural: Mevcut tüm belleğin %70–80'ini buffer pool (innodb_buffer_pool_size) için ayırın.
- Önbellekleme: Redis veya Memcached kullanıyorsanız, tüm önbellek RAM'e sığmalıdır.
Bellek türü
Modern yapılandırıcılarda genellikle DDR4 ve DDR5 arasında seçim yapılır.
- DDR5: Daha yüksek bant genişliği, ağır hesaplamalar ve büyük veritabanları için faydalıdır.
- DDR4: Çoğu web görevi için yeterlidir, genellikle daha ucuzdur.
Disk alt sistemi: NVMe, SATA ve RAID
Disk, herhangi bir sunucunun performansındaki en zayıf halkadır. Buradaki hata en pahalıya mal olur.
Depolama türleri
| Disk Türü | Hız (IOPS) | Gecikme | Uygun Kullanım Alanı |
|---|---|---|---|
| NVMe SSD | Çok yüksek (100k+) | Minimum | Veritabanları, yüksek yüklü siteler, aktif dosyalar |
| SATA SSD | Orta (10k–90k) | Düşük | Web siteleri, yedeklemeler, dosya depoları, e-posta |
| HDD | Düşük (<500) | Yüksek | Soğuk arşivler, medya depoları, loglar |
Güvenilirlik ve RAID
Yapılandırıcılarda genellikle RAID seviyesi (yazılımsal veya donanımsal) seçimi sunulur:
- RAID 1 (Yansılama): Veriler iki diske kopyalanır. Biri arızalanırsa sunucu çalışmaya devam eder. Tüm production sunucuları için önerilir. Kapasite kaybı: %50.
- RAID 10 (Yansılama + Şeritleme): Hızlı ve güvenilir. En az 4 disk gerekir. Yoğun veritabanları için idealdir.
- RAID 5/6: Yer tasarrufu sağlar, ancak yazma hızı düşüktür ve kurtarma sırasında veri kaybı riski vardır. SSD üzerindeki aktif veritabanları için önerilmez.
Veritabanları için diskleri her zaman ayırın: biri veriler ve işlem logları (WAL/binlog) için hızlı NVMe, diğeri (daha basit olabilir) yedeklemeler ve işletim sistemi için olsun. Bu, G/Ç kaynakları için rekabeti önler.
İş yüklerine göre hazır konfigürasyon şablonları
Yapılandırıcıyla çalışırken bu derlemeleri başlangıç noktası olarak kullanın.
1. Web sunucusu (LAMP/LEMP, CMS, açılış sayfaları)
- Görev: Sayfaların hızlı sunulması, PHP/Python işleme.
- CPU: 2–4 çekirdek, yüksek frekans (3.0 GHz ve üzeri).
- RAM: 4–8 GB.
- Disk: 1× NVMe SSD (50–100 GB). Ayrı bir depolama alanında günlük yedeklemeler varsa RAID kritik değildir.
2. Veritabanı (PostgreSQL, MySQL, MongoDB)
- Görev: Çok sayıda okuma/yazma işlemi, indekslerin bellekte saklanması.
- CPU: 4–8 çekirdek (orta frekans).
- RAM: 16–64 GB (ne kadar çoksa o kadar iyi).
- Disk: RAID 1 yapılandırmasında 2× NVMe SSD. Yüksek IOPS kritik öneme sahiptir.
3. Konteyner uygulaması (Docker, mikroservisler)
- Görev: Çok sayıda izole sürecin çalıştırılması.
- CPU: 6–12 çekirdek (iş parçacığı sayısı önemlidir).
- RAM: 16–32 GB (konteynerler belleği aktif olarak tüketir).
- Disk: 1× NVMe SSD (konteynerlerin hızlı başlatılması ve imajlarla çalışma).
4. Dosya deposu / Yedeklemeler
- Görev: Büyük veri hacimlerinin saklanması, nadir erişim.
- CPU: 2 çekirdek (minimum gereksinimler).
- RAM: 4–8 GB.
- Disk: Büyük HDD'ler (4–10 TB) veya SATA SSD. Güvenilirlik için RAID 1 veya RAID 6.
Sunucu kurulumunda sık yapılan hatalar
- Disklerde tasarruf etmek. Veritabanı için en güçlü CPU'yu ucuz HDD ile satın almak. Sonuç: İşlemci, diskten yanıt beklerken boşta kalır.
- Ağ kanalını göz ardı etmek. Büyük miktarda veri aktarmayı planlıyorsanız (streaming, buluta yedekleme), tarifenin 100 Mbit/s değil, 1 Gbit/s veya 10 Gbit/s port içerdiğinden emin olun.
- Swap dosyası yetersizliği. RAM yetersiz kaldığında sunucu çökebilir. Diskte her zaman bir swap bölümü yapılandırın (yavaş olsa da sürecin çökmesini önler).
- İzleme eksikliği. Sunucu kurulumu tek seferlik bir eylem değildir. Başlattıktan sonra gerçek ihtiyaçları görmek ve konfigürasyonu ayarlamak için izleme araçları (Zabbix, Prometheus, Netdata) kurun.
SSS: Sunucu seçimi hakkında sorular
Siparişten sonra konfigürasyon değiştirilebilir mi? Evet, çoğu bulut sağlayıcısı CPU ve RAM'i "canlı" olarak veya kısa bir yeniden başlatma ile değiştirmenize olanak tanır. Ancak disk türünü (örneğin HDD'den NVMe'ye) değiştirmek genellikle verilerin yeni bir sunucuya taşınmasını gerektirir.
Tek güçlü sunucu mu yoksa birkaç zayıf sunucu mu daha iyi? Başlangıçta tek güçlü bir sunucu daha iyidir (yönetimi daha kolaydır). Yük arttıkça yatay ölçeklendirmeye geçin: yük dengeleyici arkasında birkaç sunucu. Bu daha güvenilirdir (birinin arızalanması hizmeti öldürmez).
Özel bir IP adresine ihtiyacım var mı? E-posta sunucusu kuruyorsanız veya SSL sertifikası IP'ye bağlıysa evet. Normal bir web sitesi için, sağlayıcı böyle bir seçeneği daha ucuza sunuyorsa, ortak IP veya NAT yeterlidir.
Kaynakların bana yetip yetmeyeceğini nasıl kontrol edebilirim?
Production'a başlamadan önce stres testleri kullanın (örneğin CPU/disk için sysbench veya web için apache bench). Sonuçları uygulamanızın beklentileriyle karşılaştırın.