RAM murah, dan jauh lebih cepat daripada SSD. Itu hanya volatile. Jadi mengapa komputer tidak memiliki BANYAK RAM, dan saat dinyalakan, muat semuanya ke RAM dari hard drive / SSD dan jalankan semuanya dari sana, dengan asumsi tidak ada kebutuhan nyata untuk bertahan di luar memori? Bukankah komputer lebih cepat?
Tentu saja, sistem operasi saat ini mungkin tidak mendukung ini sama sekali, tetapi adakah alasan mengapa RAM tidak digunakan dengan cara ini?
Jawaban:
Ada beberapa alasan mengapa RAM tidak digunakan seperti itu:
Karena itu: Ya, disk RAM memang ada. Bahkan seperti papan PCI dengan soket DIMM dan sebagai peralatan untuk IOps yang sangat tinggi. (Sebagian besar digunakan dalam database perusahaan sebelum SSD menjadi pilihan). Hal-hal ini tidak murah .
Berikut adalah dua contoh kartu disk RAM low-end yang membuatnya menjadi produksi:
Perhatikan bahwa ada lebih banyak cara untuk melakukan ini daripada hanya dengan membuat disk RAM di memori kerja umum.
Kamu bisa:
Saya yakin ada cara lain untuk menggambarkan, dari Amiga RAD: mengatur ulang disk RAM yang masih hidup ke IOPS, memakai leveling dan Gd tahu apa. Namun, saya akan memotong pendek ini dan hanya daftar satu item lagi:
Harga DDR3 (DRAM saat ini) versus harga SSD:
sumber
RAM loses its contents when powered off.
Tepatnya, hanya RAM volatil yang berfungsi tetapi RAM non-volatil menjaga semuanya bahkan saat dimatikan, seperti misalnya chip Flash . Dalam pengertian itu, SSD tidak berbeda dari RAM tetapi subtipe dari itu.Sistem operasi sudah melakukan ini, dengan halaman cache :
Saat Anda membaca halaman dari disk, sistem operasi Anda akan memuat data itu ke dalam memori, dan membiarkannya di sana sampai lebih baik digunakan untuk memori itu. Jika Anda memiliki memori yang cukup, OS Anda hanya akan membaca setiap halaman sekali, dan kemudian menggunakannya dari memori sejak saat itu. Satu-satunya alasan OS akan melakukan IO disk nyata adalah jika ia perlu membaca halaman yang belum ada di memori, atau jika halaman dituliskan (dalam hal ini, Anda mungkin menginginkannya disimpan ke disk).
Salah satu keuntungan melakukan hal-hal dengan cara ini adalah Anda tidak perlu memuat seluruh hard drive ke dalam memori, yang berguna jika tidak muat, dan juga berarti Anda tidak membuang waktu membaca file yang tidak dimiliki aplikasi Anda. perlu. Keuntungan lain adalah bahwa cache dapat dibuang kapan saja OS membutuhkan lebih banyak memori (lebih baik membaca disk berikutnya sedikit lebih lambat, daripada membuat program Anda macet karena kehabisan memori). Juga, berguna bahwa pengguna tidak perlu memutuskan secara manual apa yang harus di ramdisk atau tidak: Apa pun yang paling sering Anda gunakan akan secara otomatis disimpan dalam memori utama.
Jika Anda memiliki banyak memori, tetapi aplikasi Anda tidak berjalan secepat yang Anda harapkan, ada kemungkinan mereka lebih lambat karena berjalan dengan aman. Sebagai contoh, SQLite adalah perintah yang lebih cepat jika Anda mengatakan tidak menunggu penulisan selesai, tetapi basis data Anda akan benar-benar rusak jika Anda tidak mematikan dengan benar.
Juga,
/tmp
biasanya ramdisk di distro Linux, karena tidak masalah jika data tersebut hilang. Masih ada beberapa perdebatan tentang apakah itu ide yang bagus, karena jika terlalu banyak data ditulis/tmp
, Anda dapat kehabisan memori.sumber
Seperti yang ditunjukkan Alan Shutko dalam komentarnya tentang pertanyaan itu, RAM sebenarnya tidak murah.
Berikut ini beberapa poin data. Ketika saya mencari di Google untuk 4 GB RAM, 64 GB SSD dan 1 TB HDD (hard drive mekanis), berikut adalah biaya yang saya lihat (ini untuk 25 Agustus 2013):
4 GB RAM = $ 32 - $ 36 => RAM = ~ $ 8 per GB
64 GB SSD = $ 69 - $ 76 => SSD = ~ $ 1 per GB
HDD 1 TB = $ 80 => HDD = $ 0,08 per GB
Wah! HDD 100x lebih murah dari RAM! Dan SSD 8x lebih murah dari RAM.
(Plus, seperti yang ditunjukkan dalam jawaban lain, RAM pada dasarnya tidak stabil, dan karenanya Anda memerlukan beberapa bentuk penyimpanan persisten lainnya.)
sumber
Saya melakukan semua operasi baca / tulis untuk pembuatan konten dalam disk RAM di mesin lokal saya. Saya juga menyimpan folder penjurnalan MongoDB saya di sana, juga kompiler dan penterjemah Python dan pustaka standar. Disk ini disimpan saat dimatikan dan dipulihkan pada awal. Disk RAM kedua yang saya gunakan adalah 64 megabita dan semua folder cache browser internet saya arahkan ke sana; yang hilang saat ditutup, dan memerah sendiri ketika sudah penuh.
Gunakan alat yang tepat untuk pekerjaan yang saya kira, akan menjadi jawaban yang saya berikan kepada Anda. Saya menghasilkan data 30-1000x lebih cepat menggunakan disk RAM daripada 7200rpm Western Digital saya.
Ini adalah program yang saya gunakan: http://www.romexsoftware.com/en-us/primo-ramdisk/
... dan ketika 32 gram Ram kurang dari $ 200, saya tidak mengerti mengapa ini tidak menjadi lebih umum.
sumber
Ya, ini adalah premis dari banyak basis data dalam memori yang muncul di pasaran. Salah satu contohnya adalah SAP HANA. Idenya adalah bahwa RAM itu murah dan dari sudut pandang kinerja operasi baca / tulis pada RAM 1000x lebih cepat daripada operasi disk. Jadi sebagian besar data disimpan dalam RAM dan kemudian Anda menentukan strategi penuaan data dengan menggunakan data lama yang didaur ulang kembali ke cold storage (yaitu disk).
sumber
Penjelasan singkat :
Pertama kali aplikasi dijalankan, itu ditransfer dari hard-disk atau jaringan ke RAM. Jadi, jangan khawatir, Anda sudah melakukannya.
Tetapi, biasanya, tidak hanya ada satu file aplikasi / proses dan ada beberapa operasi I / O yang ditargetkan ke hard disk atau jaringan (file lain dari aplikasi atau operasi I / O lainnya dengan sistem dll.), Yang dapat memperlambat Anda aplikasi. Itu bisa diarahkan ke RAM-disk, tetapi Anda harus mempertimbangkan bahwa RAM-disk dihapus saat dimatikan dan harus diisi lagi saat start-up.
Dan RAM tidak semurah yang disajikan dalam pertanyaan. Anda harus menghitung tidak hanya biaya RAM, tetapi biaya RAM yang bekerja, termasuk soket pada motherboard Anda (yang terbatas / jarang dan karenanya lebih berharga) dan biaya data yang hilang, ketika daya turun.
Misalnya komputer dengan HDD 1TB dapat dibeli dengan harga murah dan ini tentang komputasi rumah, komputer dengan RAM 1TB berada dalam kisaran superkomputer. (tetapi Intel sedang mengerjakan sesuatu yang berkisar antara: http://vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html )
sumber
Ini adalah pertanyaan HEBAT dan saya menemukan tanggapan yang menarik. Saya akan mengomentari ini sebagai Oracle DBA dan jawaban saya adalah KHUSUS untuk database Oracle. Ini adalah kesalahan besar yang dilakukan banyak orang ketika bekerja dengan Oracle. Saya tidak yakin apakah ini berlaku untuk aplikasi lain juga. Ini tidak dimaksudkan untuk di luar topik, tetapi dimaksudkan sebagai jawaban khusus.
Ketika Anda menyesuaikan kinerja dengan Oracle, Anda benar-benar ingin membersihkan kemacetan. Meskipun kebanyakan dari kita tidak mengatakannya, ini didasarkan pada Teori Kendala: https://en.wikipedia.org/wiki/Theory_of_constraints
Memori mungkin bukan hambatan Anda. Oracle memiliki mekanisme kompleks untuk mengelola memori dan hanya meningkatkan memori sebenarnya dapat memperlambat segalanya jika area lain berada di mana hambatannya. Biarkan saya memberi Anda satu contoh yang SANGAT umum.
Pertanyaan tampaknya lambat. Konsensusnya adalah jika kita meningkatkan RAM, kita harus meningkatkan waktu respons pertanyaan karena memori lebih cepat daripada disk. Baiklah ... Beginilah cara Oracle menangani manajemen memori untuk data. Oracle memiliki berbagai lokasi memori yang dialokasikan untuk tugas tertentu. Jadi Anda bisa menambah kenangan ini. Area yang digunakan untuk data disebut 'buffer cache'. Ini adalah serangkaian daftar tertaut (jumlah mereka cenderung meningkat pada setiap versi). Setiap kali sebuah blok ditemukan pada disk selama kueri, sebuah algoritma hash dijalankan di atasnya untuk menentukan daftar mana yang akan dimasukkan. Di mana memasukkannya ke dalam daftar didasarkan pada algoritma hitungan sentuh (dijelaskan di situs dukungan Oracle, jadi Anda harus membayar untuk mendapatkannya ... itu tidak terlalu penting).
NAMUN, ketika Anda menjalankan kueri, Oracle mengeluarkan kait pada rantai penyangga yang Anda cari saat itu. LATCH ini (catatan: ini bukan kunci. Google "latch" jika Anda tidak tahu bedanya) memblokir semua operasi lain di rantai itu selama Anda membaca. Jadi itu memblokir membaca DAN menulis (ini sama sekali berbeda dari Oracle mengklaim kunci tidak memblokir dibaca).
Ini diperlukan karena saat Anda membaca blok dalam rantai, Oracle memindahkannya berdasarkan seberapa sering 'diminta'. Blok yang lebih sering diminta dipindahkan ke atas dan blok yang lebih jarang diminta dibiarkan di bagian bawah dan usang. Anda tidak dapat memiliki 2 sesi membaca daftar tertaut dan memindahkan blok di sekitar atau Anda akan menekan pointer yang mengarah ke lokasi yang tidak ada.
Ketika Anda menambah ukuran memori, Anda menambah ukuran setiap daftar yang ditautkan. Ini menambah waktu yang diperlukan untuk membaca daftar. Satu permintaan miskin atau permintaan kompleks dapat melakukan puluhan ribu atau bahkan jutaan membaca daftar tautan. Setiap pembacaan cepat, tetapi jumlahnya mengarah ke kait yang diambil dan ini akan memblokir sesi lainnya. Oracle menyebut ini sebagai 'IO logis' (atau buffer get atau beberapa hal lain. Istilah ini khusus untuk Oracle dan dapat berarti sesuatu yang lain di bagian lain TI).
Jadi, jika daftar lebih panjang dan Anda memiliki SQL yang benar-benar buruk, maka pernyataan SQL akan menahan kait mereka lebih lama. Meningkatkan memori sesekali dapat MENGURANGI kinerja. Sebagian besar waktu, ini tidak akan terjadi. Orang akan menghabiskan banyak uang dan tidak melihat manfaatnya. Yang sedang berkata, ada saat-saat ketika Anda membutuhkan lebih banyak memori dalam cache buffer, tetapi Anda harus mengidentifikasi dengan benar bottleneck untuk mengetahui apakah ini tepat. Saya tidak dapat membahas cara menganalisis ini di pos ini. Lihat forum DBA. Beberapa orang mendiskusikannya di sana. Agak rumit.
Adakah yang punya contoh spesifik dengan perangkat lunak lain di mana ini bisa terjadi? Ada buku bisnis hebat yang disebut 'The Goal' yang membahas meringankan kendala di sebuah pabrik. Proses ini sangat mirip dengan apa yang dilakukan DBA Oracle ketika menilai masalah kinerja. Ini sering membaca standar dalam program MBA. Sangat berharga untuk membaca untuk profesi IT.
https://en.wikipedia.org/wiki/Eliyahu_M._Goldratt
sumber
RAM mungkin murah tetapi tidak semurah penyimpanan tradisional.
Saya memiliki 3TB Hard Drive ($ 99): HDD Quote
Dan Anda akan membutuhkan 48 ini untuk 3TB di ($ 719) masing-masing: RAM Quote
Itu akan berjumlah $ 34.512 vs $ 99. Belum lagi harga perangkat keras yang dibutuhkan untuk menjalankan 3TB RAM.
sumber
Ini sebenarnya dilakukan dalam beberapa skenario. Jika Anda memiliki tumpukan sistem operasi / aplikasi yang cukup kecil, Anda dapat menjalankannya sepenuhnya dalam RAM. Tentu saja ia memiliki semua kekurangan yang dimiliki oleh jawaban yang diterima. Tetapi itu mungkin dan memang terjadi.
Lihatlah Puppy Linux, distribusi Linux yang populer. Cara kerjanya halaman mereka berbicara tentang menjalankan dari RAM: http://puppylinux.org/wikka/howPuppyWorks
sumber
Saya pikir jawabannya sebagian dapat dijawab sebagai berikut:
Tempat:
Mengingat jumlah slot memori yang terbatas, solusi penting datang dalam bentuk chip memori yang lebih tinggi dengan dimensi internal yang lebih kecil, dan / atau penumpukan 3D. Kedua proses berlangsung seperti yang diharapkan selama 36+ bulan terakhir.
Jadi pertanyaannya adalah: " Ukuran memori maksimum DDR3 " atau secara semantik: " DDR3 mengapa tidak ada modul memori yang lebih besar dari 16GB "
Dan jawabannya adalah:
Standar DDR3 memungkinkan kapasitas chip dari 512 megabit hingga 8 gigabit, secara efektif memungkinkan ukuran modul memori maksimum 16 gigabyte ( src )
DDR4 akan mengubah ini, sebagaimana diuraikan dalam peta teknologi ini:
Hasil:
Beberapa peringatan untuk posting menyeluruh Hennes:
pkr298
anggapan bahwa seluruh OS dan program dimuat ke dalam RAM, bukan berarti harus menghapus hard drive / SSDsumber
Anda sebenarnya benar Dalam waktu dekat, semua penyimpanan dan memori akan dalam bentuk di ram nano. NRAM pada dasarnya adalah sakelar "mekanis" yang lebarnya beberapa atom, tidak memerlukan arus untuk mempertahankan keadaan sehingga hemat energi dan tidak perlu didinginkan dan karena sakelar itu sangat kecil kerapatannya sangat tinggi dan ini bagus karena dua alasan, satu adalah akses ke memori sangat cepat dan Anda akan dapat memiliki data terabyte pada perangkat kecil seperti ponsel. jika Anda ingin membaca lebih lanjut, lihat ini: http://www.nantero.com/mission.html dan ini http://en.wikipedia.org/wiki/Nano-RAM
sumber
Seperti yang orang lain katakan RAM tidak stabil dan sekitar 10 kali lipat dari biaya SSD.
Namun, ada IS produk di luar sana yang datang cukup dekat dengan apa yang kamu ceritakan - sayangnya saya tidak bisa mengingat nama.
Apa itu drive berbasis RAM (IIRC max 64gb) yang digabungkan dengan kartu CF dan baterai. Ketika Anda menghidupkan sistem di atasnya menyalin isi kartu CF ke RAM (saya percaya melayani permintaan dari kartu CF jika mereka belum dimuat.) Pada shutdown, isi RAM disalin ke kartu CF - -Baterai cukup besar untuk memungkinkan ini selesai sebelum habis.
Itu tidak murah.
sumber