varnish 4.0 官方文档翻译10-用户手册-Storage backends

Storage backends

存储后端


Intro

varnish拥有可插入式的存储后端,它可以存储数据在在各种不同表现特性的后端中。默认的配置就是使用限制了大小的malloc后端(基于内存的)。对于一些vanish部署方式,你可能需要调整储存设置来适合相应的部署方式。

malloc

syntax: malloc[,size]

malloc是基于内存的后端。每个对象都将从内存中分配资源来存储。如果你的系统运行内存较小,swap将会被使用。

请注意,该尺寸限制只限制了实际存储,同时使用各种内部机制使得每个对象在内存中大约占1k,这种情况也包括在真实的存储中。

size参数指定最大分配给vanishd的内存数量。size的假定单位是byte,除非你指定下面的一个后缀:

K, k The size is expressed in kibibytes.
M, m The size is expressed in mebibytes.
G, g The size is expressed in gibibytes.
T, t The size is expressed in tebibytes.

默认size是不限制的

malloc的性能依赖于内存速度,所以很快。如果数据集大于可用内存,malloc的性能将依赖操作系统的实际分页能力。

file

syntax: file[,path[,size[,granularity]]]

file后端使用mmap通过非软连(unlinked)的磁盘文件来存储内存中的的对象。

path参数指定存放cache对象的文件(backing file)路径或者是varnishd将创建存放cache文件的目录,默认是/tmp.

size参数指定存放cache文件的大小。size的假定单位是byte,除非你指定下面的一个后缀:

K, k The size is expressed in kibibytes.
M, m The size is expressed in mebibytes.
G, g The size is expressed in gibibytes.
T, t The size is expressed in tebibytes.
% The size is expressed as a percentage of the free space on the file system where it resides.
    % 表示varnish安装文件系统中,varnish可以用空闲空间百分比

默认size是使用50%的设备可用空间。 如果backing文件存在,它将缩小或者扩张这个文件到指定的尺寸。

注意,如果是varnishd必须创建或者扩充这个文件,它将不预分配增加的空间,导致分裂,这可能对旋转的硬盘驱动器产生不利影响。预创建存储文件使用dd将减小分裂到最小化。

granularity参数指定分配的粒度。所有的粒度构成size。粒度假定用byte表示,除非添加了描述size的后缀除了%。

默认的granularity 是VM page的尺寸。如果你有大量的小对象,你需要减小VM page的尺寸。

file的性能通常受限于设备的读写速度、使用、查找时间。

persistent (experimental)

持久化(试验性的)

syntax: persistent,path,size {experimental}

持久化存储。varnish将存储对象到文件中,保护尽可能多的对象不受计划或非计划的关闭varnish。

path参数指定backfile的path。如果文件不存在,varnish将创建它。

size参数指定存放cache文件的大小。size的假定单位是byte,除非你指定下面的一个后缀:

K, k The size is expressed in kibibytes.
M, m The size is expressed in mebibytes.
G, g The size is expressed in gibibytes.
T, t The size is expressed in tebibytes.

vanish将分割文件到逻辑silos(仓库),然后以环形buffer的方式写这个silos。任意时间点只有一个silo是保持打开的状态。所有的silos是被密封的。当varnish启动或者关闭,varnish将从哪些不是封闭的silos中清除内容。

注意脱机使用持久化的同时使用bans 会引发一些问题。这是由于在silo离线期间所做的ban操作,在缓存的对象再次进入cache时将不被应用到新silo。因此,已经被ban掉的对象将再次进入cache。

Transient Storage

如果你指定你的后端为Transient,这对暂存(short lived)对象是有用的。默认varnish可以使用不受限的malloc后端来完成。

如果TTL是标示为shortlived,varnish将认为该对象short lived(Transient )

时间: 2024-10-26 01:52:08

varnish 4.0 官方文档翻译10-用户手册-Storage backends的相关文章

varnish 4.0 官方文档翻译-简要教程

varnish 4.0简要教程 这部分教程包含了varnish基本原理.囊括了什么是varnish.它怎样工作,同时也包含了开始使用和运行varnish.这部分过后你可能想继续了解用户向导(varnish用户引导). 如果你正在web上读这些呢 注意每页左边的Next topic和Previous topic The fundamentals of web proxy caching with Varnish使用varnish作为web代理缓存的原理 Supported platforms 支持

varnish 4.0 官方文档翻译21-Reporting and statistics

Reporting and statistics 本部分包括如何查看Varnish正在做什么,从每个http请求流的详细记录到汇总统计计数器. Logging in Varnish Statistics varnishtop varnishhist varnishstat Logging in Varnish Varnish中一个很棒的特点是工作日志的记录方式.varnish不记录日志到日志文件,而是调用VSL记录到共享内存片段,VSL-varnish共享日志.当这个片段被写完后,varnish

varnish 4.0 官方文档翻译20-Device detection

Device detection 设备检测基于请求中的User-agent找出哪种内容返回给客户端. 使用Device detection情况的一个例子,发送给小屏幕的手机客户端或者复杂的网络环境,减少发送文件的数量,或者提供给不能解码的客户端一个video解码器. 有些使用这种方案的典型场景: 重写url 使用不同的后端给客户端 改变后端请求为了让后端发送裁剪的内容 可能为了便于理解,下文中假定req.http.X-UA-Device头表示当前前客户端,同时每种客户端是唯一的. 简单的像这样设

varnish 4.0 官方文档翻译22-Varnish Website Performan

Varnish and Website Performance 本节集中解决如何调优varnish server,同时如何使用varnish优化你的web站点. 一共有三小节.第一小节你应该想到varnish的各种工具和功能,下一小节如何从cache中清除已经缓存的内容.清除内容是一项基本功能,因为它允许给缓存的对象增加 TTL.TTL越大varnish保持在缓存中的时间越久,这意味着varnish处理更多的请求,只将少部分的请求传递到相对较慢的后端. 最后一小节,处理web内容的压缩.当从后端

varnish 4.0 官方文档翻译16-Backend servers/M/B/D/H

Backend servers varnish有"后端"或者"源"服务器的概念.backend server提供给varnish加速的内容. 第一步设置是告诉varnish从哪儿找到backend server.使用你喜欢的编辑器打开varnishd引入的VCL文件. VCL文件的开头有一小段有点像这样: # backend default { #     .host = "127.0.0.1"; #     .port = "8080

varnish 4.0 官方文档翻译7-用户手册-安全第一

Security first 安全第一 如果你仅仅抓专注于运行varnish,或者所有人都是这个观点,那么就可以跳过该节了.我们保护你的方方面面当http请求来的时候. 如果你的web基础设施是外包的,管理是分开的,那么你就需要考虑安全了. Varnish在4个权威的等级提供安全,大致关系到怎样让命令生效和在哪儿生效. the command line arguments, the CLI interface, VCL programs, and HTTP requests. Command l

varnish 4.0 官方文档翻译19-VCL Examples

VCL Examples Manipulating request headers in VCL 在VCL中操作请求的header. 当我们想移除发送到web服务器/images目录的所有对象的cookie可以这样: sub vcl_recv {     if (req.url ~ "^/images") {     unset req.http.cookie;     } } 这样当请求被后端处理时在http的header中将不再有cookie信息.有用的是使用if语句.在匹配的UR

varnish 4.0 官方文档翻译7-用户手册-重要命令行参数

重要的命令行参数 当启动varnish时有两个重要的参数你必须设置: 一个是处理http请求的tcp监听端口,另一个是处理真实请求的后端server 如果你使用操作系统自带的包管理工具安装的varnish,你将在下面的文件找到启动参数: Debian, Ubuntu: /etc/default/varnish Red Hat, Centos: /etc/sysconfig/varnish FreeBSD: /etc/rc.conf (See also: /usr/local/etc/rc.d/v

varnish 4.0 官方文档翻译9-用户手册- 向Vanish下发指令

CLI-bossing Varnish around CLI 向Vanish下发指令 一旦vanish启动,你可以使用命令行接口来控制它. 最轻松的使用CLI的方法是在运行varnishd的机器上运行,varnishadm varnishadm help 如果你想远程使用varnishadm,有两种方法. 你可以使用ssh登录到运行varnishd的机器上然后varnishadm ssh $http_front_end varnishadm help 同时你也可以配置vanishd接受远程的CL