O Apache com PHP usa o mesmo pool de conexão para arquivos de streaming?

1

Digamos que eu tenha um site PHP em execução nas imagens maiores dos hosts. Cada página é muito simples e praticamente não leva tempo para processar em PHP, mas pode conter um par de MB de imagem grande.

A questão é, se eu tenho o Apache configurado para lidar com 100 conexões, e a própria página leva alguns ms para gerar, ele mantém a conexão bloqueada para a transferência de imagem, ou isso é tratado em algum outro pool de conexão? / p>

Como no primeiro caso, pode levar alguns segundos para fazer o download da imagem, para que eu possa atender apenas 100 clientes por vez.

    
por Jakub Arnold 01.12.2010 / 14:38

2 respostas

2

Toda conexão com o servidor, seja PHP ou servidor estático, é proveniente do mesmo conjunto de 100 conexões. Uma vez que o PHP serve o HTML, a conexão é livre para ser usada para outra coisa. Se for uma conexão persistente, provavelmente será reutilizada para baixar uma imagem.

Tenha em mente que os navegadores modernos criarão pelo menos 2 a 6 conexões persistentes, de modo que serão menos de 100 clientes por vez.

Cenário de exemplo assumindo que KeepAlive está ativado: Uma conexão manipula o script PHP, então a mesma conexão começará a baixar uma imagem e o navegador abrirá ou usará as conexões existentes para baixar as outras imagens.

    
por 02.12.2010 / 00:37
0

Depende da configuração de keepalive. Se você configurá-lo para conexões 'on', elas serão reutilizadas. Se você configurá-lo para 'off', novas conexões serão feitas para cada elemento da página (html / php, imagem, arquivos javascript, css etc). Mantê-lo significa uma experiência melhor para seus usuários, em detrimento da carga da CPU do servidor. Mantê-lo desativado significa uma experiência de navegação mais lenta, mas a carga do servidor é levemente reduzida. Além disso, você pode ajustar a configuração keepalivetimeout. Configure para 5 ou menos.

    
por 02.12.2010 / 00:52