Quanto RAM VPS eu precisaria para rodar o Wordpress, Apache, SVN e MySQL?

20

Alguém tem uma estimativa aproximada de quanto RAM VPS (sem burstable) eu precisaria ter apache com wordpress e subversão, bem como a instância do MySQL?

O Apache hospedaria alguns sites e SSL. O MySQL teria apenas o banco de dados Wordpress. Esses sites têm pouco tráfego, menos de 1 mil acessos por dia.

Kyle Brandt
fonte

Respostas:

19

Lembre-se de que cada trabalhador apache consumirá cerca de 20 a 25 MB; portanto, se seus hits de 1k forem igualmente espaçados no tempo em 8 horas por dia, você poderá pensar em atender apenas 0,03 solicitações por segundo.

Supondo que você tenha todo o tráfego concentrado em apenas 1 hora no dia (não é claro), você deverá atender cerca de 0,28 solicitações por segundo.

Uma outra questão é a quantidade de memória que você adquiriu no banco de dados; no entanto, é simples saber e é um custo bastante fixo.

Na pior das hipóteses, você terá que transferir o banco de dados inteiro (oh meu Deus !, refatorar o SQL neste caso! :)) .. então o dobro do número anterior ..

A resposta curta é (IMHO) 128 MB será suficiente, em abundância. Seu servidor ficará ocioso e a memória ficará livre por muito tempo, dado o tráfego que você imagina.

Eu tenho 20 domínios em um VPS com 256 MB desde 3 anos, o são ok ... e o total de hits são cerca de 1500-2000 ...

OK, a memória é barata hoje em dia, mas pessoal ... você está ciente de quanto custa um gigabyte?

PS: Estou falando de um sistema Linux, é claro, não de um SO que consome 4 GB apenas para a interface gráfica :)

drAlberT
fonte
13

Para o uso de baixo tráfego que você está descrevendo, você deve concordar com um plano pequeno (256 MB - 384 MB). Quando o Apache e o MySQL são instalados, as configurações padrão assumem que eles estão trabalhando com mais RAM disponível, o que pode causar problemas. Use o seguinte como um bom ponto de partida e ajuste conforme necessário:

No seu arquivo de configuração do Apache 2 (normalmente encontrado em /etc/apache2/apache2.conf ou /etc/apache2/httpd.conf):

StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000

No seu arquivo de configuração do MySQL (normalmente encontrado em /etc/mysql/my.cnf):

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

Além disso, se você não usar as tabelas do InnoDB, desabilite o suporte ao InnoDB adicionando a seguinte linha:

skip-innodb
tasaro
fonte
Eu tenho várias dessas linhas mencionadas em apache2.conf. mudar todos eles? eles são rotulados: prefork MPM, worker MPM,event MPM
vsync
2

Eu estava tendo problemas com os meus com 512 MB de RAM até mudar para o FastCGI. Isso fez o desempenho melhorar muito. Eu tinha 30 MB de espaço livre (sem contar o cache, é claro) até então e acabei com mais de 100 MB de espaço livre.

Sua milhagem pode variar, é claro, dependendo do tráfego do seu site. E quando o tráfego começar a aumentar, você poderá mudar para o nginx.

Para comprar um pouco de conforto, eu levantei 1 GB.

Aliás, estou hospedado no prgmr.com e ainda não vi ninguém tocar em seus preços.

Matt Simmons
fonte
11
Obrigado pelo prgmr.com, adoro o slogan "Não assumimos que você é estúpido". :-)
Kyle Brandt
Sim, que, juntamente com o fato de que Lucas dá descontos sobre o material de gama baixa para os membros LOPSA é por isso que eu fui com eles
Matt Simmons
Eu sei que é muito velho, mas agora eu acho que digitalocean é onde as pessoas podem dizer que ninguém pode vencê-los :)
Ali
1

Estou executando uma configuração semelhante em um VPS com 256 MB de RAM, mas executando o lighttpd em vez do Apache. Tentei o Apache primeiro, mas era demais para o VPS de 256 MB. Se você quiser usar o Apache, eu diria que você pode sobreviver com 512 MB de RAM.

Dependendo de quem você usa para sua hospedagem VPS, você pode começar com um VPS menor e aumentar o tamanho, se necessário, sem precisar reconfigurar o servidor.

Jason Alford
fonte
0

Você deve ficar bem com 1 GB, mas pode optar por 2 GB, se puder, é uma importante etapa de desempenho para os sistemas operacionais mais modernos.

Chopper3
fonte
11
1 GB seria massivo para matar por 1k de hits por dia.
ceejayoz
Você está assumindo que ele está executando o Linux, e se ele quiser executar o Windows 2008 de 64 bits ???
Chopper3
Note que isto é para um servidor executando Apache, MySQL e PHP. Para o Apache em particular, eu não gostaria de usar um servidor Windows.
thomasrutter
0

Eu uso o nginx + php-fastcgi em vez do Apache, mas com uma carga de aplicativo muito semelhante. Eu uso svn + ssh para o meu acesso ao subversion, então não há um processo svnserve em execução, exceto quando estou acessando o repositório. Tudo isso está sendo executado no Ubuntu 8 LTS.

No momento, estou com 174mB de 256mB e o site é bastante responsivo (tempo médio de resposta de 500ms para visualizações do Wordpress)

             total       used       free     shared    buffers     cached
Mem:           256        252          3          0         22         56
-/+ buffers/cache:        174         81
Swap:          511         12        499

Eu recomendo olhar para um servidor Web front-end leve como nginx ou lighttpd em vez do Apache + mod_php. Mesmo o proxy Apache + mod_fastcgi para php-fastcgi consumiria menos memória.

Se você seguir a rota do Apache, meu intestino diz que 512 MB provavelmente faria o truque. 1 ou 2gB de memória parece um excedente considerável, especialmente devido à forma como a maioria dos provedores de VPS aumenta seus custos quando obtém configurações maiores.

James F
fonte
0

Eu tenho lutado com isso por um tempo.

O cenário de AlbertT funcionou brilhantemente. As configurações do mysql fizeram uma diferença CLEAR e agora o site é ótimo. http://laterboltz.com

No seu arquivo de configuração do MySQL (normalmente encontrado em /etc/mysql/my.cnf):

key_buffer = 16K max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K

Além disso, se você não usar as tabelas do InnoDB, desabilite o suporte ao InnoDB adicionando a seguinte linha:

skip-innodb


fonte