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