Совместное использование аппаратных ресурсов по сети: в частности, ОЗУ

8

У меня есть две системы. Один - это ноутбук и имеет 2 ГБ оперативной памяти, а другой - настольный компьютер с 8 ГБ оперативной памяти. Можно ли совместно использовать эти ресурсы, чтобы обе системы имели 10 ГБ ОЗУ?

Программное обеспечение, которое я хочу запустить на обеих системах, - это Android Studio ..., которое в настоящее время переносится не очень хорошо.

Дополнительная информация: Обе системы работают под управлением Windows 8 и имеют процессоры Intel Core i3 .

спасибо чел, но у меня есть другой вопрос .. как насчет обмена через кабель Ethernet? например, через коммутатор или V-LAN, вообще не используя Интернет и получая скорость передачи спуска ???

Alvin
источник
2
Нет, баран не подлежит передаче.
Ctrl-Alt-Dlt
15
Конечно, вы могли бы сделать это. Но общая оперативная память будет такой же быстрой, как и скорость вашей сети. Другими словами, это возможно (ну, теоретически в любом случае), но не практично.
Ajedi32
4
Неразумно просить вас переключать операционные системы, но вы знаете, что в Linux есть сжатие виртуальной памяти, что означает, что вы можете использовать больше оперативной памяти, чем физически, сжимая определенные ее сегменты с помощью LZO.
Нафтули Кей
5
Если вы используете Linux, вы можете установить что-нибудь, используя виртуальный диск, сетевое блочное устройство и файл подкачки. Я не верю, что у Windows есть такая возможность.
Марк
4
Вы задаете не тот вопрос. Вопрос, который вы должны задать, заключается в следующем: как использовать более мощный компьютер для сборки? И один из возможных ответов - плагин Gradle SSH .
Майкл Хэмптон

Ответы:

21

Только некоторые программы позволяют разделять процессы по сети (некоторые программы 3D-рендеринга, эффективно разделяющие оперативную память) (см. Ответ Джулиана Найта)

Проблема с интернетом была бы слишком медленной (см. Ответ Spiff)

Я думаю, что оперативная память вашего рабочего стола не будет совместима с аппаратным обеспечением, поэтому простое размещение оперативной памяти в вашем ноутбуке не сработает.

Что ты можешь сделать:

Установите клиент удаленного рабочего стола на свой ноутбук и подключитесь к нему. Таким образом, вы можете «работать на своем рабочем столе» через туннель.

Так что тяжелая программа (android studio) будет работать на вашем рабочем столе! И ноутбук будет беспокоить только клиент удаленного рабочего стола.

Это эффективно использует аппаратное обеспечение ПК и, следовательно, будет работать лучше (если ваш ноутбук и клиент удаленного рабочего стола достаточно и достаточно просты для работы).

Я хотел бы добавить, что это не «разделяет» оперативную память, а просто использует оперативную память компьютера, чего вполне достаточно.

Павел
источник
1
Я думаю, что есть программы, которые позволяют вам перетаскивать окно из одной операционной системы в другую, но я не уверен в названии, если обработка все еще выполняется локально или что-то еще.
Исмаэль Мигель
1
Параллели, но это виртуализация.
Артур Кей
1
@Alvin Приложение для удаленного рабочего стола не будет работать через Интернет, если вы специально не настроите для этого свою сеть. Если вы подключаетесь к своему рабочему столу, используя его IP-адрес в сети, соединение будет существовать только в вашей сети.
Логарр,
9

Вероятно, нет, так как это будет довольно медленно по сравнению с подкачкой виртуальной памяти на локальный диск. SATA-3 - это 6 гигабит в секунду, и у меня есть двухлетний жесткий диск SATA-3 4 ТБ 7200 об / мин со стабильной скоростью чтения / записи 157 мегабайт / с (~ 1,3 гигабит / с). Поддерживаемые скорости передачи по гигабитному Ethernet в лучшем случае составляют около 0,942 гигабит / с.

Spiff
источник
4
Обратите внимание, что для некоторых рабочих нагрузок задержка произвольного доступа более важна, чем пропускная способность (и я подозреваю, что показатель пропускной способности вашего диска был для больших обращений, а не случайных кусков 4 КБ). Даже с сетевыми накладными расходами передача 4 КБ непосредственно из одной системы в другую, вероятно, будет быстрее, чем средний доступ к диску (с задержками при поиске, настройке и ротации). До того, как SSD стали популярными, проводилось исследование использования оперативной памяти других систем для подкачки. Ответ FuaZe о переносе работы в большую систему кажется более практичным.
Пол А. Клэйтон
3
Правильно, но ваш диск имеет НАМНОГО, НАМНОГО ниже скорость произвольного доступа, чем гигабитный Ethernet. Для этого вам понадобится твердое состояние.
Артур Кей
@ Spiff спасибо чел, но у меня другой вопрос .. как насчет того, чтобы поделиться им через кабель Ethernet? например, через коммутатор или V-LAN, вообще не используя Интернет и получая скорость передачи спуска ???
Элвин
@ArthurKay: или диск 30Krpm профессионального класса, который используется в кластерах виртуализации с балансировкой нагрузки.
user2284570
@ Alvin Это именно то, о чем говорит этот ответ. «... скорость передачи по гигабитному Ethernet ...»
BenjiWiebe
1

Нет, это невозможно.

Единственным небольшим исключением является случай, когда вы используете инструмент, способный разделить обработку на несколько машин, например, рендеринг трехмерной графики. Тем не менее, это не совсем то, что вы спрашиваете.

Джулиан Найт
источник
Ты знаешь ад ? Поскольку он использует x86, сетевой доступ к DMA может быть реальной помощью.
user2284570
Боюсь, ОП указала Windows 8, так что это ему не помогло.
Джулиан Найт
Это было просто для того, чтобы сказать, что вопреки тому, что вы сказали, это возможно. Для ОС система отображается как SMP-система без разделяемой памяти.
user2284570
1

Около семи лет назад контроллер памяти был перенесен с отдельного чипа ( северного моста или концентратора контроллера памяти) на процессор. Ты знаешь почему? Чтобы уменьшить задержку, потому что процессору требуется очень, очень высокая скорость доступа к оперативной памяти. Текущие процессоры обращаются к ОЗУ со скоростью 68 ГБ / с : http://ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz . Современный 1 Гбит / с Ethernet дает вам около 120 МБ в секунду, следовательно, в 560 раз медленнее. Так что это не то, что вы можете сделать на обычных ПК.

Существуют решения на основе кластерных вычислений, в которых множество компьютеров подключены к сети, и каждый из них сохраняет некоторую часть данных в своем ОЗУ. Это намного медленнее, чем обычное ОЗУ, но у вас нет выбора, если вам нужно 10 ТБ данных для доступа. Но такие решения должны поддерживаться программным обеспечением. И Android Studio не поддерживает его.

Так что, к сожалению, нет.

user996142
источник
1
Для использования отказоустойчивых кластеров виртуализации я могу сказать, что совместное использование ОЗУ через Ethernet Ethernet Cat5 даже для более медленных дисков прекрасно работает с современными ОС и программами.
user2284570
1

В настоящее время это невозможно, но на самом деле это было указано на картах в той или иной форме и обозначено для « После Vista » как часть системы «ReadyBoost», которая позволяет использовать USB-накопитель в качестве носителя для чтения файла подкачки (и другие файлы) быстрее, чем с помощью диска. Это не дополнительная ОЗУ как таковая, но если вы используете много ОЗУ, это может сократить количество времени, которое ваш компьютер тратит на подкачку файлов с диска.

Похоже, что в вашем сценарии вам пригодится USB-накопитель на 32 ГБ, предназначенный для ReadyBoost .

Мэтью Стиплз
источник
Похоже, это не отвечает на вопрос ОП. Хотя первоначально ReadyBoost, возможно, и планировал разрешить совместное использование ОЗУ по сети, в настоящее время это не так.
ChrisInEdmonton
@ChrisInEdmonton Ладно, я отредактировал свой ответ, специально указав, что это невозможно, но было запланировано в один момент, а не только заявив, что это было запланировано.
Мэтью Стиплз
2
И ReadyBoost слишком чертовски медленен, чтобы быть полезным. Компьютеры на самом деле тормозят при использовании ReadyBOOST. Не так уж много хорошего.
Тонни
1
@ Тонни Думаю, это один из тех сценариев, в которых «пробег может отличаться». Я лично обнаружил, что он ускорил работу медленных компьютеров и не имел большого значения для быстрых компьютеров. Никогда не испытывал, это замедляет работу компьютера. Очевидно, ничто не заменит тонны RAM и SSD-дисков, но если вы не можете / не хотите этого и не переполнены шины USB, то это может помочь
Мэтью Стиплз
0

Это невозможно, по крайней мере, без огромных усилий со стороны Google.

По сути, Android Studio должна была бы поддерживать многоузловую распределенную обработку, так же как и майнинг BitCoin и Folding @ Home.

После нажатия кнопки compile на вашем ноутбуке, он отправит кусок кода на ваш рабочий стол для обработки. Как только рабочий стол завершит обработку, он отправит его обратно на ваш ноутбук, чтобы он мог соединить все вместе.

MonkeyZeus
источник
Я сомневаюсь, что компиляция - это то, что сжигает память в Android Studio.
Атсби
-1

У меня есть офис; комната с личным помощником и шкафом для хранения 5000 книг и рабочим столом с местом для 20 книг. Представьте эту конфигурацию как

  • Офис = компьютер
  • Me = процессор (CPU)
  • Помощник = операционная система (ОС)
  • Desk = RAM
  • Шкаф = Жесткий диск

В любой момент мой ассистент может выложить максимум 20 книг из кабинета и положить на стол для работы. Из-за собственной работы моего секретаря он может поместить одну или две книги на мой стол (скажем так, мы бедны и не можем позволить себе другой стол).

Если я хочу работать над другими книгами, свободного места больше нет, и мой помощник должен определить, какие текущие книги на столе я реже всего буду использовать, и поместит эту книгу обратно в шкаф, чтобы освободить место для других книг, которые я хочу. Помощник должен ходить по столу и шкафу каждый раз, когда я захочу поработать над книгой, недоступной мне.

Для системы с недостаточным объемом ОЗУ именно это и делает ОС для процессов, которые, по-видимому, не очень активны - извлекают содержимое их памяти и записывают их на диск в хранилище виртуальной памяти, освобождая ОЗУ для других процессов, которым это необходимо. Так же, как существует расстояние между столом и шкафом, существует «расстояние» между процессором, оперативной памятью и диском. Диск невероятно длинный и медленный, как и в случае с вашим ноутбуком.

В соседнем офисе у моего коллеги достаточно места для 80 книг. Разве не было бы неплохо, если бы он мог «поделиться» со своим столом, чтобы хранить мои книги? Чтобы у меня было практически 100 книг?

Ну, во-первых, помощники в каждом офисе неизбежно должны поместить некоторые из своих собственных книг, чтобы они могли выполнять свою собственную работу (не подлежит обсуждению). Все ОС в системе должны использовать некоторое ОЗУ для своей работы, иначе у вас не будет ОС для начала. Так что я не получаю целых 20 книг, а мой коллега - 80 книг. И у моего коллеги есть своя собственная работа, которая еще больше истощает доступное пространство.

Кроме того, помощники не обучены перемещению книг между офисами (примите, что их уровни компетентности имеют предел). Существующая архитектура Windows не предусматривает непосредственного использования ОЗУ другого удаленного компьютера.

Теперь представьте, если помощников действительно обучили правильно перемещать книги между офисами и четко помнить, как они владеют, переход между офисами, скорее всего, будет еще более медленной процедурой, потому что выход из одного офиса в другой находится на большем расстоянии. Мало того, что, когда помощник забирает книги из другого офиса, ему все равно придется освободить место на своем столе, перетаскивая ненужные книги обратно в шкаф. Зачем заставлять его ходить так много?

Выход из одного компьютера для хранения / извлечения данных на другом компьютере через сеть, по крайней мере для вашего случая использования, недостижим, поскольку приложение или ОС не знают, как этого добиться. И это было бы не очень эффективно.

Если вы хотите продолжить работу с ноутбуком, установите больше оперативной памяти (больший рабочий стол) или установите твердотельный диск (шкаф с функциями организации, которые ускоряют поиск книг).

Обратите внимание, что в некоторых конфигурациях на самом деле может быть быстрее хранить и извлекать данные с удаленных компьютеров - существуют программные технологии кластеризации, которые делают именно это - затем для доступа к медленно вращающимся дискам, но они все еще не удовлетворяют вашему сценарию.

Рассмотрим временные рамки доступа к данным между аппаратными ресурсами .

icelava
источник
7
Я думаю, что вы интерпретируете вопрос слишком буквально. Очевидно, что компьютеры не могут иметь 10 ГБ каждый, но, в принципе, компьютеры могут совместно использовать 10 ГБ, чтобы, например, они могли использовать 5 ГБ каждый вместо ноутбука, ограниченного 2 ГБ. Производительность была бы ужасной, но в принципе это возможно.
Дэвид Ричерби
@DavidRicherby - Вопросы следует читать буквально. Письменное слово - замечательная вещь, единственное, что оно означает, - это именно то, что вы говорите. Поэтому автор буквально спрашивает, могут ли они объединить системную память двух независимых компьютеров для увеличения производительности, что, конечно, невозможно.
Ramhound
6
@Ramhound Вы, кажется, неправильно поняли этот ответ. Этот ответ говорит о том, что невозможно объединить систему 2 ГБ и систему 8 ГБ, чтобы получить две системы, каждая из которых имеет 10 ГБ (потому что это будет в общей сложности 20 ГБ, которых не существует). Истолковано слишком буквально, вот что задает вопрос. Вы говорите о объединении 2 ГБ + 8 ГБ, чтобы получить две системы с общим объемом 10 ГБ, и именно об этом намеревался задать вопрос. Таким образом, вы скорее застрелились в ногу, заявив, что вопросы следует читать буквально: буквальный вопрос - это чепуха; заданный вопрос, по крайней мере, имеет смысл.
Дэвид Ричерби
@DavidRicherby - Если вы так говорите. Я нашел ответ полезным. Так как он правильно указал, вы не можете объединить системную память от двух независимых компьютерных систем так же, как вы не можете объединить два бензобака из двух отдельных и независимых автомобилей. Конечно, я не уверен, что он придумает 220, это действительно не имеет смысла.
Ramhound
Этот вопрос и ответ является идеальным примером GIGO :)
Ратна