<br><br><div class="gmail_quote">On Fri, Nov 26, 2010 at 4:41 PM, Angelo Höngens <span dir="ltr"><<a href="mailto:A.Hongens@netmatch.nl">A.Hongens@netmatch.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Per wrote in his survey result: "62% use -s file, which I find somewhat surprising. -s file doesn't really perform that well under pressure on rotating hard drives due to some changes in recent Linux and FreeBSD kernels."<br>


<br>
But does anyone have a link to (or write up) some explanation for dummies on cache file types? I know there's 'file' and 'malloc', but I don't know the difference or the pros and cons.<br></blockquote>

<div><br></div><div>In Varnish 1.0 we had -s file and everything was fine. People where using Varnish on  Linux 2.6.9 (and thereabout) and FreeBSD6. Then came 2.6.18 with RHEL5 and some other Linux distros and Varnish started behaving a bit strange. The IO pressure had increased and we saw load skyrocket with Varnish being stuck IO sleep a lot of the time, waiting for writes to finish. Then FreeBSD7 came out and showed the same behavior. Obviously the kernel developers of the world where ganging up on us.</div>

<div><br></div><div>Alterations in vm behavior are difficult things to track down and the chances of changing the behavior back might be slim - Varnish being something of an oddball doing crazy stuff like mmaping several gigabytes and accessing it in a random fasion (and most of them saying things like "Wow, that actually works?" when hearing what we do). </div>

<div><br></div><div>Anyway, Poul came up with -s malloc, which just allocates slabs of ordinary memory and stores everything there. Since ordinary memory isn't backed by disk a write to memory doesn't trigger a write to disk so there are no sync disk writes to slow us down. On the flip side - at least on Linux, if your data set doesn't dit in memory - the moment you start to actively use your swapping space things grind to a halt. FreeBSD seems to cope better with programs being larger then the amount of memory.</div>

<div><br></div><div>Several people are running high traffic sites with -s file backed by SSD. That seem to perform very well on Linux. Our main FreeBSD user, Anders N, uses -s malloc so I don't know much about how -s file on FreeBSD anymore.</div>

<div><br></div><div>So, to sum up:</div><div> - If you have SSD drives you can mostly do what you want. I don't know of anyone running huge varnish process that swap alot - but it _might_ work. If you are, let me know.</div>

<div> - If your varnish process doesn't write that much you're probably in the clear no matter what you'll do.</div><div> - If you have a small data set that fits neatly in memory, use -s malloc.</div><div> - If you you have a large data set that doesn't fit in memory you have to get SSD drives.</div>

<div><br></div><div>Oh, and at least on Linux there are a bunch of tunables that might alter or even rectify some of the misbehavior we've seen. </div><div><br></div><div><br></div><div>I should clean this up, get some tests done and write it up somewhere. </div>

</div>-- <br>Per Buer,  Varnish Software<br>Phone: +47 21 98 92 61 / Mobile: +47 958 39 117 / skype: per.buer<br>