make varnish don't start a subprocess

Harald Friessnegger harald at webmeisterei.com
Thu Mar 26 19:37:45 CET 2009


hi des

thanks for your reply.

in order to get an idea how to optimize my setup and get a better 
understanding i'd like to recap to make sure i understood correctly: 

Am Dienstag, 24. März 2009 17:10:56 schrieb Dag-Erling Smørgrav:
> If you're using a storage file, varnishd will use a relatively small
> amount of memory + address space roughly equal to the size of the file.


-s file,"/home/zope/parts/varnish/storage",500M 
will make the varnishd use around 750M RAM (see my comment on the next block), 
a storage file with 700M will result in around 950M RAM used.


if that address space needs roughly the same amout of RAM as the storage 
file's size - and the cache is not persisted (lost when varnishd is 
restarted) - why do we need a storage file at all?


> > whilst the file itself is exactly 500 megabyte in size, varnish
> > uses 1115M memory - 44% of the total available 2,5GB RAM (1,5GB RAM, 1GB
> > disk-swap) after 5 days of uptime. see `figure 1` below.
>
> It's not that simple.  The file is mapped into varnishd's address space,
> so the VIRT number you get from top includes the size of the file (as
> well as the size of the program itself and all libraries it uses).  RES
> is how much of that is actually in RAM.  The OS may swap unused parts of
> the cache to the storage file, but never to the swap partition.

using the sizes given in the RES column varnish uses 673+81=754M RAM::

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1344 nobody    15   0 1349m 673m 133m S    0 44.5   0:08.38 varnishd
 1244 zope      15   0  637m 461m 3428 S    0 30.5  40:41.93 python2.4
 1245 root      15   0 98196  81m  81m S    0  5.4   0:00.02 varnishd

so the "relatively small amount of ram" varnish uses in addition to the 
address space is about 200M.

are these usual numbers?



> You should probably look at /proc/$pid/map instead of using top, BTW.

i tried out /proc/$pid/maps but did not really succeed in calculating memory 
usage out of the address blocks (i think this is what needs to be done here?)
this is an example from the manpage http://linux.die.net/man/5/proc

  address           perms offset  dev   inode      pathname
  08048000-08056000 r-xp 00000000 03:0c 64593      /usr/sbin/gpm
  08056000-08058000 rw-p 0000d000 03:0c 64593      /usr/sbin/gpm

probably the RES column in top is enough to get an idea how much RAM is 
consumed by a process.




regards, harald


-- 
Webmeisterei GmbH - Büro für Netzfragen
Tel: +43 5572 908877,  Fax: +43 5572 908877-66
Steinebach 18, A-6850 Dornbirn

http://www.webmeisterei.com



More information about the varnish-misc mailing list