平台特定备注

在某些平台上,在运行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就会应用它们。