为什么varnish不考虑malloc限制?

jua*_*uan 6 varnish

我使用-s malloc,25G运行varnish ,但是进程一直在增长,直到它消耗掉所有服务器内存并崩溃,重新启动缓存.

知道我可以检查什么是错的吗?

该服务器有16个内核和32 GB的RAM.
我正在使用清漆3.

28346?Ss 0:16/usr/sbin/varnishd -P /var/run/varnishd.pid -a:9290 -T localhost:6082 -f /etc/varnish/default.vcl -s malloc,25G -p thread_pools 16 -p thread_pool_min 160 -p thread_pool_max 16000 -p thread_pool_add_delay 2

记忆

特写

Joa*_*son 9

-s malloc,25G 只限制了高速缓存的大小,而不是大小varnishd的过程.

请记住,使用-s参数指定的大小是实际高速缓存的大小,这一点很重要.Varnish在此基础上有一个开销用于跟踪缓存,因此Varnish的实际内存占用量将超过'-s'参数指定缓存是否已满.当前的估计(根据个别Varnish版本的变化而定)是每个对象所需的大约1kB的开销.对于100万个对象,这意味着1GB额外的内存使用量.

如果您有一个大缓存,file后端可能更好.