As an addition to my previous comment, please read this comment in
squid.conf (3.1.6 FWIW):
# TAG: store_avg_object_size (kbytes)
# Average object size, used to estimate number of objects your
# cache can hold.
I don't see how this helps fixing the problem I described in my initial
post.
Whether I set maximum_object_size_in_memory or the above parameter
should be largely irrelevant, simply because the memory usage should be
dependent on the cache_mem parameter (give or take a certain amount of
memory needed for managing the disk cache).
In other words, if squid memory management was working correctly, it
would try to take the store_avg_object_size and/or
maximum_object_size_in_memory parameters to determine the number of
objects it can store in memory, *and*, at the very least, try to
periodically check whether the objects placed in memory do not exceed
the threshold indicated in the cache_mem parameter. If that happens,
obviously, no additional objects should be placed in memory and squid
should start "demoting" existing objects in ram and put them back in the
disk storage cache until the cache_mem threshold is met.
That, it seems, does not happen and squid is trying to squeeze as much
out of my available ram as possible.