Nginx + PHP 5.3.3 (com php-fpm) - uso de memória?

6

Eu comprei recentemente o Xen VPS (linode.com) com o Debian 5.0 Lenny (i386), 512MB RAM . No momento, tenho apenas três pequenos sites (criados com o Drupal) com cerca de 600 usuários por dia no total de execução neste servidor.

Como servidor web, uso nginx 0.7.67 ( PHP 5.3.3 com php-fpm ). Um consumo médio de memória é de cerca de 100-105 MB . Aqui está o que mostra o gráfico Munin:

eéissoqueocomando"top" exibe (ordenado pelo uso da memória):

No meu php5-fpm.conf:

pm = dynamic
pm.max_children = 50
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500

Antes de migrar alguns projetos maiores para esse VPS, gostaria de saber se isso é um consumo normal de memória para esse tipo de configuração de servidor? Quantos usuários no site (digamos, construídos com o Zend Framework) este VPS pode manipular?

Obrigado!

    
por user38484 24.08.2010 / 10:52

4 respostas

7

Para mim, isso parece bom. Seu PHP + MySQL está levando apenas cerca de 100 megabytes de RAM, deixando muito espaço para o sistema operacional respirar.

Para o seu "quantos usuários este VPS pode manipular?" pergunta: depende. Com o cache adequado e outras práticas recomendadas, acho que ele deve lidar com pelo menos dezenas de solicitações por segundo, se não mais.

Se o conteúdo for altamente dinâmico e não puder ser armazenado em cache e a estrutura do banco de dados for complexa e / ou o banco de dados for grande, o desempenho será prejudicado.

Normalmente, a memória será o primeiro limite que você atingirá sempre que o tráfego aumentar, com conteúdo altamente dinâmico, o CPU também será torturado.

    
por 24.08.2010 / 10:59
7

Não é bom, seu processo php5-fpm leva em torno de 35Mo. Com esta configuração você pode ter 50 processos (max_children = 50), com cada um deles alocando 35mo. assim, sua máquina que tem apenas 512Mo irá trocar. Eu acho que o seu limite é de cerca de 10 processos de php-fpm (max_children = 10).

    
por 25.01.2011 / 02:03
2

Rochas Linode! Meu único conselho é mover o MySQL para um linode separado de 512MB. Os benefícios são muitos e, a menos que $ 20 / mês irão quebrar o banco, não há desvantagem.

Meu instinto me diz que você está executando o debian ou ubuntu .. Confira a biblioteca de script de pilha. Existe um servidor MySQL dedicado otimizado para o linode. Em seguida, adicione o IP privado (gratuito) ao seu servidor de arquivos / nginx / php-fpm e adicione o IP privado ao seu servidor db. Todos os dados viajarão dentro da rede local no DC do seu linode. É rápido e não conta com o limite mensal de largura de banda.

Você pode até mesmo colocar seu site 'projeto maior' no mesmo lineto nginx / php-fpm. À medida que o tráfego aumenta, você pode adicionar VPSs memcached dedicados, VPSs PHP-FPM dedicados e dimensionar horizontalmente em tantos linodes de US $ 20 512MB quantos desejar / precisar.

Seu banco de dados será escalonado verticalmente ... então, quando ele começar a ficar com fome, aumente para o próximo tamanho.

O quanto ele pode lidar dependerá de fatores como cache, código limpo e # de chamadas de banco de dados por carregamento de página ... Dividir o front-end do banco de dados abre a porta para "dimensionar o tamanho que você quiser" facilmente .

    
por 29.03.2011 / 07:57
0

Eu também estava preocupado com esse fato. Estou executando usando o sistema de servidor virtual do Amazon EC2 com uma micro instância que tem apenas 613Mb de "memória". Eu posso dizer a partir do nosso teste que ele pode lidar com pelo menos 50 crianças correndo simultaneamente sem nenhum problema perceptível. Não consigo explicar o comportamento, mas posso dizer que ainda funciona.

    
por 23.03.2011 / 16:42