Martin.Pichlmaier@xxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:
Hello list,
I have a question regarding memory and CPU usage change from 3.0 to 3.1.
I have 4 forwards proxies with ICAP (c-icap and clamav), NTLMv2
authentication, all four proxies each have about 200-400 req/sec
on RedHat AS5 64bit servers with each 16GB mem for about 15k to 30k users.
cache_mem is set to 3.5 GB, no disk cache, some ACLs are used.
With 3.0.STABLE23 the typical memory usage was about 7 GB and CPU usage of
about 30-40% for the main squid process, without the helpers or other
processes.
With 3.1.4 the proxies use up to 2GB more memory and CPU usage rose at
times to 60% or 80%.
After a restart of one of the proxies it behaved "normally" since then.
Status: (the CPU usage, Client HTTP out and requests per second are all
from last 5 minute-info)
Proxy1: 36% CPU 7.2 GB mem 3.3 MB/s client out 341 req/s
Version 3.1.4
Proxy2: 77% CPU 8.6 GB mem 2.6 MB/s client out 384 req/s
Version 3.1.4 <-----
Proxy3: 53% CPU 8.8 GB mem 6.8 MB/s client out 402 req/s
Version 3.1.4
Proxy4: 32% CPU 6.8 GB mem 2.7 MB/s client out 405 req/s
Version 3.0.STABLE23
Configuration of the proxies is the same, with only the changes for 3.1,
mainly icap config.
Is there some kind of memory leak that additionally causes massive CPU
usage, could it be load related or is this normal behaviour?
Martin
With an explicit cache_mem there should be no difference between the two.
Maybe; ICAP needs to buffer traffic twice as much as normal. One buffer
queue to ICAP server, one to client.
Maybe; with HTTP/1.1 being advertised now, if you have ignore_expect_100
turned on you can see the number of waiting clients rise. These are
active but 'hung' connections which waste more resources until the
client times out and continues.
Maybe; There are some known leaks in 3.0/3.1 auth. But that does not
account for the extra CPU unless it contributes to making the box swap
memory pages.
In general 3.1.4 has a lot of memory fixes than 3.0. Which are supposed
to cause less resource waste. Earlier 3.1.x default memory features were
broken on 64-bit. Check if turning memory pools on/off has any good effect.
Amos
--
Please be using
Current Stable Squid 2.7.STABLE9 or 3.1.4