SSD baskını ramdisk'ten daha hızlı olabilir mi?


9

Dolayısıyla, tipik bir SSD'nin okuma hızı 250 - 500 mb / saniye olacaktır. Ve bir koç bundan 10 kat daha fazla olacaktır.

Benim sorum: Raid-0 ile 4 SSD herhangi bir nedenle tek bir RAM bellek bloğundan daha hızlı olabilir mi?

Ben ya ram ve ramdisk bir sürü ya da raid-0 ile 4 SSD gideceğim. Hangisi daha hızlı?

Yanıtlar:


12

Dolayısıyla, tipik bir SSD'nin okuma hızı 250 - 500 mb / saniye olacaktır. Ve bir koç bundan 10 kat daha fazla olacaktır.

Ne tür bir RAM'den bahsediyorsunuz? Kesinlikle son zamanlarda PC'lerde yaygın olarak kullanılan bir şey değil gibi görünüyor.

DDR3 SDRAM size yaklaşık 10 GB / sn'lik bir aktarım hızı verebilir (bunun için DDR3-1333'e ihtiyacınız vardır) ve şu anda DDR3-2133 için yaklaşık 17 GB / sn'dir.

Diyelim ki 500 MB / s teslim edebilen dört SSD şeritliyorsunuz ve genel sistem bunu kaldırabiliyor (veri yolu çekişmesi yok, sistem hala I / O bağlı, vb.). Bu size teorik olarak maksimum 2 GB / sn çıktı sağlar. 4xSSD yaklaşık 10 kat kaybeder .

DDR3 SDRAM'ın 10 ns bölgesinde gecikme süresi vardır. İyi bir SSD size 10.000 ns gecikme anlamına gelen 100k IOPS, üstler verebilir. (Örneğin, Intel 530 rastgele 4k okumalar için 41k IOPS belirtir ve bu da size yaklaşık 25.000 ns gecikme süresi sağlar.)

Dört hızlı SSD'ler Çizgili ve tüm yükü görmezden ve belki gecikme 400k IOPS veya 2.500 ns olsun. 4xSSD 250 kat kaybeder .

SSD'den gelen veriler bir yere gitmelidir ve bu "bir yere" RAM olacaktır. CPU oradan alabilir, ancak doğrudan dönen bir tabla sabit disk sürücüsü ile konuştuğundan daha fazla doğrudan SSD ile konuşmaz.

SSD'de veri yolu çekişmesinden muzdarip olmadığınızı varsayarsak, RAM için aynı şeyi varsaymak mantıklıdır. Bu da, bu metriklerden herhangi biriyle bir SSD'nin DDR3 SDRAM ile karşılaştırıldığında korkunç derecede yavaş olduğu sonucuna yol açar .

RAM'in başka dezavantajları vardır. SSD'lere kıyasla bile gigabayt başına çok pahalıdır ve içeriğini korumak için sürekli güce ihtiyaç duyar. Ayrıca, bir RAM diski, işletim sistemindeki bir yazılım yapısı olduğu için RAM ile aynı şekilde çalışmaz. RAM'in performans avantajından hala yararlanmalısınız, ancak sistemin daha sık takas yapmasına (performans için bir ölüm cezasıdır) başvurmasına neden olabilecek aynı RAM miktarını kaybedersiniz ve muhtemelen ham RAM ile aynı performansı verir.


Ramdisk o zaman ..
Koray Tugay

1
@KorayTugay En yüksek performansta mutlak ihtiyacınız varsa, bir RAM diskle gitmelisiniz, ancak bir RAM diskinin RAM ile aynı şekilde çalışmadığını ve en az fiyatı olmayan kendi dezavantajlarına sahip olduğunu unutmayın. . (Ayrıca, kabulü takdir etsem de, başkasının daha iyi bir cevap vermesi durumunda bir cevap kabul etmeden önce bir gün beklemenizi tavsiye ederim.)
39'da CVn

@KorayTugay: Genel olarak, "RAMDisk'e ihtiyacım var mı?" neredeyse her zaman "Hayır. Gerçekten ihtiyacınız varsa, sormak zorunda kalmayacak kadar iyi bilirsiniz." Buna ihtiyacın olduğunu düşündüren ne yapıyorsun?
afrazier

@afrazier geliştirme / büyük bir veritabanı ile test ve ben birçok kez için erişim ve ondan çok fazla veri getirilir. Ben db koç tutacak. Bunu günde 8 10 saat yapıyorum ve 4 5 saniye beklemek bir süre sonra çok uzun görünüyor. Daha hızlı db vurmak gerekiyor.
Koray Tugay

5
Herhangi bir yetkili DBMS, DB'nin çoğunu RAM'de mümkün olduğunca tutacaktır. DB'niz bir RAMdisk'e sığacak kadar küçükse, sadece RAM'e sığacak kadar küçüktür. DBMS'nizi bir SSD ile doğru şekilde ayarlamak size aradığınız performansı verecektir - yerel gelişim için, önbelleğe yazma ve ACID hakkında daha az endişe etme gibi şeylerden bile yararlanabilirsiniz. Bir RAMdisk sistemle savaşıyor.
afrazier

4

"Hayır" cevabının asıl nedeni sadece ikisi arasındaki fark karşılaştırması değil, aynı zamanda işletim sistemi SSD'den okunan verileri önbelleğe alacağı için. Bu önbelleğe alır senin RAM içinde . Böylece SSD'den bir blok okuması RAM'e de bir blok yazma anlamına gelir. Her zaman.

Bu nedenle RAM diskleri çok özel donanım kombinasyonlarında bile daha hızlıdır (örneğin, çok hızlı bir SSD çok yavaş RAM ile birleştirilmiştir).


1
Bu aslında en iyi cevap.
ChrisInEdmonton

sudo zfs set primarycache=none tankRAM tabanlı önbelleğiniz gidiyor. (Tabii ki ZFS kullandığınızı varsayarsak.)
CV17

@ MichaelKjörling Bu doğru ve zfs olmayan yapılarda bile okuma önbelleğini kapatma olanakları var. Ancak bu durumda bile, $ read () $ çağrısı yaparsanız, aslında SSD'den RAM'e bir kopya olacaktır . Bunu önleyemezsiniz, ancak verileri bir şekilde doğrudan CPU önbelleğine okuyorsanız (bu da bir şekilde DMA'dan kaçınmanız anlamına gelir), AMD cpus (ve belki de intels) entegre bir bellek yöneticisine sahipse, biraz değiştirilmiş versiyonları olduğunu düşünüyorum bir şekilde yapabilirdi. Ancak bu durumda bile CPU'nun değiştirilmesi gerekir.
peterh - Monica

3

Asıl sorunuzu cevaplamak için: Hayır. RAM, daha fazla bant genişliği ve daha az gecikme sırasına sahiptir. Yakın bile değil.

Sormadığınız soruyu cevaplamak için: Bu tür bant genişliği gerektiren çok özel bir kullanım durumunuz yoksa, yapmayı planladığınız kötü bir fikirdir. Bu tür bir hıza gerçekten ihtiyacınız varsa, PCIe tabanlı bir SSD (ioDrive veya Intel 910 gibi) RAID-0'daki bir çanta SATA SSD'den çok daha hızlı olacaktır.

Mevcut herhangi bir SSD, darboğaz olacağınız tüketici ve meraklı iş yükleri için yeterince hızlı olacaktır.


Aslında, DDR3 gecikmesi bir SSD'den daha düşük bir büyüklük sırası değildir. Bu var üç dört alt büyüklük sıralaması. Bazı gerçek sayılar için cevabımı görün. (Ancak bant genişliği farkı kesinlikle basketbol sahasında.)
CVn

Gecikme önemli değildir, çünkü ES bloklar halinde olur. En azından 4K bloklar halinde. Bant genişliği önemlidir.
peterh - Monica

@PeterHorvath: Gecikme SSD'lerle hala önemli. Tüm araştırma ve kriterlere tutarlılık ve erken SSD'lerin yaşadığı kekemelik problemlerine bakın. Michael Kjörling'in de belirttiği gibi, RAM gecikmesi SSD'den daha düşük büyüklük sıralarıdır. Lx önbelleklerindeki gecikme hala önemli ölçüde düşüktür ve CPU kayıt gecikmesi daha da düşüktür. Performans için de önemlidir.
afrazier

1

RAM her zaman çevresel veri yolu sisteminin (SATA gibi) sunabileceğinden daha hızlı olacaktır.

Ancak bir RAM diski ile uğraşırken sadece RAM ile uğraşmazsınız. Ayrıca, ham RAM'i işletim sisteminin disk depolama olarak göreceği bir şeye "dönüştürdüğünü" düşünmek için bir grup yazılım (dosya sistemi ve aygıt sürücüleri) vardır.

Bir RAM diskin gerçekten ne kadar hızlı olacağı bu yazılımın kalitesine bağlıdır.

Bunu söyledikten sonra: Normalde anakarta takabileceğiniz en hızlı depolama çözümü kadar birkaç kat daha hızlı olmalıdır.

Belirli kullanım modellerinin farkı daha küçük veya neredeyse sıfır hale getireceği bazı köşe durumlar olabilir, ancak böyle bir sistemle ne yapacağınız hakkında daha fazla ayrıntı olmadan, durumunuza uygulanıp uygulanmayacağını söylemek imkansızdır.

PS: Bir RAM diskinin geçici olacağını unutmayın. Makinenin önyüklemesinden sonra başlangıçta veri ile yüklemeniz gerekecektir. Makineyi kapattığınızda içeriği kaydetmeniz gerekecektir (bir sonraki çalıştırma için ihtiyacınız varsa). Sistem çökerse, herhangi bir şeyi kaydetmek için RAM diskini kaybedersiniz.
Bu, özellikle sık sık yeniden başlatma bekliyorsanız, dikkate almanız gereken bir şeydir. RAM disk içeriğini Kaydetme / Yeniden Yükleme önemsiz olabilir.


Veritabanımı ram'da tutacağım.
Koray Tugay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.