Поділитися оперативною пам’яттю по мережі


49

Мій колега використовує додаток, який споживає багато пам'яті, що робить систему занадто повільною. Чи можливо ділитися пам’яттю з іншими ПК через Інтернет?

Система має 8 ГБ оперативної пам’яті, а додаток споживає більше 6 ГБ.


5
Запустити його на потужному сервері через віддалений робочий стіл, або VNC, або X11 ??
WGroleau

3
Вам краще використовувати великі накопичувачі (HDD або SSD) як кеш, як відповіді вже згадуються.
Firebug


79
Можливо, у вас буде більше шансів завантажити більше оперативної пам’яті…
Mehrdad

4
Сучасні версії Windows дозволяють використовувати USB-накопичувачі або SD-карти для підвищення продуктивності. Це насправді не означає, що пристрій використовується як оперативна пам’ять, але щось, що працює між оперативною пам’яттю та жорстким диском на базі плат.
Салман

Відповіді:


162

Я розглядав лише окрему програму, яка працює на "стандартній" машині без можливості просто встановити її в іншому місці або використовувати спеціалізоване обладнання або програмне забезпечення. Інші відповіді (правильно) стосуються міграції програмного забезпечення або спеціальної апаратури для виконання завдання.

Будь-який спосіб "поділитися оперативною пам'яттю" через мережу буде обмежений цим мережевим носієм. Оскільки навіть гігабітний Ethernet обмежений приблизно 100 МБ / с (мегабайти), це означає, що швидкість «оперативної пам’яті» також буде обмежена.

100 Мб / с - це невелика частка швидкості оперативної пам’яті, яка є фактично у вашій системі. Ваша програма буде болісно повільною і буде відчувати, ніби вона працює на комп’ютері з початку 90-х

Сучасні жорсткі диски для послідовного читання і запису трохи швидші, ніж це. SSD є в кілька разів швидшими.

Це ігнорування проблем із затримкою, які зроблять вашу програму на порядок знову повільнішою.

У зв'язку з повільністю та іншими технічними проблемами, це не проблема, яку хтось коли-небудь вважав варто намагатися вирішити для "домашньої" або "офісної" систем. Це дешевше і ефективніше купувати більше оперативної пам’яті, якщо вона потрібна.

Просто придбайте більше оперативної пам’яті або навіть SSD для файлу сторінки. Немає іншого способу зробити це, який не потребує шаленого обсягу роботи чи обладнання для невеликої користі.


46
Заміна / пейджинг на гігабітному Ethernet може мати меншу затримку, ніж файл сторінки на локальному магнітному диску. наприклад, затримка диска 10 мс порівняно з часом менше 1 мс для локальної Ethernet. Якщо файловий сервер, на якому розміщено файл сторінки (або пристрій iSCSI, на який ви обміняєтесь), зберігає його в своїй оперативній пам'яті, ви потенційно виграєте. IDK, якщо Windows підтримує підключення до мережевого файлу. (Я впевнений, що це робить Linux, але це питання для Windows). Ой, щойно побачив, що питання пише "через Інтернет", так що nvm.
Пітер Кордес

2
@MarkHu З огляду на це запитували Super User, я не думаю, що запитувач не має контролю над кодом використовуваного програмного забезпечення.
oldmud0

2
@PeterCordes Те, що ви описуєте, все ще втрата від придбання більшої кількості оперативної пам’яті або SSD. І навіть напевне, що це стосується Windows. ;)
jpmc26

11
@TomTom для домашнього та "нормального" офісного використання гігабіт все ще майже те, що ви отримуєте на своєму настільному верстаті. Тільки тому, що 25G та 100G є загальними (або принаймні доступними) для магістральної інфраструктури , не означає, що ви, ймовірно, бачите це на робочому столі. Я навіть не можу знайти карту настільного 10GigE у будь-якого місцевого постачальника за розумну ціну, не кажучи вже про 25GigE. Карти 10GigE приблизно в 4 рази перевищують вартість 8-ГБ пам'яті. Я знаю, що вважаю розумним оновленням.
Мокубай

9
"відчуваю, що він працює на комп'ютері з початку 90-х" - дивно, що комп'ютери з 90-х відчували себе набагато швидше, ніж комп'ютери відчувають сьогодні.
Джеремі Віссер

73

Просто для повноти: InfiniBand дозволяє отримати прямий доступ до пам'яті інших машин.

Однак для цього потрібно:

  • Перемикач InfiniBand
  • Додаток InfiniBand на картці в кожній машині
  • Програма повинна бути спеціально запрограмована для її використання

Він НЕ працює над існуючою мережею, для нього потрібна абсолютно незалежна інфраструктура для всіх підключених вузлів. Він також НЕ працює через Інтернет


53
Це, безумовно, набагато дорожче, ніж просто отримати ще 8 Гб або стільки оперативної пам’яті :-).
sleske

40
О, лише на один порядок або близько того;)
Джеральд Шнайдер

7
Вам не потрібен infiniband, також можливий RoCE. Однак для цього потрібні NIC, які підтримують RDMA і, можливо, новий комутатор для підтримки NIC, і програма, запрограмована на використання RDMA.
alex.forencich

7
+1, тому що це чудово і правильно, але - у цій ситуації - абсолютно марна відповідь :-)
daniel.neumann

1
Ви робите - якщо ви не отримаєте 25G або 100G, які дорожчі. RDMA не вирішує питання затримки.
TomTom

19
Is there any alternative solution?

Це сильно залежить від характеру даних.

Ви можете запустити 2 різні сервери mysql на 2 різних машинах.

Потім розділіть дані на 1/2 і напишіть програму, щоб автоматично знати, на який сервер перейти.

Звичайно, це можна змінити на будь-яку кількість серверів, якщо у вас їх є.


Я думав згадати, що загалом спосіб, яким ми «ділимось пам’яттю», полягає в активному переміщенні програми на іншу машину, а потім віддаленій роботі з нею будь-якими доступними методами. Це, безумовно, альтернатива придбанню більшої кількості пам'яті, особливо якщо вже є інша машина. +1
Мокубай

1
Як віддалений робочий стіл?
Іннов

4
У вас є два комп’ютери, на яких працює окрема ОС, і на кожному з них працює копія mysql. Таким чином, комп'ютер №1 може бути 192.168.0.1, а комп'ютер №2 192.168.0.2 (або будь-який інший) на вашому головному ПК тепер ви можете отримати обидва ці IP-адреси, щоб отримати свої дані. Mysql або його безкоштовна заміна mariadb пропонує такі бібліотеки, як libmysql, додати до вашої програми, щоб мати власний доступ до mysql. Це не віддалений робочий стіл, його клієнт-сервер та / або зв'язок із клієнтом та декількома серверами.
кібернард

15

Так, це зробити досить просто (і я це зробив для бездискових систем, які потребують підкачки), використовуючи протокол Network Block Device.

Встановіть nbd-serverна серверну машину та налаштуйте її для автоматичного створення файлів-хостів.

Переконайтеся, що у ваших клієнтських машин складений NBD у свої ядра, а потім налаштуйте їх для заміни на пристрої, встановленому NBD. nbd-clientПакет може допомогти.

Вибачте, якщо вищесказане трохи розпливчасте - машини, на яких я це робив, не доступні звідси; Можливо, я зможу заповнити дані, коли матиму доступ до них.

Існує альтернативна реалізація сервера NBD nbdkit; Я нічого не знаю про це.


Я щойно помітив, що питання має тег Windows. Я нічого не знаю про Windows - вибачте.
Toby Speight

8
+1, обмін на GigE в локальній мережі повинен бути меншим затримкою, ніж локальний магнітний жорсткий драйвер, якщо файловий сервер, який ви обміняєте, зберігає керований файл swap у своїй оперативній пам’яті. Час високої чіткості HD - ~ 10 мс порівняно з часом пінг для локальної мережі ~ 0,25 мс. Не маю уявлення, чи може Windows зробити щось подібне, наприклад, із файлом сторінки через спільний доступ до файлів Windows (SMB) або будь-яким іншим протоколом, але, можливо, iSCSI може працювати. ОП згадує "через Інтернет"; це не було б гарною ідеєю. Якщо ваш час пінг не нижчий затримки з випадковим доступом у форматі HD, це не виграш.
Пітер Кордес

Я не бачу, як це визначається як "додаткова оперативна пам'ять". Це не відрізняється від завантаження деяких даних у файл на локальному диску, ні?
ivan_pozdeev

Для клієнта Wndows можна поділитись блочним пристроєм в Linux через Samba та змонтувати його як диск у Windows з ImDisk (розмір потрібно буде вказати вручну).
ivan_pozdeev

Я також робив це в минулому в Linux, хоча я використовував власну реалізацію сервера-клієнта nbd, він прекрасно працював, щоб використовувати блок nbd-пристрою як розділ swap.
hanshenrik

9

Враховуючи невеликі, неважливі деталі "Windows 10, робоча станція має 8G B ОЗУ" , насправді є лише одна розумна відповідь: Купуйте більше оперативної пам’яті та працюйте менше лайно.

Придбання SSD та розміщення файлу сторінки було б наступним найкращим варіантом, але насправді ... придбайте більше оперативної пам’яті.

Обслуговування файлу сторінки ("поділитися пам'яттю") по мережі, звичайно, можливо, але це дуже погана ідея. Хоча це правда , що існують випадки , коли прикордонними час доступу по мережі буде краще , ніж доступ до локальному диску, що це не має значення для вашого випадку використання, тому що вам потрібно постійне час низького доступу і високу пропускну здатність , в той же час. Пам'ятайте, що ви не очікуєте помилок однієї чи двох сторінок, ви постійно міняєте місцями. Якщо ви не готові заплатити пару тисяч, немає ніякого способу наблизитися до придбання оперативної пам’яті або SSD.

8 Гб майже не вистачає для одночасного запуску Windows 10 та додатка, який зберігає пам'ять. Навряд чи достатньо для одночасного запуску Word, Excel та Outlook. Це саме типова цілком непридатна "загальна фігня на фігнях", з якою мільйони людей мають жити кожен день на своїх робочих ноутбуках. Вкладіть 100-200 валюти в інший модуль пам’яті, і це амортизує його вартість протягом тижня (речі, які займають хвилин зараз, займають секунди, а час - гроші - на жаль, це часто важко потрапити в голову вашого місцевого лічильника квасолі).

Крім того, якщо ви володієте машиною, ви можете використовувати NTLite, щоб скоротити лайно Windows 10, зменшивши його пам'ять. Або ви можете просто вимкнути 80% здебільшого непотрібних послуг. Це здається неймовірним, але можливо запустити останню версію Windows з використанням 2 Гб оперативної пам’яті.

Але насправді, просто купуйте оперативну пам’ять ... це набагато швидше і простіше, ніж витрачати години вашого дорогоцінного часу на скорочення лайно Windows.


2
Невже вікна справді погані на барана? Я запускаю Debian із повною системою в операційному режимі (без фізичного приводу) і може мати десятки відкритих вкладок веб-браузера, текст і таблиці LibreOffice, редагування фотографій gimp, перегляд відео чи прослуховування музики, залишаючи близько 3 гіг безкоштовно місця для програм або файлів, всього на 8 ГБ. Я не ненависник виграшів, але з ваших слів "загальна корпоративна установка BS" дуже нагадує самі Windows ...
Xen2050

1
Ну, це спірно - ОП має на це право. Останній раз, коли я купував 8 Гбіт машин, був близько 2010 року. Це 2017. Програми, які використовують пам'ять 16 Гб, не такі вже й рідкісні для певних полів (підказка: не писати електронну пошту і ні, слово також добре, більшість людей не пишуть на ній романів). Це невелика інвестиція - пам'ять 16 Гб - це чудовий обід чи щось таке.
TomTom

7
@ Xen2050 Мені було цікаво, чи це насправді так погано, тому на моїй машині Windows 10 6 Гб я відкрив Outlook, Excel, Word, Edge, у мене дуже маленький екземпляр запущеного SQL Server, Malwarebytes, здається, щось робить із 170MB , Я відкрив Visual Studio 2017, тут я відкрив Firefox, і я на 65% використовую пам'ять, і Windows навіть не довелося починати використовувати стиснуту пам'ять. Отже, IME, Windows 10 працює з менш ніж 8 ГБ оперативної пам’яті, і, у всякому разі, явна неприязнь Деймона до Windows не має значення для відповіді.
Ендрю Мортон

1
@Damon: Але якщо ви не зробили якийсь аналіз того, що споживає додаткову оперативну пам'ять, немає підстав звинувачувати це в "лайні Windows" проти "лайні післяпродажного, встановленому роботодавцем". Оскільки безліч людей (включаючи мене) зробили об'ємні обчислення пам'яті в Windows 7, Windows 8.x та Windows 10, без подібних проблем, настійно підказує (але не доводить), що винуватець не є членом самої Windows.
Бен Войгт

6

Проста альтернатива - запустити додаток на віддаленому ПК , можливо, за допомогою спеціалізованого облікового запису користувача та просто керувати ним за допомогою RDP, VNC або будь-якого зручного.


Якщо на віддаленому ПК достатньо оперативної пам'яті ...
LateralTerminal

1
@LateralTerminal Це мається на увазі.
Клонке

2
Так, об'єднання оперативної пам'яті двох машин через мережу ... мережа не працюватиме, як не для звичайних додатків (квадрат, сірий вид з кнопками та меню).
rackandboneman

6

Інший варіант - тимчасово розгорнути програму в середовищі, де оперативної пам'яті можна легко змінити масштаб вгору або вниз.

Я б подивився на екземпляр Amazon AWS, який можна змінити в розмірі одним перезавантаженням.

IE такий невеликий екземпляр, як C5.large, має 4 ГБ оперативної пам’яті та 2 ядра, і коштує 2,04 долара США на день для Linux, або 4,26 долара США на день для встановлення Windows. Дисковий простір EBS - це додаткова вартість і лінійно масштабується з виділеними ГБ.

Ви можете налаштувати вашу систему в меншому розмірі, а потім, коли хочете вийти на повний шум, зупиніть її, змініть розмір примірника та запустіть програмне забезпечення.

  • m5.4xlarge - 64 ГБ оперативної пам’яті та 16 ядер, за $ 18,44 USD / день або $ 36,10 USD / день для windows.
  • r4.8xlarge - 244 ГБ і 32 ядра, за $ 51,07 USD / день або $ 86,40 USD / день з windows.
  • x1,32більший - 1952 ГБ і 128 ядер, за $ 320,12 / день або 461,43 $ / день з вікнами

Або найбільший ...

  • x1e.32xlarge - 3904 ГБ і 128 ядер, за $ 640,52 USD / день або 781,82 $ / день з windows. Якщо вашому колезі потрібно більше, ніж це, то проблема потребує переписування більш оптимальним способом.

https://www.ec2in вещества.info/ допоможе підібрати відповідний розмір. Зауважте, деякі місця коштують дорожче, ніж інші. Сінгапур та Північна Каліфорнія дорогі. Однак ваш VM нічого не коштує, коли він не працює, крім витрат на зберігання диска.

Мінус полягає в тому, що якщо вам потрібна ця пам’ять протягом тривалого часу, придбання VM часу - це дорогий спосіб зробити це. Однак, здається, бухгалтери іноді віддають перевагу операційним витратам, як оренда, а не капітальним витратам, таким як оновлення.


1
Я усвідомлюю, що ця відповідь не стосується "доступу до оперативної пам’яті по мережі" відповідно до запиту ОП. Це більше схоже на доступ до віддаленого хоста, який має більше оперативної пам’яті. Однак, знаючи, як працюють бюджети в деяких місцях, це може бути прийнятним рішенням, щоб виконати роботу на фундаментальний спосіб.
Criggie

4

Як говорили інші, це технічно можливо, але не варто.

Однак якщо ви хочете прискорити використання свого комп'ютера, можливо, екстерналізація деяких ваших програм на віддалений сервер.

В основному це залежатиме над тим, над чим ви працюєте, і яким додатком ви користуєтесь. Якщо у вас запущені програми, для яких потрібно невеликий час обробки для невеликого виводу даних, ви можете змусити їх працювати на сервері, відмінному від вашого комп'ютера, щоб заощадити час та ресурси, працюючи над чимось іншим.

Я маю на увазі приклад - сервер, який перевіряє мій код кожного разу, коли я натискаю модифікацію. Ідея такого рішення полягає в тому, що воно обмежується конкретними випадками використання.


4

Попросіть ІТ придбати більше оперативної пам’яті для свого ПК та продемонструйте необхідність, використовуючи скріншот використання програми в Диспетчері завдань.


4
Практичне рішення ... навіть прохання ІТ тимчасово замінити більше оперативної пам’яті на інші системи має бути «вільною» відповіддю.
Xen2050

2
@ Xen2050 Тим часом ти колега плаче, бо його система більше не завантажується.
Willtech

3
@Willtech - це нормально і правильно для ІТ підтримувати запасні частини всіх частин і запасних частин цілих робочих систем. Час простою - реальна вартість.
Крістофер Заручник

3

Для цього існує комерційне рішення через компанію під назвою Kove ( http://kove.net/). Потрібна інфраструктура Infiniband для роботи на "задній план" (Ethernet працює нормально), хоча інші варіанти, такі як RoCE, іноді можуть бути доступні, залежно від конкретних особливостей. Вони забезпечують ряд прозорих інтерфейсів, що дозволяють інтегрувати нульову зміну коду, та API для обходу ядра з більш прямим доступом до процесора (тобто, уникаючи накладних витрат на ядро). Щодо продуктивності, це залежить від вашої заявки. Якщо ви пов'язані з процесором, то вплив може бути мінімальним (що може дивувати). Якщо пропускна здатність пам’яті обмежена на локальному хості, вони нададуть вам більше пам’яті, але вас буде заважати вже наявне вузьке місце. У цьому випадку, чи вигідніше, щоб обсяг роботи мав більше пам’яті, ніж можна поставити у вікно, а не закінчилася оперативна пам’ять? Ми побачили (дуже) хороші результати при віртуалізації та бібліотеках машинного навчання пітона. Програми HPC високого класу, як правило, гірші, але ми використовували API C і нам вдалося утримати ефективність роботи прийнятною, зменшуючи кількість вузлів (вузли були там для оперативної пам'яті, а не для процесорних циклів), що є плюсом порівняно з MPI . Чи хороше це рішення для вашого колеги, важко сказати, але це варіант, який ви можете вивчити. Сподіваюся, що це допомагає. Щоб було зрозуміло, я не працюю на Kove і не маю фінансових стимулів, але я співпрацюю з ними протягом багатьох років і вважаю, що ця технологія має можливість суттєво вплинути на певні обчислення. але ми використовували API C і нам вдалося зберегти хитові показники прийнятними при зменшенні кількості вузлів (вузли були там для оперативної пам'яті, а не для процесорних циклів), що є плюсом порівняно з MPI. Чи хороше це рішення для вашого колеги, важко сказати, але це варіант, який ви можете вивчити. Сподіваюся, що це допомагає. Щоб було зрозуміло, я не працюю на Kove і не маю фінансових стимулів, але я співпрацюю з ними протягом багатьох років і вважаю, що ця технологія має можливість суттєво вплинути на певні обчислення. але ми використовували API C і нам вдалося зберегти хитові показники прийнятними при зменшенні кількості вузлів (вузли були там для оперативної пам'яті, а не для процесорних циклів), що є плюсом порівняно з MPI. Чи хороше це рішення для вашого колеги, важко сказати, але це варіант, який ви можете вивчити. Сподіваюся, що це допомагає. Щоб було зрозуміло, я не працюю на Kove і не маю фінансових стимулів, але я співпрацюю з ними протягом багатьох років і вважаю, що ця технологія має можливість суттєво вплинути на певні обчислення.


Як багато гігабайт пам'яті можна придбати для налаштування нескінченного діапазону?
joojaa

Так, головне питання полягає в тому, що він говорить про те, щоб мати лише 8 Гбайт пам'яті та потребує 16. Це не "Як я можу використовувати віддалений оперативної пам'яті", а "чому, до біса, я використовую систему, яка має 10-річну специфікацію" .
TomTom

@jooja У нас є 6TB. Виходячи з побаченого, ми не бачили межі. Ви можете продовжувати додавати додаткові пристрої віддаленої оперативної пам’яті. Він, схоже, масштабується досить лінійно, тому це інженерно-витратна проблема. Ми розробили 1PB-систему один раз на папері, але очевидно не змогли це поле перевірити.
Білл

@TomTom Я не побачив коментар про 8 Гб, але так, зрозуміло, якщо ми говоримо про 8 ГБ проти 16 ГБ оперативної пам’яті, кілька доларів К для нової машини вирішать проблему.
Білл

Чорт за кілька сотень доларів, ви можете, можливо, оновити оперативну пам’ять до 32 Гб, якщо тільки материнська плата не смішно стара і обмежена.
пухнастий

2

Ще одна точка зору - можливо, проблема полягає не в обмеженні системних ресурсів, а в марному додатку, який пише ваш друг. 6 ГБ оперативної пам’яті - це дуже багато пам’яті.

Тільки тому, що багато інших додатків надмірно роздуті , не обов'язково означає, що ваш додаток для друзів повинен бути одним із них. Використання різних методів програмування дозволяє знизити потреби в пам'яті, підвищивши швидкість. Наприклад, якщо додаток завантажує цілий набір даних у пам'ять, а потім працює на ньому, буде набагато марніше, ніж, наприклад, зберігання даних у (локальній чи віддаленій) базі даних SQL з кількома вибраними індексами та доступ до них там. Змусьте обробляти дані по-блоковому, якщо це можливо, замість того, щоб завантажувати їх відразу. Структури пам'яті також можуть бути марними. Вільна пам'ять, коли ви закінчите з цим. Не завантажуйте в ОЗУ те, що ви можете замість цього зробити карту пам'яті. І сотні інших порад ...

Якщо додаток , однак на самому ділі потрібно більше пам'яті , яка повинна зберігатися на інших комп'ютерах, він може бути змінений , щоб використовувати Memcached і як зберігати його там. Бонусні бали, оскільки вони в майбутньому будуть масштабнішими.


5
6 Гб оперативної пам’яті - це не дуже багато залежно від програми. Навіть кінцеві користувачі займаються редагуванням фотографій (фотошоп любить оперативну пам’ять, а камера високого класу знімає 64 мегапіксельні зображення), редагування відео (набагато гірше), тоді є математична робота. Хек, навіть excel із задоволенням буде використовувати пару ГБ. Далеко не всі пишуть електронні листи, використовуючи щебет та інші подібні речі.
TomTom

@TomTom, якщо вам потрібна висока мегапіксельна обробка, у вас будуть високі вимоги до пам'яті (за характером запиту). Але якщо ви не робите сплайсинг генома ДНК на своєму листі Excel, і він все ще використовує пару ГБ оперативної пам’яті, про це якраз і роздуваюче, і неохайне програмування. Ви знаєте, як, наприклад, ваш домашній бюджет був щасливо оброблений так само швидко (або швидше) в Lotus 1-2-3 кілька десятиліть тому на машинах з на 3 порядки менше оперативної пам'яті (і принаймні в сотні разів повільнішими процесорами), ніж ваш Excel сьогодні.
Matija Nalis

1
Що, який неосвічений ансер. Я можу лише припустити, що у вас дуже мало досвіду в тому, для чого люди використовують excel. Коли Microsoft зробила 64-бітну версію Office, вони сказали, що для цього мало користі - ОКРЕМИ для доступу та Excel, оскільки деякі люди (в основному менеджери) здійснюють жорстокий аналіз через Excel, використовуючи багато гігабайт пам'яті. Гнучкість Excel та доступність для непрограмістів змушує їх перейти до інструменту (статистики, як правило, навчаються використовувати R). Я особисто бачив, як деякі фінансові люди посилаються на 200 аркушів Excel.
TomTom

Якщо ваш домашній бюджет займає багато часу для обчислення в Excel, ви набагато багатші, ніж я. Цікаве запитання щодо Excel vs 1-2-3 - цикл основного обчислення може бути швидшим у 1-2-3, оскільки він не робить стільки. Але на багатоядерній машині Excel легко переможе 1-2-3. І очевидно, що гігантські листові сплайс-геноми, ймовірно, не відкриються через 1-2-3 через розміри аркушів. В інтересах прозорості я повинен визнати, що раніше я працював над Excel над основною командою calc, тому я можу бути упередженим ...
Chris Rae

1

Тож користувач попросив ЯК поділитися пам’яттю по мережі. Не, якщо це гарна ідея. Тож ось насправді, як ви могли це зробити.

Я не кажу, що це гарна ідея, чи буде виступ, але це має працювати.

  • Комп'ютер 1 = "майстер" - де виконується код
  • Комп'ютер 2 = "дитина" - жертводавець пам'яті

Я припускаю, що це не Windows Server, де можна створити точку монтування iSCSI.

Комп'ютер 1 крок:

  1. Завантажте безкоштовний ramdisk Dataram: http://memory.dataram.com/products-and-services/software/ramdisk
  2. Створіть рамдиск та відформатуйте його за допомогою NTFS - інструкції доступні на їхньому сайті
  3. У диспетчері дисків створіть VHD-файл на ramdisk, відформатованому з NTFS
  4. Поділитися кореневим каталогом Ramdisk у мережі за допомогою SMB - Клацніть правою кнопкою миші диск, надайте спільний доступ, поділіться цією папкою

Комп'ютер у 2 етапи:

  1. Мапа спільного диска з cild на Диск
  2. Встановіть VHD, який ви створили на кроці 3 вище, в диспетчері дисків
  3. Перемістіть файл локальної сторінки на змонтований VHD за допомогою Переміщення файлу сторінки Windows
  4. Видаліть інші записи файлів сторінки.

Готово!

Застереження - можливо, ви зможете пропустити нонсенс VHD, якщо Windows дозволить перемістити файл сторінки на мережеву папку. Прикладів цього в Інтернеті не так багато (з очевидних причин).

Може виникнути повна нестабільність системи або зовсім інше. Ніхто насправді не знає, що буде.


0

Оскільки ви згадуєте "ОЗУ" для спільного використання по мережі не просто "пам'яті" будь-якого виду, остаточна відповідь буде теоретично так, практично ні.

Хоча інші види пам’яті, такі як сховища та інші тимчасові дані, регулярно діляться по мережі з різних цілей та причин. Таким же чином оперативну пам’ять технічно можна розділити по мережі за потреби. Але продуктивність і вартість будуть занадто високими, щоб здійснити в реальному світі.

Оперативна пам’ять або пам'ять з випадковим доступом використовується операційною системою як робочий простір, тому на ній виконується багато операцій читання / запису. У середній системі ємність швидкості передачі даних з оперативною пам’яттю найвища порівняно з іншими частинами. Якщо ви розміщуєте оперативну пам’ять в мережі, вам потрібно мати дуже високу швидкість передачі даних, і вартість буде небіжною, навіть якщо це можливо для технічного досягнення. З невеликою частиною витрат на оновлення швидкості мережі ви отримаєте оперативну пам’ять для машини на місцевому рівні.


0

Програми, як правило, працюють у віртуальній пам'яті, тому їх потреба у віртуальній пам'яті може перевищувати наявну фізичну пам'ять системи без наслідків, окрім продуктивності. Операційна система просто виправить віртуальну пам’ять на диск, щоб звільнити фізичну пам'ять у міру необхідності в будь-який момент для активного використання. Зазвичай це працює чудово для додатків, які мають розумну локальність (активність у будь-який момент часу дещо зосереджена на обмежених областях у віртуальній пам'яті програми). Якщо програма має погану локальність (постійно посилається на пам'ять у всьому віртуальному просторі), вона буде погано працювати, якщо вся її віртуальна пам'ять не може бути розміщена у фізичній пам'яті (вся її віртуальна пам'ять є резидентом).

Отже, тут є кілька можливостей:

  • Якщо програма просто має велику площу, але хороша локальність, ви повинні мати змогу запустити її на наявному комп'ютері; продуктивність може бути прийнятною, може або не помітно покращитися на комп’ютері, що має більше пам’яті.
  • Якщо у нього поганий населений пункт, ви можете виявити, що він буде працювати на доступному комп’ютері в будь-якому випадку, дуже погано. (Мабуть, це стосується вас)
  • Оновіть (припускається) магнітний диск на твердотільний накопичувач (вони значно швидше)
  • Додайте пам'ять до наявного у вас комп'ютера (якщо можливо)
  • Можливо, вам доведеться знайти комп’ютер, який має більше пам’яті, і запустити його.
  • Удосконаліть додаток, щоб він або мав менший віртуальний слід або кращу локалізацію (якщо ви або є у співпраці з автором програми).

Ідея використання пам'яті на віддаленому комп’ютері - це, в основному, створення мережевого файлу підкачки . Теоретично це може працювати, але на практиці продуктивність буде набагато кращою, якщо файл підкачки буде локальним для комп'ютера (власний жорсткий диск) через пропускну здатність мережі та затримку. Не має значення, чи віддалена система розміщує файл підкачки в своїй пам'яті або на своєму диску, вузьким місцем (найважливішим обмежувачем продуктивності) буде мережа. Це особливо стосується Інтернету, але також буде правдою навіть у тому випадку, якщо віддалений комп'ютер знаходиться поруч із тією самою локальною мережею.


Windows не дозволить створити файл сторінки на мережевому диску, тому навіть якщо це буде досить швидко, це зробити неможливо.
Джеймі Ханрахан

@JamieHanrahan Мабуть, ви можете, якщо змінити налаштування безпосередньо в реєстрі. Цікаво, чи вони виключили деякі деталі, хоча мережеві накопичувачі є користувачем у Windows. Я також підозрюю, що це порушиться після перезавантаження.
ivan_pozdeev

1
Тим не менш, це жахлива ідея, саме тому інтерфейс її виключає. Мережеві з'єднання недостатньо надійні для довіри для підкачки. Пам’ятайте, що багато даних ядра (підпорядкований пул) можуть бути підготовлені на сторінку. Якщо вона недоступна, навіть дуже короткий час, ОС вийде з ладу.
Джеймі Ханрахан

0

Це дійсно залежить від типу програми та для чого використовується таран.

Наприклад, багато веб-додатків можуть використовувати оперативну пам’ять по мережі, підключаючись до memcachedсервера. Це дозволить зберігати дані кешу (та інші дані, до яких повинен бути швидкий доступ) на іншому комп'ютері з великою кількістю оперативної пам’яті.

Звичайно, це специфічний додаток і йому потрібна програма, яка може використовувати запам’ятоване. Це не допоможе вам відкрити другий екземпляр слабій, оскільки браузер не підтримує використання такого резервного кешу.


-1

Замість обміну оперативною пам’яттю просто введіть код у програму для створення дочірнього .exe-файлу , який запуститься на мережевому ПК та зробить те саме на цьому ПК.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.