Hi, On Mon, Dec 20, 2010 at 06:04:53AM -0800, Vincent wrote: > We are running varnish on a 32-bit centos 5 box and we have noticed that > sometimes the child process of varnishd will restart automatically.
You should be using 64bit. > varnishd[12707]: Child (12708) Panic message: Missing errorhandling code in > sma_alloc(), storage_malloc.c line 81: Condition((sma->s.ptr) != 0) not > true.errno = 12 (Cannot allocate memory) thread = (cache-worker) ident = (...) > Varnishd was started with option "malloc,1.5G" and it runs without any > problem for hours before the child process restarts. When the child process > restarts, the system still have about 1.5G free memory so this is not a out > of memory issue. You are out of memory - possibly 32-bit-related issue since you have a artificially limited address space. That your system has 1.5GB "free" memory doesn't mean you can use it. That's why you want to run 64-bit systems: then you can actually use the memory too. An other possible culprit is disabling overcommit - but if you actually had free memory, it's unlikely that that's your problem. The proper solution to this problem is to reinstall your system using a 64-bit operating system. If you prefer wasting countless hours, you can try to estimate the overhead of the object count (roughly 1kB) and how that affects the total memory usage of varnishd, factor in stack size of threads, constant memory overhead and the available address space left to you - it's seriously not fun (or all that easy). - Kristian
signature.asc
Description: Digital signature
_______________________________________________ varnish-misc mailing list [email protected] http://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
