8

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

知道我可以检查什么,看看有什么问题吗?

该服务器有 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

记忆

特写

4

3 回答 3

11

唯一限制的-s malloc,25G 是缓存大小,而不是varnishd进程的大小。

请务必记住,您使用 -s 参数指定的大小是实际缓存的大小。Varnish 在此之上有一个开销来跟踪缓存,因此Varnish 的实际内存占用量将超过 '-s' 参数指定的缓存是否已满。目前的估计(可能会在各个 Varnish 版本上有所变化)是每个对象需要大约 1kB 的开销。对于 100 万个对象,这意味着 1GB 的额外内存使用量。

如果你有一个大缓存,file后端可能更可取。

于 2013-05-22T14:04:52.140 回答
1

文档是正确的,但由于内存碎片,问题更加严重。为了安全起见,您应该允许为malloc装卸工人配置的 1.5 倍到 2 倍的尺寸

于 2014-05-15T09:34:47.980 回答
0

由于碎片,清漆可能会使用给定值的双倍。您可以在此处阅读更多信息:https ://info.varnish-software.com/blog/understanding-varnish-cache-memory-usage

顺便说一句:Varnish 3 存在安全漏洞,而且已经很老了。请更新

于 2021-10-22T15:06:24.180 回答