Bisakah SSD raid lebih cepat dari ramdisk?

9

Jadi SSD yang khas akan memiliki kecepatan baca 250 - 500 mb / detik. Dan seekor domba jantan akan memiliki sekitar 10x dari itu.

Pertanyaan saya adalah: Dapatkah 4 ssds dengan raid-0 lebih cepat daripada satu blok memori ram karena suatu alasan?

Saya akan pergi dengan banyak ram dan ramdisk, atau 4 SSD dengan raid-0. Mana yang lebih cepat?

Koray Tugay
sumber

Jawaban:

12

Jadi SSD yang khas akan memiliki kecepatan baca 250 - 500 mb / detik. Dan seekor domba jantan akan memiliki sekitar 10x dari itu.

RAM jenis apa yang Anda maksud? Tentu bukan sesuatu yang telah umum digunakan di PC baru-baru ini, sepertinya.

DDR3 SDRAM dapat dengan mudah memberi Anda kecepatan transfer sekitar 10 GB / s (Anda perlu DDR3-1333 untuk itu) dan saat ini mencapai sekitar 17 GB / s untuk DDR3-2133.

Katakanlah Anda melepaskan empat SSD yang mampu menghasilkan 500 MB / s dan sistem keseluruhan mampu menangani itu (tidak ada pertentangan bus, sistem masih terikat I / O, dll.). Ini memberi Anda throughput maksimum teoritis 2 GB / s. 4xSSD kalah hampir 10 kali lipat .

DDR3 SDRAM memiliki latensi di wilayah 10 ns. SSD yang baik mungkin memberi Anda 100k IOPS, atasan, yang berarti latensi 10.000 ns. (Misalnya, Intel 530 menentukan 41k IOPS untuk bacaan acak 4k, yang memberi Anda latensi hampir 25.000 ns.)

Lepaskan empat SSD cepat dan abaikan semua overhead, dan Anda mungkin mendapatkan 400k IOPS, atau 2.500 ns latensi. 4xSSD kalah dengan faktor 250.

Data dari SSD harus pergi ke suatu tempat, dan bahwa "suatu tempat" akan menjadi RAM. CPU dapat mengambilnya dari sana, tetapi tidak berbicara langsung ke SSD lebih dari berbicara langsung ke hard disk drive yang berputar.

Jika kami berasumsi bahwa Anda tidak menderita pertikaian bus pada SSD, masuk akal untuk menganggap hal yang sama untuk RAM. Yang mengarah pada kesimpulan bahwa dengan salah satu dari metrik ini, SSD sangat lambat dibandingkan dengan DDR3 SDRAM.

RAM memiliki kekurangan lain. Bahkan dibandingkan dengan SSD, harganya sangat mahal per gigabyte, dan membutuhkan daya yang konstan untuk mempertahankan isinya. Selain itu, disk RAM tidak berfungsi sama seperti RAM, karena ini adalah perangkat lunak yang dikonstruksi dalam sistem operasi. Anda masih harus mendapatkan sebagian besar manfaat kinerja dari RAM, tetapi Anda kehilangan jumlah RAM yang sama yang dapat menyebabkan sistem perlu beralih lebih sering (yang merupakan hukuman mati untuk kinerja) dan kemungkinan tidak akan memberikan kinerja yang persis sama seperti RAM mentah.

sebuah CVn
sumber
ramdisk itu kemudian ..
Koray Tugay
1
@ KorayTugay Jika Anda membutuhkan kinerja yang paling absolut, Anda harus menggunakan disk RAM, tetapi perlu diingat bahwa disk RAM tidak berfungsi sama seperti RAM dan memiliki sejumlah kekurangannya sendiri, paling tidak karena harganya. . (Juga, sementara saya menghargai penerimaan, saya mendorong Anda untuk menunggu sehari atau lebih sebelum menerima jawaban jika ada orang lain yang memberikan jawaban yang lebih baik.)
sebuah CVn
@ KorayTugay: Secara umum, jawaban untuk "Apakah saya memerlukan RAMDisk?" hampir selalu "Tidak. Jika Anda benar-benar membutuhkannya, Anda akan cukup tahu sehingga Anda tidak perlu bertanya." Apa yang Anda lakukan yang membuat Anda berpikir Anda akan membutuhkannya?
afrazier
@afrazier pengembangan / pengujian dengan database besar dan saya mengaksesnya berkali-kali untuk dan banyak data diambil darinya. Saya akan menyimpan db di ram. Saya melakukan ini selama 8 10 jam sehari dan menunggu selama 4 5 detik sepertinya terlalu lama setelah beberapa waktu. Saya harus menekan db lebih cepat.
Koray Tugay
5
Setiap DBMS yang kompeten akan menyimpan sebanyak mungkin DB dalam RAM. Jika DB Anda cukup kecil untuk muat dalam RAMdisk, itu cukup kecil untuk cukup masuk dalam RAM. Menyetel DBMS dengan SSD dengan benar akan memberi Anda kinerja yang Anda cari - untuk pengembangan lokal, Anda bahkan dapat mengambil keuntungan dari hal-hal seperti menulis kembali caching dan lebih sedikit khawatir tentang ACID. RAMdisk sedang melawan sistem.
afrazier
4

Penyebab sesungguhnya dari jawaban "tidak" bukan hanya perbedaan perbandingan antara keduanya, tetapi karena OS akhirnya akan men-cache data yang dibaca dari SSD. Ini akan menyimpan ini dalam RAM Anda . Jadi pembacaan blok dari SSD berarti blok-tulis ke RAM juga. Selalu.

Inilah sebabnya mengapa disk RAM lebih cepat bahkan dalam kombinasi perangkat keras yang sangat khusus (misalnya SSD yang sangat cepat dikombinasikan dengan RAM yang sangat lambat).

peterh - Pasang kembali Monica
sumber
1
Ini sebenarnya jawaban terbaik.
ChrisInEdmonton
sudo zfs set primarycache=none tankAda cache berbasis RAM Anda. (Dengan asumsi tentu saja Anda menggunakan ZFS.)
CVn
@ MichaelKjörling Benar, dan bahkan pada konstruksi non-zfs ada kemungkinan untuk mematikan cache read. Tetapi bahkan dalam kasus ini, jika Anda membuat panggilan $ read () $, itu sebenarnya adalah salinan dari SSD ke RAM. Anda tidak dapat menghindari ini, kecuali jika Anda membaca data entah bagaimana langsung ke cache CPU (yang juga berarti Anda menghindari DMA), AMD CPU (dan mungkin intels) memiliki manajer memori terintegrasi, saya pikir versi mereka sedikit dimodifikasi entah bagaimana bisa melakukan itu. Tetapi bahkan dalam kasus ini akan perlu untuk memodifikasi CPU.
peterh
3

Untuk menjawab pertanyaan Anda yang sebenarnya: Tidak. RAM memiliki urutan magnitudo lebih banyak bandwidth dan urutan magnitudo lebih kecil. Itu bahkan tidak dekat.

Untuk menjawab pertanyaan yang tidak Anda tanyakan: Apa yang Anda rencanakan untuk dilakukan adalah ide yang buruk, kecuali jika Anda memiliki kasus penggunaan yang sangat spesifik yang membutuhkan bandwidth semacam itu. Jika Anda benar-benar membutuhkan kecepatan seperti itu, mendapatkan SSD berbasis PCIe (seperti ioDrive atau Intel 910 akan jauh lebih cepat daripada sekantong SSD SATA di RAID-0.

Setiap SSD saat ini akan cukup cepat untuk beban kerja konsumen dan antusias bahwa Anda akan menjadi hambatan.

afrazier
sumber
Sebenarnya, latensi DDR3 bukan urutan besarnya lebih rendah dari SSD. Ini 03:57 lipat lebih rendah. Lihat jawaban saya untuk beberapa angka aktual. (Perbedaan bandwidth pasti di stadion baseball, namun.)
CVn
Latensi tidak penting, karena IO terjadi dalam blok. Setidaknya dalam 4K blok. Bandwidth itu penting.
peterh
@ PeterHorvath: Latency masih merupakan masalah besar dengan SSD. Lihatlah semua penelitian dan tolok ukur dalam konsistensi dan masalah gagap yang dimiliki SSD awal. Dan seperti yang disebutkan oleh Michael Kjörling, latensi RAM beberapa kali lipat lebih rendah dari SSD. Latensi pada cache Lx masih jauh lebih rendah, dan latensi register CPU bahkan lebih rendah lagi. Dan itu semua penting untuk kinerja.
Afrazier
1

RAM akan selalu lebih cepat daripada apa pun yang dapat diberikan oleh sistem bus periferal (seperti SATA).

Tetapi ketika Anda berurusan dengan RAM-disk Anda tidak sepenuhnya berurusan dengan RAM saja. Ada juga banyak perangkat lunak (sistem file dan driver perangkat) untuk mempertimbangkan bahwa "mengubah" RAM mentah menjadi sesuatu yang OS akan melihat sebagai penyimpanan disk.

Seberapa cepat RAM-disk benar-benar akan sangat tergantung pada kualitas perangkat lunak itu.

Karena itu: Biasanya itu masih harus beberapa kali lebih cepat sebagai solusi penyimpanan tercepat yang dapat Anda pasang ke motherboard.

Mungkin ada beberapa kasus sudut di mana pola penggunaan tertentu akan membuat perbedaan lebih kecil atau hampir nol, tetapi tanpa lebih detail tentang apa yang akan Anda lakukan dengan sistem seperti itu, tidak mungkin untuk mengatakan apakah itu akan berlaku untuk situasi Anda.

PS Ingatlah bahwa RAM-disk akan berubah-ubah. Setelah mem-boot mesin, Anda harus memuatnya dengan data. Pada shutdown mesin Anda harus menyimpan konten (jika Anda membutuhkannya untuk menjalankan berikutnya). Jika sistem crash Anda kehilangan RAM-disk dengan menyimpan sesuatu.
Ini adalah sesuatu yang harus Anda perhitungkan, terutama jika Anda mengharapkan sering reboot. Menyimpan / Memuat ulang konten RAM-disk mungkin kurang dari sepele.

Tonny
sumber
Saya akan menyimpan database saya di ram.
Koray Tugay