Estou procurando maneiras de otimizar nosso servidor da Web atual hospedado internamente. Estou tentando fornecer informações relevantes abaixo. Por favor, deixe-me saber se você precisaria de informações adicionais para ajudar.
O servidor está executando um único site, que é uma plataforma de pedidos de pizza on-line criada no Zend Framework (ver1). Em estatísticas de tráfego do último mês, aproximadamente 6.000 pageloads por dia, concentrados principalmente em torno da hora do jantar. Cerca de 1500 cargas / picos de hora nesse período.
Recentemente, atualizamos de uma linha aDSL de 2 / 2mbit para fibra de 100 / 100mbit e ainda temos problemas de desempenho na hora do jantar. Nós assumimos que o 2mbit era o problema.
O site é bastante veloz em períodos de baixa carga.
Hardware
CPU: Intel(R) Xeon(R) CPU 5160 @ 3.00GHz (3000.13-MHz K8-class CPU)
Mem: 328M Active, 4427M Inact, 891M Wired, 244M Cache, 623M Buf, 33M Free
Swap: 16G Total, 468K Used, 16G Free
(6GB physical, 16GB swap)
Filesystem Type Size Used Avail Capacity Mounted on
/dev/ad7s1a ufs 4.8G 768M 3.7G 17% /
devfs devfs 1.0K 1.0K 0B 100% /dev
/dev/ad7s1g ufs 176G 5.2G 157G 3% /home
/dev/ad7s1e ufs 4.8G 2.8M 4.5G 0% /tmp
/dev/ad7s1f ufs 19G 3.5G 14G 19% /usr
/dev/ad7s1d ufs 4.8G 550M 3.9G 12% /var
Sistema operacional do servidor
FreeBSD 8.2-RELEASE
Software
apache-2.2.17
php5-5.3.8
mysql-server-5.5
Pegada do Apache (exemplo, tirada de # no topo)
31140 www 1 45 0 377M 41588K lockf 2 0:00 0.00% httpd
31122 www 1 44 0 375M 35416K lockf 2 0:00 0.00% httpd
31109 www 1 44 0 375M 38188K lockf 2 0:00 0.00% httpd
31113 www 1 44 0 375M 35188K lockf 2 0:00 0.00% httpd
O Apache está usando o prefork MPM, APC (Alternative PHP Cache). Módulo SSL é carregado, mas não utilizado (como em realmente não funciona, portanto, não usado). Existe um arquivo contendo configurações para módulos MPM, mas como eu vejo que não está incluído no arquivo httpd.conf, a linha de inclusão está comentado. Assim, eu acho que o MPM prefork também está funcionando de valores padrão.
Aqui estão alguns outros valores conf do Apache que eu encontrei - que estão incluídos no https.conf
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
HostnameLookups Off
Carregue quando tiver problemas de desempenho
Observação: solicitações de API para back-end
Quanto à nossa plataforma on-line, ela se comunica com nosso sistema de back-end por meio de uma API (GET / POST). Para cotações de preços em cestas (armazenadas em cache até novo item adicionado), produtos (em cache), preços em produtos (em cache). E o servidor backend está realmente mostrando carga real ao ver problemas de desempenho na web apear. Então, eu estou mais voltado para isso, pois são os pedidos de API que levam uma eternidade para serem concluídos, mantendo assim os clientes no servidor da web. Então, minha pergunta é, são as estatísticas dadas acima (tráfego / carga) e a configuração atual do software. Em comparação com as especificações da conexão à internet e do hardware, os sinais de um servidor estressado são? E eu seria capaz de aumentar o número máximo de clientes no servidor da web, com base nos recursos disponíveis e na pegada real do Apache?