Thanks Darryl! <br><br>One follow-up about the VIRT size (mine is 55.2GB). I thought the VIRT size includes the entire amount of VARNISH_STORAGE_SIZE (50GB in my case), regardless of how much of the virtual memory is actually being used to store cached objects. This seems to be the case based on a few minutes of experimenting with that setting. So I'm not sure I understand how to determine the amount of virtual memory I'm actually using -- in other words, the amount of RAM I need to add for optimal performance --  from the VIRT and RES numbers alone. Any chance I could ask you to please fill in what I'm missing?<br>
<br>Thanks again,<br>Martin<br><br><div class="gmail_quote">On Tue, Jan 26, 2010 at 10:34 PM, Darryl Dixon - Winterhouse Consulting <span dir="ltr"><<a href="mailto:darryl.dixon@winterhouseconsulting.com">darryl.dixon@winterhouseconsulting.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Martin,<br>
<div class="im"><br>
> I'm running Varnish on a box with 4GB RAM. There are hundreds of thousands<br>
> of objects being served, and I'm certain that they don't all fit in that<br>
> relatively meager amount of RAM. I understand that Varnish's model<br>
> dictates<br>
> that the kernel will be trusted to use virtual memory as necessary if the<br>
> cached objects don't fit in RAM. I have a few questions about this:<br>
><br>
> 1. How can you tell whether your Varnish objects fit in RAM?<br>
<br>
</div>In short, `top` - the VIRT column tells you total virtual process size,<br>
the RES column then tells you which portion of that is currently resident<br>
in physical memory<br>
<div class="im"><br>
> 2. If I have objects residing in virtual memory, to what extent will my<br>
> performance be adversely affected? If I want my site to be fast, do I<br>
> basically need to go out and buy as much RAM as it will take so that<br>
> virtual memory isn't needed?<br>
<br>
</div>Pretty much.<br>
<div class="im"><br>
> 3. I noticed tonight that my machine was using a few hundred megs of swap<br>
> space, which I've never seen happen before. Varnish is the only non-system<br>
> service running on this box. My understanding was that Varnish would get<br>
> only as much RAM as was available and then send the overflow into the<br>
> file-backed virtual memory. If that's the case, though, then why is swap<br>
> space being used? Is this just a side effect of how the kernel allocates<br>
> memory, or is something else going on here?<br>
<br>
</div>Two things;<br>
1) The varnish process itself requires memory (eg, to hold the ban list<br>
etc), which is not part of the file-backed object cache.<br>
2) Even if the above usage were minimal, it is still entirely possibly<br>
that your VMM (the OS) has decided that the memory being used to cache<br>
objects is more important that some other system processes that have now<br>
been shunted out to swap. Once again, `top` VIRT versus RES will give you<br>
a good clue<br>
<br>
regards,<br>
Darryl Dixon<br>
Winterhouse Consulting Ltd<br>
<a href="http://www.winterhouseconsulting.com" target="_blank">http://www.winterhouseconsulting.com</a><br>
</blockquote></div><br>