rihad wrote:
Chris Robertson wrote:
rihad wrote:
Squid using almost twice as much memory as was accounted for
(according to top(1)):
4243 squid 29 20 0 1325M 1317M kserel 42:39 0.00%
squid
Is this expected?
From
http://wiki.squid-cache.org/SquidFaq/SquidMemory#head-0b5e485f61e7ea4e580c60f45177f0bbcf7d7b80
....Additionally, most operating systems do not allow processes to
shrink in size. When a process gives up memory by calling /free/, the
total process size does not shrink. So the process size really
represents the maximum size your Squid process has reached.
It shouldn't have reached this much in the first place.
As noted down below, this amount of memory utilization is expected.
> ....As a rule of thumb on Squid uses approximately 10 MB of RAM per GB
of the total of all cache_dirs (more on 64 bit servers such as
Alpha), plus your cache_mem setting and about an additional 10-20MB.
300 + (50 * 10) + (50 * 10) + 20 = 1320. That about covers it.
Please note carefully that in my email I was comparing top's output to
cachemgr's:
4243 squid 29 20 0 1325M 1317M kserel 42:39 0.00% squid
Total accounted: 763252 KB
and asking if the difference was to be expected, or there could be
some memory leak of some sort. Even though Squid does not account for
every possible byte of memory, about twice as much is way too much, as
Henrik once noted.
I noted that the first time. I'll try to be more clear. Top is showing
the max used (1320). Given the total size of your cache directories
(100GB total, at 10MB memory used per GB) that's 1000MB of memory usage
plus the 300MB you've explicitly set for cache_mem, plus another 20MB
for overhead, the max memory Squid is going to use is around 1320MB (as
shown in top). When you checked cachemgr, squid was not (at that
moment) using all of that memory, but your OS does not allow the process
to shrink in size. Hence, Squid was currently using about half of where
it maxed out, but was allocated the maximum that it had ever used.
A leak would indicate that Squid doesn't stop growing. The usage you
are indicating is both finite and accounted for.
Chris