On 4/03/19 5:39 pm, George Xie wrote: > hi all: > > Squid version: 3.5.23-5+deb9u1 > Docker version 18.09.3, build 774a1f4 > Linux instance-4 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) > x86_64 GNU/Linux > > I have the following squid config: > > > http_port 127.0.0.1:3128 > cache deny all > access_log none >
What is it exactly that you think this is doing in regards to Squid memory needs? > > runs in a container with following Dockerfile: > > FROM debian:9 > RUN apt update && \ > apt install --yes squid > > > the total memory of the host server is very low, only 592m, about 370m > free memory. > if I start squid in the container, squid will abort immediately. > > error messages in /var/log/squid/cache.log: > > > FATAL: xcalloc: Unable to allocate 1048576 blocks of 392 bytes! > > Squid Cache (Version 3.5.23): Terminated abnormally. > CPU Usage: 0.012 seconds = 0.004 user + 0.008 sys > Maximum Resident Size: 47168 KB > > > error message captured with strace -f -e trace=memory: > > [pid 920] mmap(NULL, 411176960, PROT_READ|PROT_WRITE, > MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory) > > > it appears that squid (or glibc) tries to allocate 392m memory, which is > larger than host free memory 370m. > but I guess squid don't need that much memory, I have another running > squid instance, which only uses < 200m memory. No doubt it is configured to use less memory. For example by reducing the default memory cache size. > the oddest thing is if I run squid on the host (also Debian 9) directly, > not in the container, squid could start and run as normal. > Linux typically allows RAM over-allocation. Which works okay so long as there is sufficient swap space and there is time between memory usage to do the swap in/out process. Amos _______________________________________________ squid-users mailing list squid-users@lists.squid-cache.org http://lists.squid-cache.org/listinfo/squid-users