Varnishd stops sending logs to VSM after a while

Dridi Boukelmoune dridi.boukelmoune at zenika.com
Thu Mar 13 10:14:45 CET 2014


Hi,

On Thu, Mar 13, 2014 at 9:30 AM, Cédric Jeanneret <varnish at tengu.ch> wrote:
> Hello,
>
> We have a small problem with 5 of our varnishes (on a total of 6…):
> it seems every morning, varnishd stops sending stuff to the Shared
> Memory[1], meaning we don't have any logs.
>
> The only thing I found in order to get logs back is to restart varnish,
> but of course this isn't the best way to solve the problem…
>
> Here are some information:
>
> Version: varnishd (varnish-3.0.2 revision 55e70a4)
> ** OS: Debian Squeeze
> ** System memory: 7468Mo
> ** CPU: dual E5645 @ 2.40GHz (Note: for those who knows about Amazon AWS
> instances, it's an m1.large, instance-store AMI.)
> ** Daemon options:
> DAEMON_OPTS="-n <instance-name> \
>              -u varnish -g varnish \
>              -a :80 \
>              -T localhost:6082 \
>              -s malloc,5G \
>              -f /etc/varnish/<configuration-file>.vcl \
>              -S /path/to/secret \
>              -p shm_reclen=65535 \
> "
>
> ** Tasks around the time the logs stop: logrotate for varnishncsa logs,
> with a varnishncsa restart. This shouldn't break varnishd log system,
> and it worked fine for months…
>
> We didn't detect any problem with memory nor disk I/O during the outage.
> This morning, it was the third time in a row we detected this issue.
>
> For what we know, neither the VCL nor daemon options were changed just
> before the problem appears (well, VCL was changed, some backend
> "routing" was updated, but nothing out of the ordinary stuff we do for
> months now).
>
> Symptoms:
> - /var/lib/varnish/<instance-name>/_.vsm isn't updated
> - running varnishncsa or varnishlog from the shell doesn't show any log
> entries
> - restarting the varnishd service bring logs up again (we can see the
> flow if we keep the varnishncsa up)
>
> An "lsof -p <varnish-pid>" shows this line:
> varnishd 17948 varnish  DEL    REG      202,1              264837
> /var/lib/varnish/<instance-name>/_.vsm

I suspect something "unrelated" deleted the log file, but varnishd is
probably still logging as usual. Because it still holds a file
descriptor of the log file.

It's the log-reading tools on the other hand that won't see the file
on the filesystem once it's deleted (unless they already hold a fd).
That's why it feels like varnishd is not logging anymore.

Dridi

> I'm not very comfortable with the "DEL" FD: when I do the same command
> once logs flow, I get:
> varnishd 22603 varnish  mem       REG      202,1 84934656     264058
> /var/lib/varnish/<instance-name>/_.vsm
>
> It seems "something" is degrading the shared memory…
>
> Any help would be welcome, I'm a bit stuck with the investigations right
> now :(.
>
> Cheers,
>
> C.
>
>
> [1] https://www.varnish-cache.org/docs/trunk/reference/vsm.html
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc



More information about the varnish-misc mailing list