Доброго всем настроения.
Конечно, мой вопрос может быть совсем странным, но в теории я читал, что такое возможно, даже на github (пока он был настоящим), что есть возможность объединить оперативную память нескольких\многих компьютеров в некий кластер. То есть, один аппарат расширяет оперативку за счёт других аппаратов. В теории всё красиво, но не могу найти софт, который это умеет, так озадачился всем этим не так давно.
DdarkX, насколько большим количеством памяти - раз, что именно за задача - два? Чаще всего задачу удается распараллелить, и использовать несколько менее мощных (читай: дешевых) машин.
есть задачи которые хавают по полтеррабайта и больше памяти.
к примеру, быстрый онлайн-роутинг по дорогам всей земле - весь граф дорог висит в памяти и требует емнип несколько сотен гигов рамы. яндекс гугл osrm...
плюс виртуализация.
железо проектируется под задачу.
DdarkX, ну выдать виртуалке 1Тб можно на любом компе - из swap'а добрать недостающую память ;) А если серьезно, то в двухпроцессорную мать воткнуть 1,5Тб оперативки сейчас не проблема, можно и с удвоенным числом слотов найти такие. А под 4хпроцессорные и более 3+ Тб не проблема.
В теории то можно, только пропускная способность/задержки так себе.
Как правило объединяют специальные аппаратные платформы, имеющие отличную от х86 архитектуру с возможностью подключения нескольких платформ.
Софтово же вы упрётесь в скорость/задержки протокола передачи, самым быстрым будет infiniband 56g, опять же для этого нужно покупать карты/кабели/коммутаторы infiniband. Ethernet 1/10g будет довольно медленным, не знаю какой смысл от такого расшаривания памяти.
Проще/дешевле/практичнее продать лишнее железо и купить pci-e ssd под своп
Нет, есть технология прямого доступа к оперативной памяти по сети (RDMA). Но она позволяет "заглянуть" в память другого компьютера посредством очень быстрой сети, или склонировать свою в чужую или наоборот (то есть сделать, грубо говоря так, чтоб на двух или больше компьютерах всегда в памяти были одни и те же данные), а не "расширить" свою за счет чужой.
В вашей задаче самый адекватный вход - добавить больше планок и/или заменить имеющиеся на планки большего объема. Менее адекватные методы - ZRAM (сжатие данных в оперативной памяти) и/или использование быстрого SSD в качестве кеша.
Аперидил !! :) Википедия: Удалённый прямой доступ к памяти
Но и тут подразумевается не объединение оперативной памяти, а прямой доступ/передача данных между элементами кластера на большой скорости.
Чисто в теории можно такое провернуть сделав ram диски на каждой тачке, на основной тачке собрать эти диски в один раздел и на него зафикачить swap.
И опять же в теории возможно даже получится не катастрофически(это значит что всеже потери будут значительные) просесть в скорости. Образно говоря если swap на обычном винте будет выдавать 10мс задержки то задержка по локалке будет 1 мс. Но тут вероятно будет много подводных камней и в савокупности задержка всеравно окажется намного выше 1 мс.
Еще можно подрубить zram и в общемто прогаммно немного увеличить существующий объем озу.
В InfiniBand есть фокус с доступом до ram удаленной машины, но придется переписывать свою софтинку чтобы это заработало.
Можно еще прокинуть блочное устройство через nbd server\client но прокатит ли такое с /dev/shm это большой вопрос.
Короч есть 3 пути и каждый предполагает косяк:
1) Если критичен еще озу. Затраты денег на хорошую оперативку, никакого гемора.
2) Если проц не особо критичен а важен именно объем и скорости выше свопа то брать бу серверное железо с ddr2-3 оперативой, стоят они сейчас копейки и можно рублей за 15-20 урвать на ибее мамку+проц+озу объемом 64 или даже 96гб. Тут плюсов много но может оказаться что камня не хватит.
3) Колхозить и шарить рам диски по локалке, лепить один том через сеть и на него кидать swap. Много красноглазия, из затрат только хорошие сетевушки по гигабиту хотябы минимум, а лучше по 10.
4) Хороший ssd или рейд из них, на него swap. Оптимально по объему, неплохо, во всяком случае быстрее локалок, не особо дорого.
Ну вот и попался адекватный человек. У меня мысль тоже свелась к раделам и свапу. Техник во мне не помер, по этому, что-то соберу на коленке.
Главное развиваться, а не тупить, что все не реально. Я продолжу тыкать остатки гитхаба, там была софтина.
Спасибо за совет, пороюсь, а может и решение притопает. ))
DdarkX, в целом я бы лучше БУ серверное железо купил или на худой конец ssd для свопа. Геморится с костылями будет очень сложно а профит, вот четсно, крайне сомнительный. Даже на самый фиговый расклад если денег совсем нет то надежнее будет переписать софт чтобы он параллелился по сетке.
маловесная ОС рам диск и шаринг этого рам диска. На этот рам диск файл подкачки удаленного пк.
Выглядит тупо и работать тож наверное не очень будет.
Хотя если с целью оживить какой нить 486 пойдет.