apache “espera” 30 segundos antes de enviar a resposta para algumas páginas

1

Eu uso um raspberry pi para hospedar algum serviço da web (como owncloud ou gitlist). Recentemente eu adicionei minúsculos rss minúsculos, everythings está funcionando bem, exceto que o apache espera 30 segundos para enviar a resposta de páginas php, olhei para o topo durante o carregamento da página, o seu apache que comer cpu não php. E isso só acontece com o ttrss (small tiny rss), o owncloud é bom desde que eu instalei o php-ac.

access.log do apache não mostra nada até os 30 segundos.

No error.log, eu tenho:

[Sun Mar 17 10:23:17 2013] [error] [client 192.168.0.12] PHP Strict Standards:  Declaration of SanitizeDummy::sanitize() should be compatible with SimplePie_Sanitize::sanitize($data, $type, $base = '') in /var/www/ttrss/include/functions.php on line 14, referer: http://pi.local/ttrss/index.php

Cada vez que eu carrego a página index.php, mas o erro é exibido depois que os 30 segundos são interrompidos (quase quando tudo está carregado).

Ele faz isso apenas para index.php e prefs.php (e somente quando um usuário está logado, a página de login é rápida)

a página ttrss fala sobre o php-ac, mas eu não percebi nada que mudou com isso.

Este é um problema de configuração? Eu não acho que a mensagem de erro tem algo a ver com isso, mas talvez eu esteja errado

(Eu já perguntei no raspberrypi.stackexchange.com, mas eles me disseram que eu talvez tenha mais chance aqui)

    
por eephyne 17.03.2013 / 17:20

1 resposta

1

Tenho certeza de que isso acontece porque:

  • você configurou o tt-rss para atualizar os feeds enquanto a página está aberta (parâmetro SIMPLE_UPDATE_MODE no config.php).
  • você tem um monte de feeds, e o tt-rss está tentando atualizá-los no carregamento e o Apache expira, porque o seu Raspberry não tem poder de CPU para fazer tudo em 30 segundos e esse é o limite de tempo de execução do PHP.

Se for esse o caso, recomendo que você faça o seguinte:

  • Altere sua configuração para:
    • 'SIMPLE_UPDATE_MODE', falso
  • Execute sua atualização de feeds em uma tarefa do cron (eu tenho isso em Debian e www-data, ajuste ao seu caso específico):

    */15 * * * * cd /usr/share/tt-rss/www && /usr/bin/php update.php -feeds > /dev/null

Eu prefiro deixar erros para detectar problemas. Se você usar a versão mais recente (1.7.4 no momento da redação deste texto), receberá o erro Sanitize que você colou na sua pergunta. Está relacionado ao script update.php, mas de outra forma é falso; o patch para consertá-lo é link .

Mais sobre a atualização de feeds no tt-rss: link

Isenção de responsabilidade: Eu não gosto da abordagem update_daemon2.php porque o processo pode morrer e ninguém lhe diria, então você precisaria executá-lo através de daemontools ou algo similar para ter certeza de que ele está sempre ativo. Além disso, se você atualizar o código, precisará pará-lo para recarregar o novo código.

Espero que ajude.

    
por 22.03.2013 / 18:54