Bagikan RAM melalui jaringan

48

Rekan saya menggunakan aplikasi yang menghabiskan banyak memori yang membuat sistem terlalu lambat. Apakah mungkin untuk berbagi memori dengan PC lain melalui Internet?

Sistem ini memiliki 8 GB RAM, dan aplikasi mengkonsumsi lebih dari 6 GB.

Inovatif
sumber
5
Jalankan pada server berdaya tinggi melalui Remote Desktop, atau VNC, atau X11 ??
WGroleau
3
Anda lebih baik menggunakan drive penyimpanan besar (HDD atau SSD) sebagai cache, karena jawaban sudah disebutkan.
Firebug
12
untuk referensi di masa mendatang: Tabel angka latensi yang harus diketahui semua orang [yang memiliki komputer] .
Nick Alexeev
79
Anda mungkin lebih beruntung mengunduh lebih banyak RAM ...
Mehrdad
4
Windows versi modern memungkinkan Anda menggunakan stik USB atau kartu SD untuk meningkatkan kinerja. Sebenarnya tidak berarti bahwa perangkat digunakan sebagai RAM tetapi sesuatu yang melakukan antara RAM dan hard drive berbasis platter.
Salman A

Jawaban:

161

Saya hanya menganggap aplikasi mandiri yang berjalan pada mesin "standar" tanpa kemampuan untuk menginstalnya di tempat lain atau menggunakan perangkat keras atau perangkat lunak khusus. Jawaban lain (dengan benar) menangani migrasi perangkat lunak atau perangkat keras khusus untuk tugas tersebut.

Cara apa pun untuk "berbagi RAM" melalui jaringan akan tunduk pada batasan media jaringan itu. Karena gigabit Ethernet terbatas hingga sekitar 100MB / s (megabita) ini berarti kecepatan "RAM" Anda juga akan terbatas.

100MB / s adalah sebagian kecil dari kecepatan RAM yang sebenarnya ada di sistem Anda. Program Anda akan sangat lambat dan terasa seperti sedang berjalan di komputer sejak awal 90-an

Hard drive modern, untuk membaca dan menulis berurutan, sedikit lebih cepat dari ini. SSD beberapa kali lebih cepat.

Ini mengabaikan masalah latensi yang akan membuat program Anda urutan besarnya lebih lambat lagi.

Karena kelambatan dan masalah teknis lainnya yang terlibat, ini bukan masalah yang pernah dianggap layak untuk dicoba diselesaikan oleh sistem "rumah" atau "kantor". Lebih murah dan lebih efektif untuk membeli lebih banyak RAM jika diperlukan.

Beli saja lebih banyak RAM, atau bahkan SSD untuk file halaman. Tidak ada cara lain untuk melakukan ini yang tidak memerlukan jumlah pekerjaan atau perangkat keras yang gila untuk keuntungan kecil.

Mokubai
sumber
46
Swapping / paging melalui ethernet gigabit dapat memiliki latensi yang lebih rendah daripada pagefile pada disk magnetik lokal . misalnya latensi disk 10 ms vs. jauh di bawah waktu ping 1 ms untuk ethernet lokal. Jika server file yang menyimpan pagefile (atau perangkat iSCSI yang Anda gunakan) menyimpannya dalam RAM -nya , Anda berpotensi menang. IDK jika Windows mendukung paging ke file jaringan. (Saya cukup yakin Linux melakukannya, tetapi ini adalah pertanyaan Windows). Oh, baru saja melihat bahwa pertanyaannya mengatakan "melalui Internet", jadi nvm.
Peter Cordes
2
@ MarkHu Mengingat ini ditanyakan pada Pengguna Super, saya tidak berpikir penanya memiliki kontrol atas kode perangkat lunak yang digunakan.
oldmud0
2
@PeterCordes Apa yang Anda gambarkan masih rugi karena membeli lebih banyak RAM atau SSD. Dan bahkan lebih pasti di Windows. ;)
jpmc26
11
@ TomTom untuk rumah dan kantor "normal" menggunakan gigabit masih cukup banyak seperti yang Anda dapatkan di mesin desktop Anda. Hanya karena 25G dan 100G umum (atau setidaknya tersedia) untuk infrastruktur backbone tidak berarti Anda cenderung melihatnya di desktop. Saya bahkan tidak dapat menemukan kartu desktop 10GigE di pemasok lokal mana pun dengan biaya yang masuk akal, apalagi 25GigE. Kartu 10GigE sekitar 4 kali lipat biaya memory stick 8GB di sini. Saya tahu yang saya anggap sebagai peningkatan yang wajar.
Mokubai
9
"Merasa seperti dijalankan di komputer sejak awal 90-an" - anehnya, komputer dari tahun 90-an terasa jauh lebih cepat daripada yang dirasakan komputer saat ini.
Jeremy Visser
74

Hanya untuk kelengkapan: InfiniBand memungkinkan akses langsung ke memori mesin lain.

Namun, itu membutuhkan:

  • Sakelar InfiniBand
  • InfiniBand menambahkan kartu pada setiap mesin
  • Aplikasi harus diprogram khusus untuk menggunakan ini

Ini TIDAK bekerja melalui jaringan yang ada, itu membutuhkan infrastruktur yang sepenuhnya independen untuk semua node yang terhubung. Ini juga TIDAK berfungsi melalui Internet

Gerald Schneider
sumber
53
Ini juga tentunya jauh lebih mahal daripada hanya mendapatkan 8 GiB atau lebih RAM :-).
sleske
40
Oh, hanya dengan satu urutan besarnya;)
Gerald Schneider
7
Anda tidak perlu infiniband, RoCE juga memungkinkan. Namun, ini memang membutuhkan NIC yang mendukung RDMA dan mungkin saklar baru untuk mendukung NIC, dan aplikasi yang diprogram untuk menggunakan RDMA.
alex.forencich
7
+1 karena ini hebat dan benar tetapi - untuk situasi ini - jawaban yang sama sekali tidak berguna :-)
daniel.neumann
1
Anda melakukannya - kecuali jika Anda mendapatkan 25G atau 100G yang lebih mahal. RDMA tidak menyelesaikan masalah latensi.
TomTom
19
Is there any alternative solution?

Ini sangat tergantung pada sifat data.

Anda dapat menjalankan 2 server mysql berbeda di 2 mesin yang berbeda.

Kemudian bagi data menjadi 1/2 dan tulis program untuk secara otomatis mengetahui ke server mana.

Tentu saja ini dapat ditingkatkan ke sejumlah server jika Anda memilikinya.

cybernard
sumber
Saya telah mempertimbangkan menyebutkan bahwa secara umum cara kami "berbagi memori" adalah dengan secara aktif memindahkan aplikasi ke komputer lain dan kemudian bekerja dengannya secara jarak jauh melalui metode apa pun yang tersedia. Ini jelas merupakan alternatif untuk membeli lebih banyak memori, terutama jika mesin lain sudah tersedia. +1
Mokubai
1
Seperti desktop jarak jauh?
Inovasi
4
Anda memiliki 2 komputer yang menjalankan OS terpisah, dan masing-masing memiliki salinan mysql yang berjalan. Jadi komputer # 1 bisa menjadi 192.168.0.1 dan komputer # 2 192.168.0.2 (atau apa pun.) Di PC utama Anda, sekarang Anda dapat ke kedua IP tersebut untuk mengambil data Anda. Mysql atau mariadb pengganti gratisnya menawarkan perpustakaan seperti libmysql untuk ditambahkan ke program Anda sehingga memiliki akses asli ke mysql. Ini bukan desktop jarak jauh, klien-server dan / atau klien dan hubungan beberapa server.
cybernard
15

Ya, ini cukup mudah dilakukan (dan saya sudah melakukan ini, untuk sistem tanpa disk yang memerlukan swap), menggunakan protokol Network Block Device.

Instal nbd-serverdi mesin server, dan konfigurasikan untuk membuat file secara otomatis per-host.

Pastikan mesin klien Anda memiliki NBD dikompilasi ke dalam kernel mereka, dan kemudian konfigurasikan untuk bertukar ke perangkat yang dipasang NBD. The nbd-clientpaket dapat membantu.

Maaf jika hal di atas sedikit kabur - Mesin yang saya lakukan ini tidak dapat dijangkau dari sini; Saya mungkin bisa mengisi detail ketika saya memiliki akses ke mereka.

Ada implementasi server NBD alternatif yang disebut nbdkit; Saya tidak tahu apa-apa tentang itu.

Toby Speight
sumber
Saya baru saja melihat bahwa pertanyaannya memiliki tag Windows. Saya tidak tahu apa-apa tentang Windows - maaf.
Toby Speight
8
+1, menukar GigE pada LAN harusnya memiliki latensi yang lebih rendah daripada driver keras magnetik lokal, jika file server Anda bertukar untuk menjaga file swap di - cache dalam RAM -nya . HD mencari waktu ~ 10 ms vs waktu ping LAN ~ 0,25 ms. Tidak tahu apakah Windows dapat melakukan hal serupa, misalnya dengan file halaman melalui Windows File Sharing (SMB) atau protokol lainnya, tetapi mungkin iSCSI dapat bekerja. OP menyebutkan "melalui Internet"; itu bukan ide yang bagus. Kecuali waktu ping Anda lebih rendah dari latensi akses acak HD Anda, itu bukan kemenangan.
Peter Cordes
Saya tidak melihat bagaimana ini memenuhi syarat sebagai "RAM tambahan". Tidak ada bedanya dengan membuang beberapa data ke file di disk lokal, bukan?
ivan_pozdeev
Untuk klien Wndows, seseorang dapat berbagi perangkat blok di Linux melalui Samba dan memasangnya sebagai disk di Windows dengan ImDisk (ukuran harus ditentukan secara manual).
ivan_pozdeev
Saya juga pernah melakukan ini di Linux sebelumnya, walaupun saya menggunakan implementasi nbd server-client saya sendiri, itu bekerja dengan baik untuk menggunakan perangkat blok nbd sebagai partisi swap.
hanshenrik
9

Mengingat detail kecil, tidak penting "Windows 10, workstation memiliki 8G B RAM" , hanya ada satu jawaban yang masuk akal: Beli lebih banyak RAM dan jalankan lebih sedikit omong kosong.

Membeli SSD dan meletakkan file halaman akan menjadi pilihan terbaik berikutnya, tetapi sungguh-sungguh ... beli lebih banyak RAM.

Melayani file halaman ("berbagi memori") melalui jaringan tentu saja mungkin, tetapi itu adalah ide yang sangat buruk. Meskipun memang benar bahwa ada kasus batas di mana waktu akses melalui jaringan akan lebih baik daripada mengakses drive lokal, itu tidak relevan untuk kasus penggunaan Anda, karena Anda memerlukan waktu akses yang rendah dan bandwidth tinggi secara konsisten . Ingat, Anda tidak mengantisipasi kesalahan satu atau dua halaman, Anda terus bertukar. Kecuali Anda bersedia membayar beberapa ribu, tidak ada cara Anda akan mendekati membeli RAM atau SSD.

8 GB hampir tidak cukup untuk menjalankan Windows 10 dan aplikasi yang haus memori secara bersamaan. Ini hampir tidak cukup untuk menjalankan Word, Excel dan Outlook secara bersamaan. Persis seperti "pengaturan perusahaan total omong kosong" yang benar-benar tidak dapat digunakan yang mana jutaan orang harus hidup dengan setiap hari di laptop kerja mereka. Investasikan 100-200 mata uang dalam modul memori lain, dan akan diamortisasi biayanya dalam seminggu (hal-hal yang membutuhkan waktu beberapa menit sekarang menjadi detik, dan waktu adalah uang - sayangnya ini sering sulit untuk masuk ke kepala penghitung kacang lokal Anda).

Atau, jika Anda memiliki mesin, Anda dapat menggunakan NTLite untuk mengurangi omong kosong Windows 10, mengurangi jejak memorinya. Atau, Anda mungkin mematikan 80% dari layanan yang sebagian besar tidak perlu. Tampaknya tidak bisa dipercaya, tetapi dimungkinkan untuk menjalankan versi Windows terbaru dengan RAM di bawah 2 GB yang digunakan.

Tapi sungguh, beli saja RAM ... ini jauh lebih cepat dan lebih mudah daripada menghabiskan berjam-jam waktu berharga Anda untuk mengurangi omong kosong Windows.

Damon
sumber
2
Apakah windows benar-benar buruk pada ram? Saya menjalankan Debian dengan sistem lengkap dalam ram (tanpa drive fisik) dan dapat memiliki puluhan tab browser web terbuka, teks & spreadsheet LibreOffice, mengedit foto gimp, dan menonton video atau mendengarkan musik, menyisakan sekitar 3 pertunjukan gratis ruang untuk program atau file, semuanya dengan total 8GB. Saya bukan pembenci menang, tetapi dari kata-kata Anda, "total BS corporate setup" terdengar sangat mirip windows itu sendiri ...
Xen2050
1
Yah, itu bisa diperdebatkan - OP benar. Terakhir kali saya membeli 8gb machiens sekitar tahun 2010. Ini adalah 2017. Aplikasi yang menggunakan memori 16gb tidak terlalu langka di bidang tertentu (petunjuk: tidak menulis email dan tidak, kata juga baik-baik saja, kebanyakan orang tidak menulis novel di atasnya). Ini adalah investasi kecil - memori 16gb adalah makan siang yang aneh atau sesuatu.
TomTom
7
@ Xen2050 Saya bertanya-tanya apakah itu benar-benar seburuk itu, jadi pada mesin Windows 10 6GB saya, saya membuka Outlook, Excel, Word, Edge, saya punya contoh sangat kecil dari SQL Server berjalan, Malwarebytes tampaknya melakukan sesuatu dengan 170MB , Saya membuka Visual Studio 2017, Firefox saya buka di sini, dan saya menggunakan memori 65% dan Windows bahkan tidak harus mulai menggunakan memori terkompresi. Jadi, IME, Windows 10 berjalan dengan baik dengan kurang dari 8GB RAM dan, bagaimanapun, ketidaksukaan yang jelas Damon dari Windows tidak relevan dengan jawabannya.
Andrew Morton
1
@ Damon: Tapi kecuali Anda melakukan semacam analisis tentang apa yang memakan RAM ekstra, tidak ada dasar untuk menyalahkannya pada "omong kosong Windows" vs "omong kosong aftermarket yang dipasang oleh majikan". Karena banyak orang (termasuk saya) telah melakukan perhitungan intensif memori, pada Windows 7, Windows 8.x, dan Windows 10, tanpa masalah seperti itu, sangat disarankan (tetapi tidak membuktikan) bahwa pelakunya bukan bagian Windows itu sendiri.
Ben Voigt
6

Alternatif sederhana adalah menjalankan aplikasi pada PC jarak jauh , mungkin di bawah akun pengguna khusus, dan cukup mengontrolnya melalui RDP, VNC atau apa pun yang nyaman.

pemeras
sumber
Jika PC jarak jauh memiliki ram yang cukup ...
LateralTerminal
1
@LateralTerminal Itu tersirat.
Clonkex
2
Ya, menggabungkan RAM dua mesin melalui jaringan ... net tidak akan berfungsi, bukan untuk aplikasi biasa (kotak, jenis abu-abu dengan tombol dan menu).
rackandboneman
6

Pilihan lain adalah untuk sementara menyebarkan aplikasi di lingkungan di mana ram dapat ditingkatkan dengan mudah atau turun.

Saya akan melihat contoh Amazon AWS, yang dapat diubah ukurannya dengan satu reboot.

IE contoh kecil seperti C5.large memiliki ram 4GB dan 2 core, dan biaya $ 2,04 USD per hari untuk linux, atau $ 4,26 USD per hari untuk instalasi windows. Ruang disk EBS adalah biaya tambahan dan timbangan linear dengan GB dialokasikan.

Anda dapat mengatur sistem Anda dalam ukuran yang lebih kecil ini, dan kemudian ketika Anda ingin kebisingan penuh, hentikan, ubah ukuran instance, dan jalankan perangkat lunak.

  • m5.4xlarge adalah 64 GB ram dan 16 core, untuk $ 18,44 USD / hari atau $ 36,10 USD / hari untuk windows.
  • r4.8xlarge adalah 244 GB dan 32 core, untuk $ 51,07 USD / hari atau $ 86,40 USD / hari dengan windows.
  • x1.32xlarge adalah 1952 GB dan 128 core, untuk $ 320,12 USD / hari atau $ 461,43 / hari dengan windows

Atau yang terbesar ...

  • x1e.32xlarge berukuran 3904 GB dan 128 core, untuk $ 640,52 USD / hari atau $ 781,82 / hari dengan windows. Jika kolega Anda membutuhkan lebih dari ini, maka masalahnya perlu menulis ulang dengan cara yang lebih optimal.

https://www.ec2instances.info/ akan membantu Anda memilih ukuran yang sesuai. Perhatikan bahwa beberapa lokasi harganya lebih mahal daripada yang lain. Singapura dan California Utara mahal. Namun VM Anda tidak ada biaya ketika tidak berjalan, selain biaya penyimpanan disk.

Kelemahannya adalah jika Anda membutuhkan memori ini untuk waktu yang lama, membeli waktu VM adalah cara yang mahal untuk melakukannya. Namun akuntan tampaknya kadang-kadang lebih suka biaya operasional seperti sewa, ke biaya modal seperti peningkatan.

Criggie
sumber
1
Saya menyadari bahwa jawaban ini tidak membahas "mengakses ram melalui jaringan" sesuai permintaan OP. Ini lebih seperti mengakses host jarak jauh yang memiliki lebih banyak ram. Namun mengetahui bagaimana anggaran bekerja di beberapa tempat ini mungkin merupakan solusi yang valid untuk menyelesaikan pekerjaan dengan cara yang didanai.
Criggie
4

Seperti yang orang lain katakan itu secara teknis mungkin tetapi tidak sepadan.

Namun jika Anda ingin mempercepat penggunaan komputer Anda, dimungkinkan untuk mengeksternalisasi beberapa aplikasi Anda ke server jauh.

Ini sebagian besar akan tergantung pada apa yang sedang Anda kerjakan dan aplikasi apa yang Anda gunakan. Jika Anda menjalankan program yang membutuhkan banyak waktu pemrosesan untuk output data kecil, Anda bisa membuatnya berjalan di server yang berbeda dari komputer Anda untuk menghemat waktu dan sumber daya saat Anda mengerjakan sesuatu yang lain.

Contoh yang ada dalam pikiran saya adalah server yang menguji kode saya setiap kali saya mendorong modifikasi. Gagasan dengan solusi semacam itu adalah terbatas pada kasus penggunaan khusus.

semua orang
sumber
4

Minta IT untuk membeli lebih banyak RAM untuk PC Anda, dan perlihatkan perlunya menggunakan tangkapan layar dari penggunaan aplikasi di Task Manager.

Christopher Hostage
sumber
4
Solusi praktis ... bahkan meminta TI untuk bertukar sementara lebih banyak ram dari sistem lain harus menjadi jawaban "bebas".
Xen2050
2
@ Xen2050 Sementara itu rekan kerja Anda menangis karena sistemnya tidak lagi boot.
Willtech
3
@ Willtech itu normal dan layak bagi TI untuk mempertahankan suku cadang dari semua bagian, dan suku cadang dari seluruh sistem kerja. Downtime adalah biaya sebenarnya.
Christopher Hostage
3

Ada solusi komersial untuk ini, melalui perusahaan bernama Kove ( http://kove.net/). Ini membutuhkan infrastruktur Infiniband untuk bekerja pada "backplane" (ethernet bekerja secara normal), meskipun opsi lain seperti RoCE kadang-kadang dapat dibuat tersedia, tergantung pada spesifik. Mereka menyediakan sejumlah antarmuka transparan untuk memungkinkan integrasi perubahan kode nol, dan API untuk pemintas kernel dengan lebih banyak akses CPU langsung (yaitu, menghindari overhead kernel). Dalam hal kinerja, itu tergantung pada aplikasi Anda. Jika Anda terikat CPU, maka dampaknya bisa minimal (yang bisa mengejutkan). Jika Anda bandwidth memori terikat pada host lokal, mereka akan memberi Anda memori yang lebih besar, tetapi Anda akan terkekang oleh bottleneck yang sudah ada. Dalam hal ini, apakah menguntungkan untuk beban kerja memiliki memori lebih besar daripada yang bisa dimasukkan ke dalam kotak, dan tidak kehabisan RAM? Kami telah melihat (sangat) hasil yang baik dengan perpustakaan virtualisasi dan pembelajaran mesin python. Aplikasi HPC high-end cenderung lebih buruk, tetapi kami telah menggunakan API C dan berhasil menjaga kinerja tetap dapat diterima sambil mengurangi jumlah node (node ​​ada di sana untuk RAM, bukan siklus CPU), yang merupakan nilai tambah dibandingkan dengan MPI . Sulit untuk mengetahui apakah ini solusi yang baik untuk rekan Anda, tetapi ini merupakan opsi yang dapat Anda perhatikan. Semoga itu bisa membantu. Untuk lebih jelasnya, saya tidak bekerja untuk Kove, dan tidak memiliki insentif keuangan, tetapi saya telah berkolaborasi dengan mereka selama beberapa tahun dan berpikir teknologi ini memiliki potensi untuk secara substansial berdampak pada cara komputasi tertentu dilakukan. tetapi kami telah menggunakan API C dan berhasil menjaga kinerja tetap dapat diterima sambil mengurangi jumlah simpul (node ​​ada di sana untuk RAM, bukan siklus CPU), yang merupakan nilai tambah dibandingkan dengan MPI. Sulit untuk mengetahui apakah ini solusi yang baik untuk rekan Anda, tetapi ini merupakan opsi yang dapat Anda perhatikan. Semoga itu bisa membantu. Untuk lebih jelasnya, saya tidak bekerja untuk Kove, dan tidak memiliki insentif keuangan, tetapi saya telah berkolaborasi dengan mereka selama beberapa tahun dan berpikir teknologi ini memiliki potensi untuk secara substansial berdampak pada cara komputasi tertentu dilakukan. tetapi kami telah menggunakan API C dan berhasil menjaga kinerja tetap dapat diterima sambil mengurangi jumlah simpul (node ​​ada di sana untuk RAM, bukan siklus CPU), yang merupakan nilai tambah dibandingkan dengan MPI. Sulit untuk mengetahui apakah ini solusi yang baik untuk rekan Anda, tetapi ini merupakan opsi yang dapat Anda perhatikan. Semoga itu bisa membantu. Untuk lebih jelasnya, saya tidak bekerja untuk Kove, dan tidak memiliki insentif keuangan, tetapi saya telah berkolaborasi dengan mereka selama beberapa tahun dan berpikir teknologi ini memiliki potensi untuk secara substansial berdampak pada cara komputasi tertentu dilakukan.

Tagihan
sumber
Berapa banyak Gigabytes memori yang dapat Anda beli untuk pemasangan infinityband?
joojaa
Ya, masalah utama di sini adalah titik kecil bahwa ia berbicara tentang memiliki memori 8gb saja dan membutuhkan 16. Ini bukan "Bagaimana saya menggunakan ram jarak jauh" tapi "mengapa sih saya menggunakan sistem yang memiliki spesifikasi 10 tahun" .
TomTom
@ jooja Kami punya 6TB. Berdasarkan apa yang telah kita lihat, kita belum melihat batas. Anda dapat terus menambahkan peranti RAM jarak jauh tambahan. Tampaknya skala cukup linier, jadi ini masalah teknik / biaya. Kami merancang sistem 1PB sekali di atas kertas, tetapi jelas tidak bisa menerimanya.
Bill
@ TomTom Saya tidak melihat komentar tentang 8GB, tapi ya, jelas jika kita berbicara 8GB vs 16GB RAM, beberapa $ K untuk mesin baru akan menyelesaikan masalah.
Bill
Heck, untuk beberapa ratus dolar, Anda mungkin dapat meng-upgrade RAM ke 32GB, kecuali motherboard yang sangat tua dan terbatas.
lembut
2

Sudut pandang lain - mungkin masalahnya bukan terbatas pada sumber daya sistem, tetapi aplikasi boros yang ditulis teman Anda. 6 GB RAM adalah banyak sekali memori.

Hanya karena banyak aplikasi lain terlalu membengkak , tidak berarti aplikasi teman Anda harus salah satunya. Menggunakan metode pemrograman yang berbeda dapat mengurangi kebutuhan memori sambil meningkatkan kecepatan. Sebagai contoh, jika aplikasi memuat seluruh dataset dalam memori dan kemudian bekerja di atasnya akan jauh lebih boros daripada misalnya menyimpan data dalam database SQL (lokal atau jauh) dengan beberapa indeks pilih dan mengaksesnya di sana. Buat itu memproses data blok demi blok jika memungkinkan, alih-alih memuat semuanya sekaligus. Struktur di dalam memori juga bisa boros. Kosongkan memori saat Anda selesai dengan itu. Jangan memasukkan ke dalam RAM apa yang Anda bisa memetakan memori sebagai gantinya. Dan ratusan tips lainnya ...

Namun jika aplikasi benar-benar membutuhkan lebih banyak memori yang perlu disimpan di komputer lain, itu dapat dimodifikasi untuk menggunakan memcached dan sejenisnya untuk menyimpannya di sana. Poin bonus karena akan berskala lebih baik di masa depan.

Matija Nalis
sumber
5
Memori 6gb tidak banyak tergantung pada aplikasi. Bahkan pengguna akhir melakukan pengeditan foto (photoshop menyukai RAM dan kamera kelas atas mengambil gambar 64 megapiksel), Pengeditan Video (JAUH lebih buruk), kemudian ada pekerjaan matematika. Heck, bahkan excel dengan senang hati akan menggunakan beberapa GB. Tidak semua orang menulis email, menggunakan twitter, dan hal-hal lain semacam itu.
TomTom
@ TomTom jika Anda membutuhkan pemrosesan megapiksel yang tinggi, Anda akan memiliki persyaratan memori yang tinggi (berdasarkan permintaan). Tetapi kecuali jika Anda melakukan splicing genom DNA dalam lembar Excel Anda dan masih menggunakan beberapa RAM GB, itu persis jenis mengasapi dan ceroboh pemrograman yang saya bicarakan. Anda tahu, seperti, anggaran rumah Anda sedang diproses dengan cepat (atau lebih cepat) di Lotus 1-2-3 beberapa dekade yang lalu pada mesin dengan 3 kali lipat lebih sedikit RAM (dan setidaknya ratusan kali lebih lambat prosesor) daripada Excel Anda hari ini.
Matija Nalis
1
Whow, sungguh anser yang bodoh. Saya hanya dapat berasumsi bahwa Anda memiliki sedikit pengalaman dengan apa yang digunakan orang untuk excel. Ketika Microsoft membuat versi 64 bit Office, mereka mengatakan tidak ada gunanya - KECUALI untuk Access dan Excel karena ada beberapa orang (kebanyakan manajer) yang menjalankan analisis besar secara brutal melalui Excel, menggunakan banyak gigabytes memori. Fleksibilitas dari Excel dan kemampuan didekati untuk non-programmer membuatnya menjadi alat mereka (statistik cenderung dilatih dalam menggunakan R). Saya pribadi melihat 200 lembar file excel oleh beberapa orang keuangan.
TomTom
Jika anggaran rumah Anda membutuhkan waktu lama untuk dihitung di Excel, Anda jauh lebih kaya daripada saya. Pertanyaan menarik di Excel vs 1-2-3 - inti kalk lingkaran mungkin lebih cepat dalam 1-2-3 karena tidak banyak. Tetapi pada mesin multi-core, Excel akan dengan mudah mengalahkan 1-2-3. Dan jelas lembar splicing genom raksasa mungkin tidak akan terbuka dalam 1-2-3 karena ukuran lembar. Demi kepentingan transparansi, saya harus mengakui bahwa saya sebelumnya bekerja di Excel pada tim inti, jadi saya mungkin bias ...
Chris Rae
1

Jadi pengguna meminta BAGAIMANA untuk berbagi memori melalui jaringan. Tidak jika itu ide yang bagus. Jadi di sini sebenarnya bagaimana Anda bisa melakukannya.

Saya tidak mengatakan ini adalah ide yang baik, atau akan menjadi pemain, tetapi itu harus bekerja.

  • Komputer 1 = "master" - di mana kode dieksekusi
  • Komputer 2 = "anak" - donor memori

Saya berasumsi ini bukan Windows Server di mana Anda dapat membuat titik pemasangan iSCSI.

Komputer 1 Langkah:

  1. Unduh ramdisk gratisam Dataram: http://memory.dataram.com/products-and-services/software/ramdisk
  2. Buat ramdisk dan format dengan NTFS - instruksi tersedia di situs mereka
  3. Di dalam Disk Manager, buat file VHD di ramdisk yang diformat dengan NTFS
  4. Bagikan direktori root Ramdisk di seluruh jaringan dengan SMB - Klik kanan drive, bagikan, bagikan folder ini

Komputer 2 langkah:

  1. Petakan drive bersama dari cild ke Drive
  2. Pasang VHD yang Anda buat pada langkah 3 di atas di Disk manager
  3. Pindahkan lokasi file halaman lokal ke VHD yang terpasang melalui Pindahkan File Halaman Windows
  4. Hapus entri file halaman lainnya.

Selesai!

Peringatan - Anda mungkin dapat melewati omong kosong VHD jika Windows memungkinkan Anda memindahkan file halaman ke jaringan berbagi. Tidak banyak contoh online ini (untuk alasan yang jelas).

Ketidakstabilan sistem yang lengkap dapat terjadi, atau sesuatu yang lain sama sekali. Tidak ada yang benar-benar tahu apa yang akan terjadi.

Brennen Smith
sumber
0

Seperti yang Anda sebutkan "RAM" untuk berbagi melalui jaringan bukan hanya "memori" dalam bentuk apa pun, jawaban akhirnya akan secara teoritis ya, praktis tidak.

Sementara jenis memori lain seperti penyimpanan dan data sementara lainnya secara teratur dibagikan melalui jaringan untuk berbagai keperluan dan alasan. Dengan cara yang sama RAM secara teknis memungkinkan untuk dibagikan melalui jaringan jika diperlukan. Tetapi kinerja dan biaya akan terlalu tinggi untuk layak di dunia nyata.

RAM atau memori akses acak digunakan oleh sistem operasi sebagai ruang kerja sehingga banyak operasi baca / tulis dilakukan di dalamnya. Pada sistem rata-rata, kapasitas kecepatan data dengan RAM paling tinggi dibandingkan bagian lain. Jika Anda meletakkan RAM di jaringan, Anda harus memiliki kapasitas transfer data kecepatan sangat tinggi dan biaya akan sangat tinggi bahkan jika mungkin untuk mencapai secara teknis. Dengan sebagian kecil biaya untuk peningkatan kecepatan jaringan Anda akan mendapatkan RAM untuk mesin Anda secara lokal.

A. Bauani
sumber
0

Aplikasi biasanya berjalan dalam memori virtual, sehingga kebutuhan memori virtualnya dapat melebihi memori fisik yang tersedia dari sistem tanpa konsekuensi selain kinerja. Sistem operasi akan hanya halaman memori virtual ke disk untuk membebaskan memori fisik yang diperlukan di saat tertentu untuk penggunaan aktif. Ini biasanya berfungsi dengan baik untuk aplikasi yang memiliki lokalitas yang wajar (aktivitas pada waktu tertentu agak terfokus pada area terbatas dalam ruang memori virtual aplikasi). Jika aplikasi memiliki lokalitas yang buruk (terus-menerus merujuk memori di seluruh ruang virtualnya), itu akan berkinerja buruk kecuali semua memori virtualnya dapat ditampung dalam memori fisik (semua memori virtualnya adalah penduduk).

Jadi, ada beberapa kemungkinan di sini:

  • Jika aplikasi hanya memiliki tapak yang besar tetapi lokasi yang baik, Anda harus dapat menjalankannya di komputer yang Anda miliki; kinerja dapat diterima, mungkin atau mungkin tidak meningkat secara nyata pada komputer yang memiliki lebih banyak memori.
  • Jika memiliki lokalitas yang buruk, Anda mungkin menemukan bahwa itu akan berjalan pada komputer yang tersedia, hanya saja sangat buruk. (Ini tampaknya menjadi kasus Anda)
  • Mutakhirkan disk drive magnetik (yang diasumsikan) menjadi solid state drive (drive tersebut secara signifikan lebih cepat)
  • Tambahkan memori ke komputer yang Anda miliki (jika mungkin)
  • Anda mungkin perlu menemukan komputer yang memiliki lebih banyak memori dan menjalankannya.
  • Tingkatkan aplikasi sehingga memiliki jejak virtual yang lebih kecil atau lokalitas yang lebih baik (jika Anda atau sedang bekerja sama dengan penulis aplikasi).

Gagasan untuk menggunakan memori pada komputer jarak jauh pada dasarnya membuat file paging jaringan . Secara teori, ini dapat bekerja, tetapi dalam praktiknya, kinerja akan jauh lebih baik jika file paging bersifat lokal ke komputer (hard drive sendiri) karena bandwidth jaringan dan latensi. Tidak masalah jika sistem jarak jauh meng-hosting file paging dalam memori atau pada disk-nya, hambatan (pembatas kinerja yang paling signifikan) adalah jaringan. Ini akan benar terutama melalui internet, tetapi juga akan benar bahkan jika komputer jarak jauh berdekatan pada LAN yang sama.

Zenilogix
sumber
Windows tidak akan mengizinkan file halaman pada drive jaringan, jadi meskipun itu akan cukup cepat, itu tidak bisa dilakukan.
Jamie Hanrahan
@JamieHanrahan Rupanya, Anda bisa jika Anda mengubah pengaturan langsung di registri. Saya ingin tahu apakah mereka mengecualikan beberapa detail karena drive jaringan adalah per-pengguna di Windows. Saya juga curiga ini akan rusak setelah reboot.
ivan_pozdeev
1
Namun demikian itu adalah ide yang buruk, itulah sebabnya UI menghindarinya. Koneksi jaringan tidak cukup dapat dipercaya untuk mempercayai paging. Ingat bahwa banyak data kernel (paged pool) dapat di-paged. Jika tidak dapat diakses, bahkan untuk waktu yang sangat singkat, OS akan macet.
Jamie Hanrahan
0

Ini benar-benar tergantung pada jenis aplikasi apa itu dan untuk apa ram digunakan.

Misalnya banyak aplikasi web dapat menggunakan RAM melalui jaringan dengan menghubungkan ke memcachedserver. Ini akan memungkinkan untuk menyimpan data cache (dan data lain yang harus cepat diakses) di komputer lain dengan banyak RAM.

Tentu saja ini adalah aplikasi khusus dan membutuhkan aplikasi yang dapat menggunakan memcached. Ini tidak akan membantu Anda untuk membuka contoh slack kedua karena browser tidak mendukung penggunaan backend cache.

allo
sumber
-1

Alih-alih berbagi RAM, Hanya kode aplikasi itu untuk membuat file .exe anak , yang akan dijalankan pada PC Jaringan dan melakukan hal yang sama pada pc itu.

T.Todua
sumber