SSD VPS nedir? Flash depolama ve avantajları
SSD VPS, dönen diskler yerine flash depolama kullanan sanal sunucudur. IOPS ve düşük gecikmenin ne sağladığını, satın almadan önce sorulacak 3 soruyla öğrenin.
SSD VPS nedir?
SSD VPS, diski dönen bir sabit disk yerine flash bellek kullanan bir sanal özel sunucudur. SSD, solid state drive ifadesinin kısaltmasıdır. Hareketli parça içermeyen ve NAND flash yongalarından oluşan depolama birimidir. VPS, virtual private server ifadesinin kısaltmasıdır. Fiziksel bir ana makinenin yalıtılmış bir bölümüdür. Kendi işletim sistemini çalıştırır ve size tam bir sunucuymuş gibi sunulur. Bu iki kavram bir araya geldiğinde, etiket tek bir şeyi belirtir. Sunucunuz bir veri bloğunu okuduğunda önce herhangi bir mekanik parçanın hareket etmesi gerekmez.
Tanımın tamamı budur. Aşağıdaki her şey, bu etiketin belirtmediği konularla ilgilidir. Bunun nedeni, bir fiyatlandırma sayfasındaki "SSD hosting" ifadesinin, arkasındaki depolama dizisi hakkında çok az bilgi vermesidir.
Bir VPS'nin normal bir sanal makineden farkını hâlâ anlamaya çalışıyorsanız, VPS, VM ve VPC arasındaki fark başlıklı sayfa ilk olarak okunmalıdır.
Barındırma hizmeti sağlayıcıları depolama boyutu yerine neden depolama hızını belirtir?
Bir plan sayfasında CPU çekirdekleri, bellek, disk boyutu ve bant genişliği listelenir. Ardından disk hakkında boyut belirtmeyen bir kelime eklenir. Barındırma hizmeti sağlayıcıları bunu yapar, çünkü depolama kapasitesi yıllar önce depolama için önemli bir ölçüt olmaktan çıkmıştır. Bir sunucunun kullanımda nasıl tepki vereceğini belirleyen iki sayı IOPS (saniye başına giriş/çıkış işlemi) ve gecikmedir (tek bir işlemin yanıtlanmasının ne kadar sürdüğü).
Bunun nedeni mekanik farktır. Bir hard disk, verileri dönen plakalar üzerinde tutar ve bunları hareketli bir kol üzerindeki kafayla okur. Plakanın başka bir yerindeki bloğa erişmek için kolun arama yapması gerekir. Ardından doğru sektörün kafanın altına gelmesi için diskin dönmesi gerekir. 7200 devir/dakika hızında, yarım dönüş ortalama yaklaşık 4 ms sürer. Arama işlemi buna birkaç milisaniye daha ekler. Flash bellekte kol ve plaka bulunmaz. Bu nedenle okuma, onlarca mikrosaniye içinde sonuçlanan elektronik bir aramadır.
The data behind this chart
[
{
"device": "7200 rpm hard disk",
"random_read_iops": "125",
"read_latency_ms": 8
},
{
"device": "SATA SSD",
"random_read_iops": "90,000",
"read_latency_ms": 0.15
},
{
"device": "NVMe SSD",
"random_read_iops": "600,000",
"read_latency_ms": 0.08
}
]Bir 7200 rpm hard disk, saniyede yaklaşık 125 rastgele 4k okuma için derecelendirilir. Bu okumalardan birinin yanıtlanması yaklaşık 8 ms sürer. Bir NVMe sürücü, aynı okuma türü için yaklaşık 600,000 değerinde derecelendirilir. Her okuma yaklaşık 0.08 ms sürer. Aradaki SATA SSD ise yaklaşık 90,000 değerinde derecelendirilir. Bu değerleri yüzde iyileşmesi olarak değil, büyüklük sıraları olarak değerlendirin.
Bu verilerle ilgili iki uyarı vardır. Bunlar, her sınıftaki tam sürücüler için yayımlanan teknik özelliklerdir. Bu nedenle üretici veri sayfası değerleridir ve bir VPS üzerinde ölçülmüş değildir. Ayrıca hiçbir zaman tam bir sürücüye sahip olmazsınız. Biriminiz, aynı donanım üzerinde diğer müşterilerin yanında bulunan tek bir cihazın veya bir dizinin bir bölümünü kullanır.
İki sütun farklı soruları yanıtlar. Bu nedenle bunları birlikte değerlendirin. Gecikme, tek bir işlem için ne kadar beklediğinizi gösterir. IOPS, sürücünün aynı anda kaç işlem üzerinde çalışabileceğini gösterir. Flash, yüksek IOPS değerlerine paralellik sayesinde ulaşır. Bunun nedeni, çok sayıda flash yongasının aynı anda çok sayıda isteği yanıtlaması ve derin bir kuyruğun bu yongaları meşgul tutmasıdır. Tek iş parçacıklı bir program bir okuma gönderip yanıtını bekler ve ardından sonraki okumayı gönderirse grafikteki en yüksek değeri hiçbir zaman göremez. Bu program bunun yerine gecikme sütunundaki değeri görür.
SSD, NVMe, SATA ve PCIe: dört farklı katmandaki dört terim
Alıcılar bu terimleri karıştırır çünkü her biri sistemin farklı bir bölümünü tanımlar.
- SSD depolama ortamıdır. Verilerin manyetik plakalar yerine NAND flash yongalarında tutulduğu anlamına gelir.
- SATA, mekanik diskler döneminde tasarlanmış bir arabirimdir. En fazla 6 Gbit/s hıza ulaşır. Bu değer, gerçek aktarım hızında yaklaşık 550 MB/s anlamına gelir. Komut kuyruğu 32 bekleyen komut içerir.
- NVMe (non-volatile memory express), flash için özel olarak geliştirilmiş bir protokoldür. Her biri binlerce komut içeren çok sayıda kuyruğu destekler. Böylece birden fazla CPU çekirdeği, tek bir dar kuyuyu paylaşmadan sürücüyle aynı anda iletişim kurabilir.
- PCIe (peripheral component interconnect express), NVMe'nin üzerinde çalıştığı veri yoludur. Grafik kartlarının bağlandığı hatlarla aynı türdedir.
Bu nedenle bir SATA SSD ile bir NVMe SSD verileri flash üzerinde depolar. Aralarındaki fark, kullandıkları arabirimdir. SATA SSD, herhangi bir sabit diskten hâlâ çok daha hızlıdır. Ancak 32 komutluk kuyruk, gerçekleştirebileceği paralel iş miktarını sınırlar. Flash depolamanın güçlü olduğu nokta da tam olarak paralel işlemedir. Hangisi için ödeme yapmanın değerli olduğu iş yüküne bağlıdır. NVMe ve SATA SSD seçimi bu konuyu ayrıntılı olarak ele alır.
Yerel flash mı, ağa bağlı depolama mı?
Aynı sözcük altında iki çok farklı yapı sunulur.
Yerel depolama, flash sürücülerin VPS ile aynı fiziksel hostun içinde bulunmasıdır. İstek, tek bir makinenin içinde PCIe üzerinden ilerleyip doğrudan geri döner. Gecikmenin onlarca mikrosaniye düzeyinde kalmasını sağlayan şey budur.
Ağa bağlı depolama, sanal diskin ayrı bir depolama kümesinde, çoğunlukla Ceph veya SAN (storage area network) üzerinde bulunmasıdır. Her okuma ve yazma, diske ulaşmak için ağ üzerinden ilerler. Sağlayıcılar buna genellikle "cloud block storage" veya "elastic volumes" adını verir. Flash gerçektir. Ancak ağ üzerinden yapılan aktarım da gerçektir ve her işleme eklenir. Bu nedenle gecikme onlarca mikrosaniye yerine yüksek yüzlerce mikrosaniye veya düşük milisaniye düzeyine çıkar.
Seçeneklerden hiçbiri yanlış değildir. Ağ depolaması bir hostun arızalanmasına dayanıklıdır, çünkü veriler hiçbir zaman o hostta bulunmaz. Sağlayıcı sunucunuzu başka bir donanımda başlatabilir ve disk sunucuyu takip eder. Yerel NVMe daha hızlıdır ve tek bir fiziksel makineye bağlıdır. Bu nedenle o makinedeki bir donanım arızası, yedekten geri yükleme yapılmasını gerektirir. Kullanılan depolama türünü sorun. Neredeyse hiç kimse bunu yapmaz.
Gerçek bir sunucuda fark nasıl hissedilir
Sunucu işlemleri çoğunlukla uzun sıralı aktarımlardan değil, küçük ve rastgele okuma-yazma işlemlerinden oluşur. Bu nedenle pazarlama metnindeki MB/s değeri, sayfadaki en az yararlı sayıdır.
- Veritabanı işlemlerinin commit edilmesi. Kalıcılık garantisi veren bir veritabanı, bir işlem commit edildiğinde
fsyncçağrısını yapar ve verilerin gerçekten depolandığını sürücünün onaylamasını bekler. Sabit diskte bu bekleme milisaniyeler sürer. Bu da küçük bir veritabanını saniyede düşük yüzlerce commit ile sınırlar. Flash depolamada aynı bekleme süresi milisaniyenin bir bölümüdür. PostgreSQL, MySQL veya üretim veritabanı olarak SQLite kullanıldığında farkın en belirgin olduğu yer burasıdır. - Paket kurulumları.
apt installbinlerce küçük dosyanın paketini açar ve bu dosyaları işlem ilerledikçe diske senkronize eder. Bu işin neredeyse hiçbiri sıralı değildir. Bu nedenle performans IOPS ile sınırlanır. - Container image indirmeleri.
docker pullsıkıştırılmış katmanları ağ üzerinden alır ve ardından bunları binlerce küçük dosyaya çıkarır. İndirme işlemi ağ tarafından sınırlanır. Çıkarma işlemi disk tarafından sınırlanır. Yavaş bir volume üzerinde beklediğiniz bölüm çıkarma işlemidir. - Önyükleme ve yeniden başlatma. Başlangıçta bir kernel ve initramfs, ardından volume boyunca dağılmış yüzlerce küçük unit dosyası ve paylaşılan kitaplık okunur.
Bunların hiçbiri büyük bir sıralı okuma değildir. Saniyede 500 MB aktarabilen, ancak yalnızca 3,000 IOPS sunan bir volume, docker compose pull sırasında yine de yavaş hissedilir. Çünkü bekleme megabayt başına değil, dosya başına hesaplanır.
Fiyatlandırma sayfasında "SSD cloud hosting" ifadesi neden neredeyse hiçbir şey anlatmaz
Bu ifade yalnızca ortamı belirtir. Sürücünün hangi arayüzü kullandığını ve bu sürücünün sunucunuzla aynı makinede olup olmadığını belirtmez. Planınızın ulaşmasına izin verilen üst sınır hakkında da bilgi vermez.
En önemli konu bu üst sınırdır ve en az reklamı yapılan özellik de budur. Sağlayıcılar, tek bir ana makine birçok müşteriye hizmet verdiği ve sınırsız bir komşunun diğer müşterilerin kaynaklarını tüketebileceği için birim başına IOPS ve aktarım hızını sınırlar. Yüz binlerce IOPS kapasitesine sahip donanımda birkaç bin IOPS sınırı olması normal ve şeffaftır; ancak bu sınır plan açıklamasında görünmez. Her iki planda da "SSD" yazabilir. Ancak planlardan biri, birim başına sınırı olmayan yerel NVMe kullanırken diğeri 3,000 IOPS ile sınırlı paylaşımlı bir küme birimi kullanabilir.
Sınırlar iki biçimde uygulanır. Sürekli sınır, hiçbir zaman değişmeyen sabit bir üst sınırdır. Ani kullanım sınırı ise düşük bir temel hız ve bu hızı bir süre aşmanıza olanak tanıyan krediler sağlar. Birim boşta kaldığında bu krediler yeniden dolar. Ani kullanım sınırı, beş dakikalık bir testte çok iyi görünebilir. Ancak bir veritabanı içe aktarma işleminin veya büyük bir geri yüklemenin ortasında hız temel seviyeye düşer. Sağlayıcı yüksek bir değer veriyorsa bu değeri ne kadar süreyle korumanıza izin verildiğini sorun.
VPS'nizin gerçekte ne sunduğunu kontrol etme
Konuk sistemin içinden yalnızca hipervizörün bildirdiği bilgileri görebilirsiniz.
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalvda yerine diskiniz için yazdırılan lsblk aygıt adını kullanın. ROTA ve rotational dosyası, çekirdeğe aygıtın dönel olmadığı bildirildiğinde 0, tersi bildirildiğinde ise 1 değerini okur. Sanal disk bu işareti hipervizörün bildirdiği bilgiye göre ayarlar. Bu nedenle işaret, alttaki fiziksel donanımı değil sanal aygıtı tanımlar. MODEL, vda gibi bir virtio diski için genellikle boştur. Öykünülmüş bir SATA denetleyicisinde ise QEMU HARDDISK gibi genel bir dize içerebilir. Konuk sistemlerin ana makinenin disk dizisini görmesi beklenmez ve görmezler.
Bu nedenle işareti yalnızca bir ipucu olarak değerlendirin ve diğer değerleri ölçün. fio ile birim üzerindeki bir dosyada rastgele 4k testi çalıştırın. Kuyruk derinliğini uygulamanızın gerçekten kullandığı değere ayarlayın. Ani performans kredilerini tüketmek için testi yeterince uzun çalıştırın. VPS'yi doğru şekilde kıyaslama, fio komutlarını ve gerçekte olduğundan iyi sonuçlar üreten yaygın hataları içerir.
Satın almadan önce sağlayıcıya sorulması gereken üç soru
- Depolama hypervisor üzerinde yerel mi, yoksa ağa bağlı mı? Yanıt, gecikme süreniz için alt sınırı belirler ve fiziksel bir host arızalandığında verilerinize ne olacağını ortaya koyar. Bu soruya açıkça yanıt veren sağlayıcı, konuyu değerlendirmiştir.
- Volume üzerindeki IOPS sınırı nedir? Bir sayı talep edilmelidir. "Sınırsız" ve "enterprise grade" birer sayı değildir. Gerçekten bir sınır yoksa aynı host üzerindeki başka bir kullanıcının yedekleme süresi boyunca tüm storage array kaynaklarını tüketmesini neyin engellediği sorulmalıdır.
- Bu sınır sürekli mi, yoksa burst kullanımına mı izin veriyor? Burst kullanımına izin veriliyorsa baseline değerini ve burst süresini sorulmalıdır. Gece çalışan işiniz baseline değerine göre çalışacağından planlama bu değer esas alınarak yapılmalıdır.
Flash aşınır mı ve bu sizin sorununuz mu?
Flash hücreleri sınırlı sayıda yazma döngüsünü destekler. Bu nedenle sürücüler dayanıklılık değerini TBW (terabayt cinsinden yazılan veri) veya DWPD (günde sürücü yazma sayısı) olarak yayımlar. Sürücü, yazma işlemlerini hücrelere dengeli biçimde dağıtır. Bu işleme wear levelling denir. Ayrıca başarısız olan hücrelerin yerine kullanılmak üzere yedek blokları hazırda tutar. VPS üzerinde aşınma sağlayıcının sorunudur. Sağlayıcı, kendi sürücülerindeki SMART sayaçlarını izler ve dayanıklılık değeri tükenmeden önce donanımı değiştirir. Sizin sorununuz flash teknolojisinden daha eskidir. Bir sürücü yedek değildir. Biriminizin altındaki redundancy de yedek değildir. Çünkü silme işlemlerini de verileri kopyaladığı kadar eksiksiz kopyalar.
Asıl yaptığınız tercih, gigabayt başına fiyattır. Flash depolama, spinning disklerden gigabayt başına daha pahalıdır. Bu nedenle aynı fiyattaki bir SSD planı genellikle hard disk planından daha az kapasite sunar. Medya veya arşivler için yüksek miktarda alana ihtiyacınız varsa hızlı birimi küçük tutun ve büyük veri miktarını daha ucuz bir yere koyun. Bu yaklaşım, yedekleri sunucu dışında tutmak için de uygundur. Depolamanın toplam ücret içindeki yerini görmek için bir VPS'nin gerçekte ne kadara mal olduğu kalemleri açıklar.
FAQ
SSD VPS, NVMe VPS ile aynı mıdır?
Her NVMe VPS, SSD VPS'tir; çünkü NVMe sürücüleri flash bellektir. Ancak tersi geçerli değildir. "SSD" olarak tanıtılan bir plan, mekanik diskler için tasarlanmış bir arabirimin arkasında çalışan ve 32 komut kuyruğuna sahip, yaklaşık 550 MB/s hız sınırı bulunan SATA SSD olabilir. Her ikisi de sabit diskten çok daha hızlıdır. Aralarındaki fark iş yükü açısından önemliyse plan adından anlamaya çalışmak yerine sağlayıcıya planın hangisini kullandığını sorun.
SSD VPS web sitemi hızlandırır mı?
Disk işlemlerini hızlandırır; yalnızca disk işlemlerini. Her istek için birden fazla veritabanı sorgusu çalıştıran bir sayfa hızlanır; çünkü bu sorgular ve bunların commit işlemleri küçük rastgele G/Ç işlemleridir. Bellekten veya önbellekten sunulan bir sayfa gönderilirken diske hiç erişmez. Bu nedenle çok az değişiklik olur. Depolama alanını bu amaçla yükseltmeden önce bir isteğin hangi bölümünün yavaş olduğunu ölçün.
VPS'imin gerçekten SSD depolama kullandığını nasıl kontrol edebilirim?
Konuk sistemin içinden fiziksel donanımı doğrulayamazsınız. lsblk -d -o NAME,ROTA sanal aygıtın ne bildirdiğini gösterir. Bu değere hypervisor karar verdiği için buradaki 0 bir ipucudur, kanıt değildir. Uygulanabilir kontrol bir ölçüm yapmaktır: birkaç dakika boyunca rastgele 4k okuma iş yüküyle fio çalıştırın ve bildirdiği gecikmeye bakın. Tek haneli milisaniye cinsinden rastgele okuma gecikmeleri, dönen diskleri veya aşırı yüklenmiş bir ağ birimini işaret eder. Onlarca mikrosaniye cinsinden değerler yerel flash belleğe işaret eder.
Ağa bağlı SSD depolama, yerel NVMe'den daha mı kötüdür?
İşlem başına daha yavaştır ve farklı şekilde arızalanır. Her okumaya ve her yazmaya ağ gidiş-dönüş süresi eklenir. Bu nedenle her ikisi de flash bellek olsa bile gecikme daha yüksektir. Buna karşılık verileriniz tek bir fiziksel ana bilgisayarda bulunmaz. Bu nedenle bir ana bilgisayar arızası birimi de devre dışı bırakmaz. Anlık görüntüler ve canlı geçiş de sağlayıcı için daha kolaydır. Gecikmeye duyarlı bir veritabanı için yerel flash depolama seçin. Birimin korunması mikrosaniyelerden daha önemliyse ağ depolamayı seçin.