janela php 4 ~ 5 vezes mais lenta no windows que linux

1

Eu tenho um site implantado no Windows Server 2012 e no ubuntu 14.04 e há uma diferença significativa de desempenho. A base de código e os dados do banco de dados são exatamente os mesmos.

Ambiente do Windows

  1. Windows Server 2012 no AWS EC2 t2.medium (ram de núcleo duplo de 4 GB)
  2. PHP 5.5 de 64 bits ts
  3. Apache 2.4.23

Linux

  1. Ubuntu 14.04 no AWS EC2 t2.medium (ram dual core de 4 GB)
  2. PHP 5.5 de 64 bits ts
  3. Apache 2.4

Ambos os sites têm o OpCache ativado.

O tempo de execução (único tempo de execução do PHP, excluindo todo o tráfego de rede)

  • Windows: 2.6-2.8s
  • Linux: 200-400 ms

No Windows, o que notamos é que há quase 100% de pico de carga da CPU e um pico de leitura de IO de 3-4 MB na carga de uma única página.

Eu já encontrei vários post no Stackoverflow sobre o desempenho do php no Windows, mas nós já aplicamos / testamos a sugestão desses posts para não avil

Qualquer conselho seria apreciado!

    
por Brian Lai 17.08.2016 / 09:02

1 resposta

2

Finalmente consegui uma resposta para isso

A diferença de desempenho é devida a função php is_dir () executar terrível na janela

Teste1: execute um script simples para fazer loop 1000 vezes para invocar is_dir ()

  • Windows: 217 ms
  • Mac: 8ms

Test2: perfil do código com xdebug e is_dir () estão no topo da lista para maior tempo de execução

Algumas outras referências também apontam o mesmo problema link

Espero que este post possa ajudar outras pessoas a enfrentar o mesmo problema

    
por 17.08.2016 / 12:04