İçeriğe geç
Önem Bilişim

VDS Disk Seçimi: İş Yükünüze Göre NVMe SSD mi Yoksa Standart SSD mi Kullanmalısınız?

VDS disk seçimi için rehber: IOPS, okuma-yazma hızı ve gecikme farkı; veritabanı, e-ticaret, oyun sunucusu ve yedekleme için NVMe mi SSD mi daha doğru?

VDS ve Sunucu11 dk okuma
VDS Disk Seçimi: İş Yükünüze Göre NVMe SSD mi Yoksa Standart SSD mi Kullanmalısınız?
İçindekiler
  1. SSD ve NVMe arasındaki fark tam olarak ne?
  2. Hangi metrik önemli: MB/sn mi, IOPS mi, gecikme mi?
  3. Sanal sunucuda disk performansını neler etkiler?
  4. İş yükünüze göre disk seçimi
  5. Kurumsal site ve blog
  6. E-ticaret siteleri
  7. Veritabanı ağırlıklı uygulamalar
  8. Oyun sunucuları
  9. Yedekleme, arşiv ve dosya depolama
  10. Yazılım geliştirme, CI/CD ve kayıt analizi
  11. Diskinizi kendiniz ölçün
  12. NVMe’nin çözemeyeceği sorunlar
  13. Diskten daha fazla performans almak için ayarlar
  14. InnoDB ayarları
  15. Takas (swap) eğilimini düşürün
  16. Kapasite planlamasını da unutmayın
  17. Önem Bilişim’de disk seçenekleri
  18. Sık Sorulan Sorular
  19. NVMe ile SSD arasındaki fark nedir?
  20. Web sitesi için NVMe disk şart mı?
  21. Veritabanı için hangi disk daha iyi?
  22. VDS disk hızımı nasıl test ederim?
  23. Disk mi RAM mi: önce hangisini yükseltmeliyim?

Sunucu performansı konuşulurken akla ilk gelen genellikle işlemci ve RAM olur. Oysa birçok sitede asıl darboğaz, gözden kaçan disktir. İşlemci yüzde 30’da beklerken sayfaların yavaş açılması, veritabanı sorgularının zaman zaman takılması ya da yedek alınırken sitenin donması çoğu zaman diskin yetişemediğini gösterir.

VDS kiralama sırasında karşınıza çıkan “SSD” ve “NVMe” seçenekleri bu yüzden sadece bir etiket farkı değildir. Bu yazıda iki disk türünün gerçekte neyi farklı yaptığını, hangi metriğin sizin için önemli olduğunu ve web sitesinden veritabanına, oyun sunucusundan yedekleme sunucusuna kadar farklı iş yükleri için hangi diskin mantıklı olduğunu anlatıyoruz.

Kısa cevabı baştan verelim: Her iş yükünün NVMe’ye ihtiyacı yoktur. Ama bazıları için NVMe, sunucuya eklenebilecek en etkili iyileştirmedir.

SSD ve NVMe arasındaki fark tam olarak ne?

İlk düzeltmeyi yapalım: NVMe diskler de SSD’dir. İkisi de verileri flash bellek yongalarında tutar ve hareketli parçası yoktur. Aradaki fark, diskin bilgisayarla konuşma biçimindedir.

“Standart SSD” denildiğinde genellikle SATA arayüzlü SSD’ler kastedilir. SATA, aslında mekanik sabit diskler için tasarlanmış bir bağlantıdır ve AHCI adlı bir protokolle çalışır. Bu protokol tek bir komut kuyruğuna ve kuyruk başına en fazla 32 komuta izin verir. SATA III arayüzünün bant genişliği 6 Gbit/sn ile sınırlıdır. Bu yüzden en iyi SATA SSD bile pratikte saniyede 550 MB civarında okuma hızının üzerine çıkamaz.

NVMe ise doğrudan flash bellek için tasarlanmış bir protokoldür ve diski PCIe hattı üzerinden işlemciye bağlar. 64 bine kadar komut kuyruğunu ve her kuyrukta 64 bine kadar komutu destekler. Bu, aynı anda gelen çok sayıda okuma ve yazma isteğinin sıraya girmeden paralel işlenebilmesi demektir. PCIe 4.0 bağlantılı bir NVMe disk, saniyede 7.000 MB’a yaklaşan sıralı okuma hızlarına ulaşabilir.

Hangi metrik önemli: MB/sn mi, IOPS mi, gecikme mi?

Disk tanıtımlarında en büyük puntoyla yazılan rakam genellikle sıralı okuma hızıdır. Ancak bir web sunucusu ya da veritabanı nadiren büyük bir dosyayı baştan sona okur. Gerçek iş yüklerinde disk, dağınık konumlardaki çok sayıda küçük veri parçasına erişir. Bu yüzden üç metriği ayrı ayrı anlamak gerekir:

  • Sıralı okuma/yazma hızı (MB/sn): Büyük dosyaların ne kadar hızlı okunup yazılacağını gösterir. Yedekleme, video dosyaları ve büyük arşivler için önemlidir.
  • IOPS: Diskin saniyede kaç ayrı okuma veya yazma işlemi yapabildiğini gösterir. Veritabanları ve çok sayıda küçük dosyayla çalışan uygulamalar için asıl belirleyici değer budur. Genellikle 4 KB’lık rastgele erişimlerle ölçülür.
  • Gecikme (latency): Tek bir işlemin ne kadar sürede tamamlandığını gösterir. Bir veritabanı her sipariş kaydında diske yazıp onay beklediği için, düşük gecikme doğrudan daha hızlı işlem demektir.

Aşağıdaki tablo, üreticilerin tüketici sınıfı diskler için yayımladığı tipik değerleri gösterir:

ÖzellikSATA SSDNVMe (PCIe 3.0)NVMe (PCIe 4.0)
Arayüz bant genişliği6 Gbit/sn (≈600 MB/sn)≈3,9 GB/sn≈7,9 GB/sn
Tipik sıralı okuma520–560 MB/sn3.000–3.500 MB/sn5.000–7.400 MB/sn
Tipik 4K rastgele okuma90–100 bin IOPS350–600 bin IOPS700 bin – 1,2 milyon IOPS
Komut kuyruğu1 kuyruk × 32 komut64 bine kadar kuyruk × 64 bin komut64 bine kadar kuyruk × 64 bin komut

Bir uyarı ekleyelim: Bu değerler, tek bir diskin laboratuvar koşullarında, yüksek kuyruk derinliğinde ölçülen tepe değerleridir. Sanal bir sunucuda gerçek değerler daha düşük çıkar. Ancak iki teknoloji arasındaki oran büyük ölçüde korunur.

SATA SSD, NVMe PCIe 3.0 ve NVMe PCIe 4.0 disklerin sıralı okuma hızı ve 4K rastgele okuma IOPS karşılaştırması
Fark en çok küçük ve rastgele erişimlerde, yani veritabanlarının çalıştığı alanda büyür.

Sanal sunucuda disk performansını neler etkiler?

Bir VDS’te kullandığınız disk, fiziksel sunucudaki disklerin sanallaştırma katmanı üzerinden size ayrılmış bir parçasıdır. Bu yüzden diskin türü kadar şu etkenler de performansı belirler:

  • RAID yapısı: Fiziksel diskler genellikle RAID ile birleştirilir. RAID 10 gibi yapılar hem güvenlik hem hız sağlar.
  • Sanallaştırma katmanı: Modern KVM tabanlı sistemlerde virtio sürücüleriyle disk erişiminin ek yükü düşüktür. Yine de fiziksel diskten bir miktar kayıp olur.
  • Paylaşım ve sınırlar: Aynı fiziksel disk birden fazla sanal sunucuya hizmet verir. Sağlayıcılar adil kullanım için sanal sunucu başına IOPS sınırları uygulayabilir.
  • Dosya sistemi ve önbellek: Linux, boş belleği disk önbelleği olarak kullanır. Sık okunan veriler bellekten gelir ve diske hiç gidilmez.

Son madde özellikle önemlidir. Yeterli RAM’i olan bir sunucuda okumaların büyük kısmı bellekten karşılanır. Disk asıl olarak yazmalar ve bellekte bulunmayan veriler için devreye girer.

İş yükünüze göre disk seçimi

Şimdi asıl soruya gelelim. Aşağıda en sık karşılaşılan iş yükleri için hangi diskin mantıklı olduğunu nedenleriyle ele alıyoruz.

Kurumsal site ve blog

Sayfa önbelleği kullanan bir WordPress sitesinde ziyaretçilerin büyük kısmı hazır HTML sayfalarla karşılanır. Bu dosyalar kısa sürede işletim sisteminin bellek önbelleğine yerleşir. Disk, içerik eklerken ve önbellek yenilenirken kısa süreliğine çalışır. Bu tür siteler için SATA SSD fazlasıyla yeterlidir. NVMe’ye ödenecek ek bütçeyi RAM’e ya da daha iyi bir önbellek yapılandırmasına harcamak genellikle daha fazla fark yaratır.

E-ticaret siteleri

E-ticarette tablo değişir. Her sipariş, stok güncellemesi ve sepet işlemi veritabanına yazılır. MySQL varsayılan ayarlarında her işlemin diske kalıcı olarak yazıldığından emin olmak için diskten onay bekler. Kampanya günlerinde saniyede onlarca sipariş ve yüzlerce sepet işlemi oluştuğunda yazma gecikmesi doğrudan müşterinin beklediği süreye dönüşür. Yoğun trafik alan mağazalar için NVMe güçlü şekilde önerilir. Kampanya dönemlerinin altyapı planlamasını e-ticaret siteleri için VDS seçimi yazımızda ayrıca anlattık.

Veritabanı ağırlıklı uygulamalar

ERP, CRM, muhasebe yazılımları ve büyük veri tabloları kullanan uygulamalarda belirleyici soru, veritabanının belleğe sığıp sığmadığıdır. Sık kullanılan veriler InnoDB tampon havuzuna sığıyorsa okumalar bellekten gelir ve disk türü ikinci planda kalır. Veritabanı RAM’den büyükse her önbellek ıskası diske rastgele bir okuma demektir. Bu durumda NVMe ile SATA SSD arasındaki IOPS farkı, sorgu sürelerinde katlanarak hissedilir.

Oyun sunucuları

Minecraft gibi oyunlar dünya haritasını parçalar (chunk) halinde diskten okur ve düzenli aralıklarla kaydeder. Oyuncular haritanın yeni bölgelerine dağıldıkça disk yoğun şekilde çalışır. Kayıt anlarında yaşanan anlık takılmalar çoğu zaman diskin yetişememesinden kaynaklanır. Oyun sunucularında belirleyici kaynak genellikle işlemcinin tek çekirdek hızıdır. NVMe ise bu takılmaları azaltarak deneyimi tamamlar.

Yedekleme, arşiv ve dosya depolama

Büyük dosyaların saklandığı ve aktarıldığı sunucularda iş yükü sıralıdır. Burada öncelik hız değil kapasitedir. Ağ bağlantısı da çoğu zaman diskten önce sınıra ulaşır. 1 Gbit’lik bir bağlantı en iyi koşulda saniyede yaklaşık 117 MB veri taşır. Bu, en sıradan SATA SSD’nin bile yetişebileceği bir hızdır. Dosya indirme ve yükleme hızını artırmak için NVMe’ye geçmek bu yüzden beklenen farkı yaratmaz. Aynı bütçeyle daha fazla disk alanı almak daha mantıklıdır.

Yazılım geliştirme, CI/CD ve kayıt analizi

Bir npm install ya da docker build, binlerce küçük dosyayı kısa sürede okuyup yazar. Elasticsearch gibi arama ve kayıt analizi sistemleri de diske sürekli küçük parçalar halinde yazar. Bu iş yükleri NVMe’nin paralel işlem kapasitesinden doğrudan faydalanır. Derleme sürelerinin kısalması, ekip için her gün geri kazanılan dakikalar demektir.

İş yüküne göre VDS disk seçimi: web sitesi, e-ticaret, veritabanı, oyun sunucusu ve yedekleme için NVMe veya SSD önerisi
Kararı disk türü değil, iş yükünüzün diske nasıl eriştiği belirler.
İş yüküDiskin çalışma biçimiÖneri
Önbellekli kurumsal site, blogAz ve çoğunlukla okumaSATA SSD yeterli
E-ticaret (WooCommerce, OpenCart)Sık küçük yazmalar, işlem onayıNVMe
Büyük veritabanı, ERP, CRMRastgele okuma ve yazmaNVMe
Oyun sunucusuHarita okuma ve periyodik kayıtNVMe (öncelik işlemcide)
Yedekleme, arşiv, medyaBüyük ve sıralı dosyalarSATA SSD, kapasite öncelikli
CI/CD, Docker, kayıt analiziÇok sayıda küçük dosyaNVMe

Diskinizi kendiniz ölçün

Sağlayıcının yazdığı rakamlar bir fikir verir, ama kendi sunucunuzda ölçmek her zaman daha güvenilirdir. Linux’ta bunun için standart araç fio‘dur. Aşağıdaki test, veritabanı benzeri bir yükte 4 KB’lık rastgele okuma performansını ölçer:

sudo apt install fio -y
fio --name=rastgele-okuma --filename=/root/fio-test --size=2G --rw=randread --bs=4k --iodepth=32 --numjobs=4 --ioengine=libaio --direct=1 --runtime=60 --time_based --group_reporting

Veritabanlarının asıl hassas olduğu durum, her yazmanın diske kalıcı olarak işlenmesini beklemesidir. Bu davranışı taklit eden ikinci test, yazma gecikmesini ölçer:

fio --name=db-yazma --filename=/root/fio-test --size=2G --rw=randwrite --bs=4k --iodepth=1 --numjobs=1 --ioengine=libaio --direct=1 --fsync=1 --runtime=60 --time_based
rm /root/fio-test

Çıktıda iki değere bakın: IOPS= satırı saniyedeki işlem sayısını, clat percentiles bölümü ise işlemlerin ne kadar sürede tamamlandığını gösterir. Özellikle yüzde 99’luk dilim önemlidir, çünkü kullanıcıların hissettiği takılmalar ortalamada değil, en yavaş işlemlerde saklıdır. Testi canlı bir sunucuda yoğun saatlerde çalıştırmayın. Test, ölçüm süresince diski meşgul eder.

Mevcut bir sunucuda diskin darboğaz olup olmadığını anlamak için sysstat paketindeki iostat aracını yoğun bir anda çalıştırın:

sudo apt install sysstat -y
iostat -x 1

Windows VDS kullanıyorsanız aynı ölçümü Microsoft’un ücretsiz aracı DiskSpd ile yapabilirsiniz. Aşağıdaki komut, 4 KB’lık rastgele okumaları 60 saniye boyunca 4 iş parçacığı ve 32 kuyruk derinliğiyle test eder. -Sh parametresi önbelleği devre dışı bırakarak doğrudan disk performansını ölçer:

diskspd -c2G -b4K -d60 -o32 -t4 -r -w0 -Sh C:\diskspd-test.dat

Hızlı bir genel bakış için CrystalDiskMark gibi grafik arayüzlü araçlar da kullanılabilir. Bu araçlarda sıralı okuma sonucuna değil, “RND4K” ile başlayan rastgele erişim satırlarına odaklanın. Sunucunuzun gerçek hayattaki davranışını en iyi bu satırlar yansıtır.

Testleri tek seferlik ölçümler olarak değil, karşılaştırma aracı olarak düşünün. Sunucuyu ilk aldığınızda yaptığınız bir ölçüm, aylar sonra performansın düştüğünden şüphelendiğinizde elinizdeki en değerli referans olur.

r_await ve w_await sütunları, okuma ve yazma isteklerinin milisaniye cinsinden ortalama bekleme süresini gösterir. SSD tabanlı bir diskte bu değerlerin sürekli 10 milisaniyenin üzerinde olması ve %util sütununun yüzde 100’e dayanması, diskin yetişemediğinin işaretidir. top çıktısındaki wa değeri de işlemcinin diski beklerken boşa geçirdiği zamanı gösterir.

NVMe’nin çözemeyeceği sorunlar

Hızlı disk her yavaşlığın ilacı değildir. Şu durumlarda NVMe’ye geçmek beklenen farkı yaratmaz:

  • İşlemci darboğazı: PHP kodunun kendisi yavaşsa ya da işlemci sürekli yüzde 100’deyse, disk hızlansa bile sayfa hızlanmaz.
  • Bellek yetersizliği: Sunucu sürekli takas (swap) kullanıyorsa önce RAM’i artırın. Diske takas yapan bir sistemi hızlı diske taşımak, sorunu sadece biraz hafifletir.
  • Dizinsiz sorgular: Eksik bir dizin yüzünden her seferinde tabloyu baştan sona tarayan bir sorgu, NVMe’de daha hızlı çalışır. Ama asıl çözüm doğru dizini eklemektir.
  • Ağ sınırı: Dosya aktarımlarında belirleyici olan genellikle bant genişliğidir.

Disk ve RAM arasında seçim yapmanız gerekiyorsa genel kural şudur: Veritabanınız ve sık kullanılan dosyalarınız belleğe sığmıyorsa önce RAM’i artırın. Belleğe zaten sığıyor ama yazma yoğunluğu yüksekse, örneğin sipariş alan bir mağazanız varsa, NVMe’ye geçin. İki teknolojinin donanım farklarını daha teknik bir dille NVMe M.2 SSD ve SATA SSD karşılaştırması yazımızda bulabilirsiniz.

Diskten daha fazla performans almak için ayarlar

Hangi diski seçerseniz seçin, varsayılan ayarlar çoğu zaman donanımın potansiyelini kullanmaz. MySQL ve MariaDB’nin bazı varsayılan değerleri mekanik disklerin çağından kalmadır. SSD veya NVMe kullanan bir sunucuda şu ayarları gözden geçirmek, disk yatırımınızdan tam verim almanızı sağlar.

InnoDB ayarları

Veritabanı yapılandırma dosyasında (/etc/mysql/mysql.conf.d/mysqld.cnf veya MariaDB’de /etc/mysql/mariadb.conf.d/50-server.cnf) şu değerler en çok fark yaratanlardır:

innodb_buffer_pool_size = 4G
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_method = O_DIRECT

innodb_buffer_pool_size, veritabanının sık kullanılan verileri bellekte tuttuğu alandır. Yalnızca veritabanı çalışan bir sunucuda toplam RAM’in yüzde 50 ile 70’i, web sunucusuyla aynı makinede çalışıyorsa daha düşük bir oran makul bir başlangıçtır. innodb_io_capacity değeri, veritabanına diskin saniyede kaç işlem kaldırabileceğini söyler. Varsayılan değer olan 200, mekanik diskler için düşünülmüştür ve SSD’li bir sunucuda arka plan yazmalarını gereksiz yere yavaşlatır. O_DIRECT ise verinin hem veritabanı önbelleğinde hem işletim sistemi önbelleğinde iki kez tutulmasını önler.

Sık tartışılan bir ayar da innodb_flush_log_at_trx_commit‘tir. Varsayılan değer olan 1, her işlemin diske kalıcı olarak yazılmasını bekler ve en güvenli seçenektir. Değeri 2 yapmak yazma performansını artırır. Ancak sunucunun aniden kapanması durumunda son bir saniyelik işlemler kaybolabilir. Sipariş ve ödeme kaydı tutan bir e-ticaret sitesinde bu riski almak yerine 1 değerinde kalıp hızlı bir NVMe diske geçmek daha doğru bir tercihtir.

Takas (swap) eğilimini düşürün

Linux, belleği tamamen dolmadan da kullanılmayan sayfaları diske taşımaya eğilimlidir. Veritabanı sunucularında bu davranış, ihtiyaç anında verinin diskten geri okunmasına ve ani yavaşlamalara yol açar. vm.swappiness değerini düşürmek, sistemin takası yalnızca gerçekten gerektiğinde kullanmasını sağlar:

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl --system

Kapasite planlamasını da unutmayın

Disk türü kadar disk alanı da planlanmalıdır. Kayıt dosyaları, veritabanı büyümesi, ürün görselleri ve güncellemeler zamanla yer kaplar. Dolmak üzere olan bir disk yalnızca yeni veri yazılmasını engellemez; veritabanının çökmesine ve sistemin kararsız çalışmasına da yol açabilir.

Birkaç basit alışkanlık bu riski ortadan kaldırır. Kayıt dosyalarının logrotate ile düzenli olarak döndürüldüğünden emin olun. Disk kullanımı yüzde 80’i geçtiğinde uyarı veren basit bir izleme kurun. Yedekleri aynı diskte değil, sunucunun dışında saklayın. Böylece hem disk alanından tasarruf eder hem de diskte yaşanacak bir sorunda yedeğinizi korumuş olursunuz.

Önem Bilişim’de disk seçenekleri

Önem Bilişim’in standart VDS paketleri, Intel Xeon işlemcilerle birlikte SSD disk kullanır. Önbellekli web siteleri, kurumsal uygulamalar ve dosya depolama gibi iş yükleri için ekonomik bir seçenektir. Daha yoğun veritabanı trafiği olan projeler için NVMe diskli Ryzen VDS ve Intel Core i9 tabanlı Performans VDS paketleri; yüksek frekanslı işlemcileri NVMe disklerle bir araya getirir.

Bütün paketler İstanbul’daki Datacasa veri merkezinde, 1 Gbit bağlantı ve DDoS korumasıyla çalışır. İhtiyacınız değiştiğinde kaynaklarınızı verileriniz silinmeden yükseltebilirsiniz. Projenize hangisinin uyduğunu görmek için VDS Kiralama seçeneklerine göz atabilirsiniz.

Sık Sorulan Sorular

NVMe ile SSD arasındaki fark nedir?

NVMe diskler de SSD’dir. Fark, diskin sisteme bağlanma biçimindedir. Standart SSD’ler SATA arayüzü üzerinden yaklaşık 550 MB/sn ile sınırlı çalışır. NVMe diskler ise PCIe hattına bağlanır, çok daha fazla paralel işlemi aynı anda yürütür ve küçük, rastgele erişimlerde birkaç kat daha fazla IOPS sunar.

Web sitesi için NVMe disk şart mı?

Önbellek kullanan kurumsal siteler ve bloglar için şart değildir; SATA SSD yeterli performansı sağlar. Sipariş alan e-ticaret siteleri, üyelik sistemleri ve yoğun veritabanı kullanan uygulamalarda ise NVMe, yanıt sürelerinde belirgin bir iyileşme sağlar.

Veritabanı için hangi disk daha iyi?

Veritabanı belleğe sığmayacak kadar büyükse ya da yazma işlemi yoğunsa NVMe açık ara daha iyi bir seçimdir. Küçük ve çoğunlukla okuma yapılan veritabanlarında, yeterli RAM ile SATA SSD de iyi sonuç verir.

VDS disk hızımı nasıl test ederim?

Linux’ta fio aracıyla 4 KB rastgele okuma ve yazma testleri yapabilirsiniz. Mevcut bir sunucuda diskin darboğaz olup olmadığını görmek için yoğun saatlerde iostat -x 1 komutuyla bekleme sürelerini ve doluluk oranını izleyin.

Disk mi RAM mi: önce hangisini yükseltmeliyim?

Sunucunuz takas (swap) kullanıyorsa veya veritabanınız belleğe sığmıyorsa önce RAM’i yükseltin. Bellek yeterli olduğu halde yazma yoğun işlemlerde gecikme yaşıyorsanız NVMe diske geçmek daha fazla fark yaratır.

Hızlı Diskli VDS

İş yükünüze uygun diski seçin

Önbellekli siteler için ekonomik SSD’li VDS’ten veritabanı yoğun projeler için NVMe diskli Ryzen VDS’e kadar seçenekleri karşılaştırın.

Paylaş:WhatsAppXFacebookLinkedInTelegram

Bunlar da ilginizi çekebilir