[size=14pt]Para se pensar:[/size]
Windows server 2012 requisitos (http://technet.microsoft.com/pt-br/library/jj134246.aspx):
Mínimo: processador de 1,4 GHz e 64 bits
RAM: Mínimo: 512 MB
Espaço em disco: Mínimo: 32 GB
Ou seja isto é o mínimo para ele rodar bem lentium.
Ai façamos a conta:
512 MB do mínimo para ele rodar mais uma margem de 512M para processos dos sistema operacional.
Total 1gb de memória
1GB somente para o windows rodar lentium.
Apache + php + sc (fonte google e experimentações pessoais)
Vamos desprezar o consumo de memória pelo apache e considerar somente pelo php.
Cada chamada do php como php-cgi para rodar o scriptcase pode consumir até 65Mb ou mais um pouquinho.
Obs: o sc instalador instala o php como php-cgi no apache.
Então vamos usar o php como módulo que consome menos memória e supor na melhor das hipóteses que cada chamada consuma 35Mb.
Logo se coloco no apache um limite para 150 conexões temos:
150x35Mb=5250Mb que é aproximadamente 5GB.
Então na pior das hipóteses se 150 usuários acessarem seu servidor simultaneamente temos um consumo de 5Gb de memória.
Ainda bem que isto é difícil de acontecer. Será?
Banco de dados
Vamos pegar o campeão de popularidade: Mysql.
Vamos desconsiderar que campos blob requerem 3x mais memória, para que você vai querer usar campo blob não é mesmo?.
Os mais afoitos podem usar estes sites para calcular o consumo de memória do mysql com base na configuração do my.cnf ou my.ini
http://www.mysqlcalculator.com/
http://www.omh.cc/mycnf/
vamos pegar um caso leve com a pior configuração para seu mysql que tem 2gb de base de dados innodb começar a ficar lentium:
key_buffer_size 64 MB
query_cache_size 64 MB
tmp_table_size 32 MB
innodb_buffer_pool_size 8 MB
innodb_additional_mem_pool_size 1 MB
innodb_log_buffer_size 1 MB
max_connections 150
sort_buffer_size 2 MB
read_buffer_size 128 KB
read_rnd_buffer_size 256 KB
join_buffer_size 128 KB
thread_stack 196 KB
binlog_cache_size 0 MB
Total: 576.2 MB de memória consumida com 150 conexões simultâneas.
Agora vamos ver o MS SQLSERVER. fonte: http://msdn.microsoft.com/pt-br/library/ms143506.aspx
memória Mínima:
Edições Express: 512 MB
Todas as outras edições: 1 GB
Recomendado:
Edições Express: 1 GB
Todas as outras edições: pelo menos 4 GB e deve ser aumentado à medida que o banco de dados cresce para garantir um ótimo desempenho.
Logo para o windows + apache + php + mysql
sistema operacional: 1gb
apache + php 150 conexões: 5gb
mysql 150 conexões simultâneas: 576 Mb
memória mínima que o cloud deve ter: aproximadamente 6.5gb
obs: Isto para ele trabalhar lentium, arrastando e travando na pior das hipóteses.
Para windows + apache + php + ms sqlsever edition express ( a que consome menos).
sistema operacional: 1gb
apache + php 150 conexões: 5gb
Edições Express: 1GB (recomendado)
Memória mínima que o cloud deve ter: aproximadamente 7gb
obs: Isto para ele trabalhar lentium, arrastando e travando na pior das hipóteses.
Obs: quando você considerar o mínimo requerido. Lembre-se que o mínimo do windows seven ultimate para rodar (http://windows.microsoft.com/pt-br/windows7/products/system-requirements) é 1 gigabyte (GB) de RAM (32 bits) ou 2 GB de RAM (64 bits) .
Agora experimente rodar o windows seven ultimate com office, antivirus instalado e 1gb de memória!? Fica uma carroça dependendo da máquina!
E clique hoje, vá tomar um café e volte amanhã.
Logo, imagine o que os requerimentos mínimos de hardware fazem ao ms sqlserver, mysql, php, apache e windows server?
Isto pode ser aplicado ao Linux (http://www.debian.org/releases/wheezy/mipsel/ch03s04.html.pt) e outros sistemas operacionais, também a outros sgdb´s.
Ai você vem me dizer que quando contratou o cloud, montou seu servidor e etc…
E era somente você a usar. Uau!!!.. O “acesso era legal”, mais que demais!
Somente que agora não entende…!? Depois de começar a colocar seus clientes tudo começou a ficar lento.
Seu servidor com: 2Ghz e 2 cores, 2 Gb de memória e 50 Gb de espaço em disco não era para dar conta do recado?
Olha! Se você tiver muita sorte como a maioria tem! E eu sou um dos sortudos.
Os acesso não serão simultâneos e o seu servidor vai dar conta.
Mas sempre terá que fazer uma mágica na configuração. E isto a qualquer hora.
Afinal os perfis de acesso não são fixos. Mas as limitações do seu servidor sim.
Esta mágica de controlar o consumo de memória, disco, processamento tem que ser feita até que você ou eu criemos juízo e coloquemos a mão no bolso.
Espero ter contribuído com a dúvida de muita gente.