Estou trabalhando em um pequeno projeto PHP para um amigo meu e tenho uma configuração de ambiente WAMP para desenvolvimento local. Lembro-me dos dias em que a resposta do meu Apache 2.2 local foi imediata. Infelizmente, agora que voltei de um feriado prolongado, acho as respostas localhost
dolorosamente lentas.
Demora cerca de 5 segundos para obter uma página HTML de 300B.
Quando olho para o gerenciador de tarefas, os httpd
processos (2) estão usando 0% da CPU e, em geral, meu computador não está carregado (0-2% de uso da CPU).
Por que a latência é tão alta? Existe alguma configuração do Apache que eu possa ajustar para talvez fazer com que seu thread seja executado com uma prioridade mais alta ou algo assim? Parece que está simplesmente dormindo antes de servir a resposta.
fonte
localhost
resolução está correta no DNS?ping localhost
deve voltar instantaneamente com127.0.0.1
.http://localhost/index.html
)? Caso contrário, pode ser um problema de PHP, não um problema do Apache.strace
etcpdump
são ferramentas úteis para isso.Respostas:
Para mim, definir a
ServerName
propriedade emhttpd.conf
consertou os atrasos (no máximo 10 segundos):fonte
If your host doesn't have a registered DNS name, enter its IP address here.
Eu tive o mesmo problema.
Definir o redirecionamento de host local para 127.0.0.1 no arquivo hosts não ajudou. A otimização do servidor MySQL não ajudou (InnoDB -> MyISAM, alterando muitas diretivas relacionadas ao cache no my.ini).
Então usei o webgrind da web e reduzi o problema para a chamada "nova DOP (...)". Mudando
para
no DSN para DOP resolveu completamente o problema ! O tempo de carregamento da página passou de mais de 3000 ms para 16ms .
No entanto, estou realmente confuso por que a linha "127.0.0.1 localhost" no arquivo hosts não ajudou.
fonte
$link = new PDO('mysql:host=localhost;dbname=dp-ui;charset=utf8');
para$link = new PDO('mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8');
O problema estava no arquivo de configurações principais do Apache
httpd.conf
.Eu achei isto:
Então, entrei nas configurações do Apache e vi onde estava o problema: configurei-o como CGI, em vez de carregá-lo como um módulo. Isso causou
php-cgi.exe
a inicialização e o desligamento toda vez que eu fazia uma solicitação. Isso estava atrasando meulocalhost
desenvolvimento.Alterei as configurações para carregar o PHP como um Apache MODULE e agora tudo funciona perfeitamente. :)
Obrigado a todos por seus esforços.
fonte
Eu tive o mesmo problema e finalmente descobri que isso vinha de dois fatos:
http://myproject.local/
porque eu coloquei uma linha127.0.0.1 myproject.local
em/etc/hosts
O problema aparece porque o
.local
tld está reservado para o serviço Bonjour, e isso desde o Mac OS X Lion (10.7).Mudar o tld por outra coisa resolveu o problema.
fonte
Verifique se
/etc/hosts
está correto. Como isso:No local,
****
dê seu nome de host.fonte
127.0.0.1 something.atmy.localhost
e agora a solicitação não leva mais 20 segundos. Em vez disso, o apache local responde imediatamente. Não sei muito sobre redes. Eu acho que o nome do domínio é resolvido muito lentamente, porque algo não está configurado corretamente.Em sua
httpd.conf
certifique-se de definir a configuraçãoHostnameLookups Off
.fonte
Caso isso ajude alguém, eu tive esse problema e ele se resumiu a ser uma pesquisa de DNS incorreta .
O servidor DNS no servidor foi definido como
127.0.0.1
- eu mudei para usar os servidores DNS públicos do Google, e isso tornou a pilha muito mais rápida.fonte
A pergunta tem uma tag apache-2.2, mas se alguém for afetado por esse problema nefasto também no WAMP com Apache 2.4 + PHP 5.5 , a seguinte resposta no SO fez o truque para mim:
https://stackoverflow.com/a/18786773/260080
fonte