平台特定备注¶
在某些平台上,在运行Varnish之前需要调整操作系统。本节介绍了我们已知的系统和步骤。
Redhat Enterprise Linux 6上的透明页面¶
在RHEL6上,默认情况下会启用透明HUGPAGE内核支持。众所周知,这会导致Varnish的零星崩溃。
建议在受影响的系统上禁用透明大页面。这可以通过以下方式完成 echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
(运行时),或者在“/etc/gRub.conf”文件的内核引导行中添加“THELTIAL_HUGPAGE=NEVER”(持久)。
在运行3.2内核的Debian/Ubuntu系统上,缺省值为“mise”,不需要更改。
OpenVZ¶
为了获得高性能,可以在虚拟硬件上运行Varnish,但不推荐这样做。降低磁盘和网络性能会略微降低性能,因此请确保您的系统具有良好的IO性能。
如果您运行的是64位OpenVZ(或Parallels VPS),您必须在启动Varnish之前减小最大堆栈大小。
默认情况下,每个线程分配的内存太多,这将使Varnish在线程数量(流量)增加时立即失败。
通过添加以下内容来减少最大堆栈大小 ulimit -s 256
在初始化脚本中启动Varnish之前。
TCP保活配置¶
在某些Solaris、FreeBSD和OS X系统上,Varnish无法设置每个套接字的TCP保活值,因此 tcp_keepalive_ Varnish运行时参数不可用。在这些平台上,调整这些值的系统范围值可能是有益的,以便更可靠地检测在等待列表上花费较长时间的会话的远程关闭。这将有助于更快地释放资源。
不支持每个套接字的TCP保活值的系统包括:
Solaris版本11之前的版本
9.1版之前的FreeBSD版本
在Mountain Lion之前发布OS X
在具有必要插槽选项的平台上,缺省值设置为:
tcp_keepalive_time =600秒
tcp_keepalive_probes =5
tcp_keepalive_intvl =5秒
请注意,只要这些运行时参数小于系统缺省值,Varnish就会应用它们。