O PHP é executado muito lentamente no IIS7. Precisa de ajuda para otimizar nossa configuração

1

Estou executando um aplicativo Web baseado em PHP em nosso servidor baseado em nuvem do Windows 2008. O aplicativo, que roda bem fora do nosso ambiente (por exemplo, um servidor IIS diferente), mas é MUITO lento em nosso ambiente. Com base no Google, esta é uma situação relativamente comum.

Eu instalei o PHP e o MySQL através do método de implantação da Web IIS ...

Aqui está a nossa configuração:

  • Windows 2008 Server Enterprise SP2 (32 bits)
  • Microsoft-IIS / 7.0
  • Versão do cliente MySQL: mysqlnd 5.0.8-dev - 20102224 $ Revisão: 321634 $
  • Extensão do PHP: mysqli
  • Atualização para o IIS 7.0 FastCGI
  • Extensão de cache do Windows 1.1 para PHP 5.3

Eu já havia lido em outro lugar que o ipv6 poderia ser um problema, então desativei o adaptador de rede.

O aplicativo está usando: localhost como sua conexão

Seja fácil comigo, pois sou um pouco verde em relação a alguns desses componentes ... Além disso, reescrever o aplicativo PHP ou modificá-lo NÃO é uma opção. Estou razoavelmente certo de que nossa configuração é o problema.

Kendor
fonte

Respostas:

2

Eu tive uma questão semelhante. Migrou um aplicativo php do iis6 para o iis8, e no iis8 era muito, muito lento!

Solução: No próprio aplicativo, aponte para 127.0.0.1 como o nome do servidor mysql (em vez de localhost). Parece que há problemas de resolução ou problemas de IPv6 relacionados ao uso do nome do host localhost.

127.0.0.1 resolve.

Sam Smith
fonte
Nosso servidor tem o IPv6 ativado e essa alteração nos deu uma aceleração de 400%.
Howie
1

Há uma boa apresentação em PHP no Windows aqui

Este artigo sugere que você obtenha os binários php seguros sem thread para Windows. Você já olhou para isso?

Você usou o instalador da web da Microsoft ou configurou php et al. você mesmo?

Wincache também parece uma boa ideia: http://www.iis.net/download/WinCacheForPhp

uSlackr
fonte
Eu usei o instalador da web da Microsoft. Como sei se estou executando thread-safe ou não-thread?
Kendor
Veja phpinfo () para Segurança de threads.
precisa saber é o seguinte
Segurança de thread = desativada
Kendor
Leia através da apresentação é a minha melhor recomendação
uSlackr
1
Apenas para sua informação, o Wincache pode levar a travamentos frequentes do servidor, por isso não o recomendo.
Vincent
1

Com base nesta postagem do blog, Fix: php mysql é MUITO lento , eu determinei que, no meu caso, o problema é resultado da resolução de nomes do MySQL. Por favor, veja isto para obter a documentação completa, mas você poderá corrigir o problema modificando a adição do seguinte ao seu my.inie reiniciando o mysqld.

# Do cache host names.
skip-host-cache

# Do not resolve hostnames. All hostnames are IP's or 'localhost'.
skip-name-resolve

Seus tempos de resposta devem aumentar drasticamente. Infelizmente, você não poderá mais se conectar ao MySQL usando nomes de host e, em vez disso, precisará usar endereços IP.

user177764
fonte
você pode escrever sua resposta em inglês, por favor?
imel96
Fui em frente e traduzi isso para você, por meio do Google. Sinta-se à vontade para corrigi-lo se eu errar em algum lugar.
Scott Pacote
Você considerou - quero dizer - CORRIGIR SUA RESOLUÇÃO DE NOME? Se isso demorar, a solução não é desabilitá-la, mas corrigir o bug.
TomTom