cache empties itself?

Sascha Ottolski ottolski at web.de
Thu Apr 3 19:17:53 CEST 2008


Am Donnerstag 03 April 2008 18:07:53 schrieb DHF:
> Sascha Ottolski wrote:
> > how can this be? My varnish runs for about 36 hours now. yesterday
> > evening, the resident memory size was like 10 GB, which is still
> > way below the available 32. later that evening, I stopped letting
> > request to the proxy over night. now I came back, let the request
> > back in, and am wondering that I see a low cacht hit rate. looking
> > a bit closer it appears as if the cache got smaller over night, now
> > the process only consumes less than 1 GB of resident memory, which
> > fits the reported "bytes allocated" in the stats.
> >
> > can I somehow find out why my cached objects were expired? I have a
> > varnishlog -w running all the time, the the information might
> > there. but, what to look for, and even more important, how can I
> > prevent that expiration? I started the daemon with
> >
> > -p default_ttl=31104000
> >
> > to make it cache very aggresively...
>
> There could be a lot of factors, is apache setting a max-age on the
> items?  As it says in the man page:
>
>  default_ttl
>            The default time-to-live assigned to objects if neither
> the backend
>            nor the configuration assign one.  Note that changes to
> this param-
>            eter are not applied retroactively.
>
> Is this running on a test machine in a lab where you can control the
> requests this box gets?  If so you should run some tests to make sure
> that you really are caching objects.  Run wireshark on the apache
> server listening on port 80, and using curl send two requests for the
> same object, and make sure that only one request hits the apache box.
>  If thats working like you expect, and the Age header is
> incrementing, then you need to run some tests using a typical
> workload that your apache server expects to see.  Are you setting
> cookies on this site?
>
> I think what is happening is that you are setting a max-age on
> objects from apache ( which you can verify using curl, netcat,
> telnet, whatever you like ), and varnish is honoring that setting and
> expiring items as instructed.  I'm not awesome with varnishtop and
> varnishlog yet, so I'm probably not the one to ask about getting
> those to show you an objects attributes, anyone care to assist on
> that front?
>
> --Dave

dave, thanks a lot, I may have confused it with varnishd -t, which 
doesn't seem to be the same as -p default_ttl? hmm, but then again, the 
manual says it's a shortcut, but the semantic sound different then the 
above:

     -t ttl      Specifies a hard minimum time to live for cached 
documents.  This is a shortcut for
                 specifying the default_ttl run-time parameter.


Cheers, Sascha



More information about the varnish-misc mailing list