No Ubuntu 10.04, qual é a pilha RoR recomendada?

2

Não consigo encontrar respostas / métodos claros sobre isso. Como visto em outros lugares, passageiros e RoR sob apache engolem o meu VPS.

Eu tentei uma infinidade de pilhas e implementações, atualmente descansando em uma configuração apache / cgi / rails subtima, que trocou meu uso de RAM pelo tempo de CPU e resposta lenta a solicitações.

Alguém pode recomendar um método eficiente e, de preferência, simples de administrar a criação de aplicativos rails no servidor Ubuntu 10.04?

    
por Kurucu 03.02.2011 / 01:18

1 resposta

2

Aqui está o método que eu tenho usado.

  1. Instale o Apache e o encadeamento encadeados e associe as bibliotecas de desenvolvimento do Apache.
  2. Crie um usuário de implantação e, em seguida, instale o RVM no homedir de usuários de implementação
  3. Agora, instale o REE 1.8.7 ou o Ruby 1.9.2 via rvm. Ambos usam menos memória do que o padrão 1.8.7 e você terá que escolher com base em qual deles funciona melhor com o seu aplicativo.
  4. Agora remova os pacotes mod_passenger do Ubuntu e instale o Passenger como uma jóia através do usuário de implementação usando RVM com o ruby que você deseja usar. Certifique-se de criar os binários do Passenger usando o RVM também. Verifique se você está instalando o Passenger correto também para o sistema, que é 2.x ou 3.x
  5. Crie /etc/apache2/mods-available/passenger2.conf ou passenger3.conf, bem como o passageiro correspondente.load para que eles não entrem em conflito com o passageiro.conf que o pacote mod_passenger usa. Certifique-se de copiar a saída do edifício Passenger correta, bem como certificar-se de que você está especificando os caminhos RVM corretamente para a sua versão do Passenger, que dependerá muito pouco da versão 2.x ou 3.x.

Como ponto de vantagem, você deve tentar executar seu aplicativo e garantir que ele funcione. Quando o site estiver carregando normalmente, você poderá começar a refinar sua configuração do Passenger. A configuração que eu uso se parece com isso.

# rvm and passenger paths
PassengerRoot /home/deploy/.rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2
PassengerRuby /home/deploy/.rvm/wrappers/ruby-1.9.2-p136/ruby

# set max instances
PassengerMaxPoolSize 6
# Always have one instance running
PassengerMinInstances 1
# recyle an instance after 10k requests
PassengerMaxRequests 10000
# check tmp for restarts one request per 10 secs rather than every request
PassengerStatThrottleRate 10

# don't shutdown any of the spawners
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0

Minha configuração tenta manter uma instância ativa em todos os momentos e usa um pouco mais de memória, não fechando os spawners. Você quer usar muito pouco ram, mas você não quer esperar 15-30 segundos para atender a uma solicitação porque todo o processo do Rack foi encerrado. Eu tentaria algo como o seguinte no seu caso.

PassengerMaxPoolSize 2
PassengerMinInstances 1
PassengerPoolIdleTime 3600
RailsFrameworkSpawnerIdleTime 1800
RailsAppSpawnerIdleTime 600
PassengerStatThrottleRate 10

Se as coisas ficarem muito boas, você poderá começar a reduzir as configurações e ver como isso funciona para você.

    
por 05.02.2011 / 07:49