Краткая информация А о physcal и разметках виртуальной памяти
Вам были бы нужны 64-разрядный ЦП и сборка O/S и почти наверняка достаточно памяти, чтобы не перегружать Ваш рабочий набор. Немного фона:
машина А 32 битов (в общем и целом) имеет регистры, которые могут сохранить один из 2^32 (4,294,967,296) уникальные значения. Это означает, что 32-разрядный указатель может обратиться к любому из 2^32 уникальные ячейки памяти, который является, куда волшебный предел на 4 ГБ прибывает из.
системы на приблизительно 32 бита, такие как SPARCV8 или Xeon имеют MMU's, которые вытягивают прием для разрешения большей физической памяти. Это позволяет нескольким процессам поднимать память в общей сложности больше чем 4 ГБ в агрегате, но каждый процесс ограничен своим собственным виртуальным адресным пространством на 32 бита. Для единственного процесса, смотрящего на виртуальное адресное пространство, только 2^32, отличные физические местоположения могут быть отображены указателем на 32 бита.
я не буду вдаваться в подробности, но Это представление (предупреждение: powerpoint), описывает, как это работает. Некоторые операционные системы имеют средства (такой как те описанные Здесь - благодаря FP выше), чтобы управлять MMU и подкачать различные физические местоположения в виртуальное адресное пространство под управлением уровнем пользователя.
операционная система и ввод-вывод с отображенной памятью поднимут часть виртуального адресного пространства, таким образом, не все те 4 ГБ будут обязательно доступны процессу. Как пример, значения по умолчанию Windows к взятию 2 ГБ из этого, но может быть установлен только взять 1 ГБ, если / переключатель 3G вызывается на начальную загрузку. Это означает, что единственный процесс на архитектуре на 32 бита этого вида может только создать непрерывную структуру данных несколько меньше чем 4 ГБ в памяти.
Это означает, что необходимо было бы явно использовать PAE средства в Windows или Эквивалентные средства на Linux для ручной загрузки оверлейных программ. Это не обязательно, что трудно, но это займет время для получения работы.
, Кроме того, можно получить 64-разрядное поле с большой памятью, и эти проблемы более или менее уходят. Архитектура на 64 бита с указателями на 64 бита может создать непрерывную структуру данных со столько же сколько 2^64 (18,446,744,073,709,551,616) уникальные адреса, по крайней мере, в теории. Это позволяет большим непрерывным структурам данных создаваться и управляться.
Да. Capistrano изначально управляет несколькими серверами. Не требуется капистрано, доб.
Вам нужно всего лишь определить несколько ролей
role :app, "myserver.example.com"
role :db, "mysecondserver.example.com"
По умолчанию ваши задачи будут выполняться на каждом сервере. Но вы можете ограничить задачу только одним или несколькими серверами.
task :migrate, :roles => [:app, :db] do
# ...
end
Здесь задача будет выполняться только в ролях app и db.
Вы можете сделать то же самое с методом run.
run "rake db:migrate", :roles => :db
rake db : migrate будет запускаться только на сервере базы данных.
Предполагая capistrano, многоэтапный :
В config / deploy / production
:
role :app, "server1", "server2", "server3"
Теперь capistrano multistage
будет развернут на всех 3 серверах.