Varnish pára de escutar na porta 80 depois de algumas horas

1

Eu configurei o verniz para escutar na porta 80 e o nginx para ouvir em 8080. Após cerca de 24 horas de atividade, meu site ficou inativo por 22 horas. Eu chequei e descobri que o verniz não está escutando na porta 80.

Quando o site está ativo:

abc@abc:~$ sudo netstat -anp --tcp --udp | grep LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      571/varnishd
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      376/nginx
tcp        0      0 0.0.0.0:9171            0.0.0.0:*               LISTEN      376/nginx        
tcp        0      0 publicip:6082           0.0.0.0:*               LISTEN      569/varnishd
tcp6       0      0 :::80                   :::*                    LISTEN      376/nginx         
tcp6       0      0 ::1:6082                :::*                    LISTEN      569/varnishd

Quando o site está inativo:

abc@abc:~$ sudo netstat -anp --tcp --udp | grep LISTEN
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      376/nginx
tcp        0      0 0.0.0.0:9171            0.0.0.0:*               LISTEN      376/nginx
tcp        0      0 publicip:6082           0.0.0.0:*               LISTEN      745/varnishd
tcp6       0      0 :::80                   :::*                    LISTEN      376/nginx
tcp6       0      0 ::1:6082                :::*                    LISTEN      745/varnishd

Este é o meu / etc / default / verniz:

## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.  Use a 1GB
# fixed-size cache file.
#
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,96m"

Existe uma razão específica pela qual o verniz não está escutando na porta 80 no segundo caso? Eu provavelmente posso apenas verificar e se o verniz não estiver ativo, reinicie-o, mas isso ainda significaria alguns minutos de inatividade.

Meu arquivo varnish.vcl: link Estou no Ubuntu 12.04 x86

Aconteceu de novo depois de 2 horas ou mais e foi isso que encontrei no syslog.

Feb 14 18:16:00 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:16:51 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:17:49 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:18:06 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:19:33 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:21:25 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:22:34 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:28:28 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:29:41 abc varnishd[745]: Child (749) not responding to CLI, killing it.
Feb 14 18:29:48 abc last message repeated 2 times
Feb 14 18:29:48 abc varnishd[745]: Child (749) died signal=3
Feb 14 18:29:49 abc varnishd[745]: Child cleanup complete
Feb 14 18:29:55 abc varnishd[745]: child (1380) Started
Feb 14 18:29:58 abc varnishd[745]: Pushing vcls failed: CLI communication error (hdr)
Feb 14 18:29:58 abc varnishd[745]: Stopping Child
Feb 14 18:29:58 abc varnishd[745]: Child (1380) said Child starts
Feb 14 18:29:59 abc varnishd[745]: Child (1380) said Child dies
Feb 14 18:30:02 abc varnishd[745]: Child (1380) died status=1
Feb 14 18:30:04 abc varnishd[745]: Child cleanup complete

Não sei por que os IDs de processo são diferentes dos que eu postei anteriormente. Talvez eu tenha reiniciado durante a solução de problemas. Eu realmente não consigo entender muito desses registros. Qualquer ajuda é apreciada.

Adicionando mais registros:

Detalhes de /etc/log/messages :

Primeira vez que parou:

Feb 13 17:40:44 dragon75 varnishd[581]: Child (583) died signal=3
Feb 13 17:41:09 dragon75 varnishd[581]: child (2682) Started
Feb 13 17:42:31 dragon75 varnishd[581]: Child (2682) said Child starts
Feb 13 17:51:48 dragon75 varnishd[581]: Child (2682) died status=1
Feb 13 17:51:48 dragon75 varnishd[581]: Child (-1) said Child dies

Segunda vez que parou:

Feb 14 18:29:48 dragon75 varnishd[745]: Child (749) died signal=3
Feb 14 18:29:55 dragon75 varnishd[745]: child (1380) Started
Feb 14 18:29:58 dragon75 varnishd[745]: Child (1380) said Child starts
Feb 14 18:29:59 dragon75 varnishd[745]: Child (1380) said Child dies
Feb 14 18:30:02 dragon75 varnishd[745]: Child (1380) died status=1

De acordo com as mensagens, às 16:31 o verniz começou e depois há 5 mensagens MARK em / var / log / messages e depois a criança verniz faleceu às 18:29. Não há nada entre.

Eu não acho que os recursos sejam um gargalo. Este é um novo site e ainda está em fase de testes. Eu não coloquei nada sobre isso. Não há tráfego, exceto o script de tempo de atividade que tenho em outro servidor que apenas verifica a página inicial. Esta é a primeira vez que estou usando verniz.

    
por aste123 14.02.2014 / 12:26

1 resposta

1

Aumente o parâmetro cli_timeout no verniz para 60s.

Isso controla por quanto tempo o pai / mãe de monitoramento esperará que a criança responda a uma verificação de saúde. Se o sistema operacional estiver ocupado paginando dados de / para o disco, o padrão 10s poderá ser baixo. Aumente para um minuto (padrão de 4.0 em diante) e veja se o problema desaparece.

Se isso não ajudar, meu próximo palpite seria scripts de rotação de log excessivamente ávidos que matem mais do que deveriam.

    
por 07.03.2014 / 14:39