Используя Capistrano для развертывания приложения направляющих на нескольких веб-серверах

Краткая информация А о 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) уникальные адреса, по крайней мере, в теории. Это позволяет большим непрерывным структурам данных создаваться и управляться.

19
задан Olly 2 November 2009 в 15:15
поделиться

2 ответа

Да. 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 будет запускаться только на сервере базы данных.

9
ответ дан 30 November 2019 в 02:48
поделиться

Предполагая capistrano, многоэтапный :

В config / deploy / production :

role :app, "server1", "server2", "server3"

Теперь capistrano multistage будет развернут на всех 3 серверах.

36
ответ дан 30 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: