(This also may be an issue in Squid-3, as the mem_node class stores the data inline.)
I did a little poking with the FreeBSD allocator - it allocates non-tiny objects on page boundaries with a size rounded up to the next page. [EMAIL PROTECTED] ~]$ ./test1 test1 131072 allocating 12, then 4096 byte structures 131072 times.. RSS: 536868 [EMAIL PROTECTED] ~]$ ./test1 test2 131072 allocating 4108 byte structure 131072 times.. RSS: 1059244 The source is available here: http://www.creative.net.au/diffs/mem-size.c I believe newer allocators do this sort of thing. Could people on other platforms (Linux, Solaris, Windows? :) give the above a whirl and let me know what the output is? I'm going to revisit my (much) earlier work which folded the 4k buffer into the mem_node and look at unwinding it. Its easy to do everywhere -except- the write path and thats all very dirty. That -should- drop the memory usage for large memory caches a bit. It'll increase the allocator usage a bit but then there are other much larger abuses of the allocator out there. Comments? Adrian -- - Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support - - $25/pm entry-level VPSes w/ capped bandwidth charges available in WA -
