博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
varnish 4.0 官方文档翻译10-用户手册-Storage backends
阅读量:6626 次
发布时间:2019-06-25

本文共 2177 字,大约阅读时间需要 7 分钟。

hot3.png

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 )

转载于:https://my.oschina.net/monkeyzhu/blog/420936

你可能感兴趣的文章
最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和...
查看>>
测试妹子的呐喊:为什么总是收不到推送?
查看>>
linux NFS
查看>>
Jquery DataTable基本使用
查看>>
leetcode 674. Longest Continuous Increasing Subsequence
查看>>
Extensions in UWP Community Toolkit - SurfaceDialTextbox
查看>>
Golang 语言的单元测试和性能测试(也叫 压力测试)
查看>>
Java中CAS详解
查看>>
Java Spring MVC 错误 及 常见问题 总结
查看>>
Linux系统实战项目——sudo日志审计
查看>>
Android Application Task Activities的关系
查看>>
浅谈CSS盒子模型
查看>>
实现iFrame自适应高度,原来很简单!
查看>>
get app id
查看>>
poj 3624 0/1背包暨0/1背包的学习
查看>>
[俗一下]世界500强公司的面试问题与答案提示 [转]
查看>>
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>
SQL Server数据导入导出技术概述与比较
查看>>
format的用法
查看>>
DHCPv6 server port and DHCPv6 client port
查看>>