A página suspensa carrega cada n cargas

5

Recentemente, mudei meu site para um novo servidor (Apache 2, PHP5, MySQL5). O site é um fórum baseado no Invision. Cada poucos posts / tópicos que apenas trava. Os dados foram escritos porque se você parar e recarregar, o post / thread está lá. Eu pensei que era um problema de gravação inicialmente, mas não. Os dados são gravados, mas o carregamento da página nunca é concluído. Não sai da página onde os dados foram inseridos.

Qual é a melhor maneira de solucionar esse problema? A única coisa que fiz recentemente foi reduzir meus tempos limite do MySQL, mas não vejo isso sendo um problema, pois os valores ainda são grandes o suficiente e não há menções de tempos limite no log do MySQL. Para o registro, não há nada no log de erros do PHP.

EDITAR : verifiquei o status do meu servidor. Tudo parecia bem, mas eu tenho uma suspeita de que eu estava atingindo o meu ServerLimit, então eu dobrei isso. Também habilitei meus keepalives. Vai ficar de olho nisso.

EDIT 2 : Já se passaram alguns dias e isso ainda está ocorrendo. Eu tenho mais informações embora;

  1. O Apache está gerando falhas seg, mas a ativação de despejos básicos não as produz.
  2. Eu tentei desativar os módulos no apache, mas isso simplesmente impede que as coisas funcionem.
  3. Temo que possa estar relacionado ao DNS. Se eu assistir Live Headers no Firefox, absolutamente nada acontece durante este período de 'suspensão'. Depois disso, as respostas voltam rapidamente.

UPDATE (05/04) : Eu construí as versões mais recentes do Apache e PHP a partir do código-fonte, sem sorte. Eu então os removi e usei o remi repo para atualizar todos os meus pacotes para o último estável. Segfaults parecem ter parado, mas o enforcamento continua.

ini estão em:

  • www.skylinesaustralia.com/php.ini
  • www.skylinesaustralia.com/my.cnf
  • www.skylinesaustralia.com/httpd.conf

ATUALIZAÇÃO - RESOLVIDO! - O problema era ter um tamanho gigantesco de cache de consulta no MySQL. Foram 2GB, mudando para 64M.

    
por Christian 22.03.2010 / 04:11

8 respostas

4
  1. Apache is throwing seg faults

Existe o seu problema. O Apache não está suspenso, seu navegador está suspenso quando o filho do apache morre e não conclui a solicitação.

A depuração do LogLevel pode lhe fornecer um pouco mais de informação (embora, uma tonelada de informações, se este for um sistema de produção ocupado).

Meu primeiro palpite seria suhosin / mod_security ou algo que é compilado contra o php api errado ou possivelmente usando bibliotecas compartilhadas que mudaram um pouco. Eu dou as verificações e se você pode isolar as diferentes extensões php / módulos do apache que estão sendo executados. Você está executando o apcc, eaccelerator ou qualquer cache opcode? Zend Guardião da fonte? ioncube? Você está usando a versão correta de cada um deles? Ultimas atualizações? Zend 3.3.9, o ioncube também teve uma atualização recente e pode causar segfaults dependendo da versão do Zend que você está executando.

    
por 03.04.2010 / 20:37
1

Vincule algo como strace ou gdb a todos os processos de trabalho do apache e recarregue as páginas no navegador. Então você poderá ver mais informações sobre o que está acontecendo quando está falhando.

Quando você diz que você ativou coredumps, você também permitiu que eles fossem grandes o suficiente para lidar com um coredump do Apache? É provável que seja bastante grande, por isso, até mesmo configurá-los temporariamente para tamanho ilimitado pode ajudar.

    
por 01.04.2010 / 09:10
1

Aqui estão algumas dicas, considerando o alto número de possibilidades e a baixa quantidade de detalhes.

  1. Abra o arquivo de configuração do fórum, verifique se o host de conexão do MySQL é localhost
  2. abra / etc / hosts verifique se você tem uma linha como esta: 127.0.0.1 localhost.localdomain localhost
  3. Desligue qualquer firewall que você possa executar.
  4. Desligue qualquer mecanismo de cache do MySQL que você possa ter. (xcache, memcached, ...)
  5. Desinstale o pacote php-mysql e reinstale-o (ou force a reinstalação).

Se nada disso funcionar, por favor poste conteúdo do php.ini, httpd.conf e my.cnf.

    
por 03.04.2010 / 16:34
0

Se você usar o firefox, instale o plugin do Firebug. Ative-o clicando no ícone do bug no canto inferior direito do navegador e, em seguida, defina "Ativar" na guia "Rede". Carregue uma página do seu fórum e verifique se há erros.

    
por 22.03.2010 / 05:29
0

Há uma boa chance de que isso seja um problema sério no sistema operacional ou no hardware dos servidores.

Eu tentaria fazer uma verificação do sistema operacional (os linuxes baseados no Debian usam debsums , não tenho certeza para mais nada).

Experimente também uma execução de memtestx86+ , que deve confirmar que não há nenhum problema de memória em massa, eles podem aparecer apenas sob carga.

    
por 01.04.2010 / 06:18
0

Eu vi problemas semelhantes relacionados ao DNS, alguma chance de você postar o URL do site?

EDIT: Só vi que você mencionou que já, executar o site através link também poderia estar relacionado com o nome do host de servidores. Como eu disse, se você não se importa em postar o domínio, pode ser mais fácil.

    
por 01.04.2010 / 15:09
0

Tente parar o Apache e reinicie-o com: strace / path / to / httpd -X (apenas um trabalhador será iniciado e o Apache não será desanexado do console.) Reproduza o jeito e inspecione a saída do strace. Isso deve localizar o que parte do sistema está falhando.

    
por 07.04.2010 / 21:03
0

Tente reduzir o tamanho do cache de consulta no MySql.

    
por 07.04.2010 / 21:24