據我所知,Varnish沒有內置的方法來限制它運行的內核數量。您需要操作流程在操作系統級別的運行方式。假設你在Linux上,最簡單的方法是修改啓動命令,使用taskset
將進程固定到指定的內核或內核範圍。例如,在服務單元控制裝置:
# /etc/systemd/system/varnish.service.d/override.conf
ExecStart=
ExecStart=/usr/bin/taskset -c 4-7 /usr/sbin/varnishd \
-j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
這將限制varnishd過程的第五,第六,第七和八個核。如果你啓用了超線程,它會變得有點棘手;你的八個物理內核將呈現爲16個邏輯內核,「真實」內核與「虛擬」交織在一起。在這種情況下,您可以嘗試taskset -c 8,10,12,14
或taskset -c 9,11,13,15
,或者如果您不關心將光油限制爲物理核心,taskset -c 8-15
。
您的其他選項包括設置cgroup或集裝箱清漆(或虛擬化系統,但我假設這不在桌面上)。如果taskset
選項不適用於您,或者您沒有在Linux上運行,請使用其他信息更新您的問題。
來源
2016-09-19 20:30:55
mwp