NVMe SSD nedir? SATA SSD'den farkı ve neden önemli
Hosting sayfalarında "NVMe SSD" yazısı standart hale geldi ama ne anlama geldiği nadiren açıklanıyor. Fark gerçek ve bazı iş yüklerinde belirleyici — bazılarında ise hiç önemli değil.
Fark arabirimde, hücrede değil
SATA SSD ve NVMe SSD aynı tür flash bellek kullanır. Fark, o belleğe nasıl ulaşıldığındadır:
- SATA, sabit diskler için tasarlanmış eski bir arabirim. Tek kuyruk, kuyrukta 32 komut.
- NVMe, doğrudan PCI Express üzerinden konuşur. 64.000'e kadar kuyruk, her kuyrukta 64.000 komut.
| SATA SSD | NVMe SSD | |
|---|---|---|
| Sıralı okuma | ~550 MB/s | 3.000-7.000 MB/s |
| Rastgele okuma (4K) | ~90.000 IOPS | 500.000+ IOPS |
| Gecikme | ~100 µs | ~20 µs |
| Eşzamanlı kuyruk | 1 × 32 | 64.000 × 64.000 |
Hangi sayı önemli?
Pazarlama "MB/s" değerini öne çıkarır ama sunucu iş yüklerinde belirleyici olan IOPS ve gecikmedir. Sebebi şu: bir veritabanı büyük dosyaları baştan sona okumaz; binlerce küçük, dağınık okuma yapar.
- Sıralı hız önemli olduğu yerler: büyük dosya yedeği, video işleme, sunucu dosyalarının ilk kurulumu
- IOPS ve gecikme önemli olduğu yerler: MySQL/MSSQL sorguları, oyun dünyası kayıtları, chunk yazma, çok sayıda küçük dosya okuyan uygulamalar
Oyun sunucusu ve web uygulaması ikinci gruptadır. Bu yüzden NVMe'nin faydası "3 kat hızlı" değil, sorgu gecikmesinde kat kat daha iyidir.
Somut etkileri
MySQL sorgu gecikmesi. Buffer pool'a sığmayan bir sorgu diske gider. SATA'da bu yolculuk ~100 µs, NVMe'de ~20 µs. Yoğun saatte saniyede binlerce sorgu yapan bir roleplay sunucusunda toplam fark oyuncunun gördüğü takılmaya dönüşür.
Dünya kaydı. Minecraft chunk yazması, Rust ve Project Zomboid kayıt döngüsü, Satisfactory otomatik kaydı — hepsi yazma sırasında oyun döngüsünü kısa süre durdurur. Disk hızlıysa bu duraklama fark edilmez.
Açılış süresi. Büyük stream klasörlü bir FiveM sunucusunun ilk açılışında binlerce varlık indekslenir; NVMe bunu belirgin kısaltır.
Nerede fark etmez?
- Statik siteler (içerik zaten RAM'de veya CDN'de)
- Düşük trafikli paneller
- Zamanlanmış görev çalıştıran küçük servisler
Bu iş yüklerinde SATA SSD ile NVMe arasındaki farkı ölçemezsiniz.
Kendi sunucunuzda ölçmek
Sıralı hız değil rastgele okuma ölçün:
fio --name=rand --ioengine=libaio --rw=randread \
--bs=4k --numjobs=4 --size=1G --runtime=30 \
--time_based --direct=1 --group_reportingÇalışırken gerçek yükü izlemek için:
iostat -x 1await sütunu milisaniye mertebesine çıkıyorsa darboğaz disktedir — o noktada CPU veya RAM eklemek hiçbir şeyi düzeltmez.
Datafex'te durum
Tüm sanal sunucu ve fiziksel sunucu paketleri NVMe SSD kullanır; SATA seçeneği bulunmuyor. Disk büyütme panelden talep edilebilir, veri kaybı riskini önlemek için küçültme desteklenmez.
İlgili okuma
- Kaç vCPU ve kaç GB RAM gerekir? — disk dahil kaynak hesabı
- MySQL performans ayarları — diskten önce bakılacak yer