最近一直忙着做项目重构,老系统的架构层级太多(3层nginx+1层squid,还不算中间的lvs等),优化系统架构也是工作之一。之前老系统用的前端页面缓存是squid,这次优化运维同事给出的建议是使用varnish来替代squid,所以先简单的了解一下varnish。
一、varnish简介
Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一。Varnish采用全新的软件体系机构,和现在的硬件体系配合紧密。在1975年时,储存媒介只有两种:内存与硬盘。而现在计算机系统的内存除了主存外,还包括CPU内的L1、L2,有的还包括L3快取,硬盘上也有自己的快取装置,因此Squid Cache自行处理数据替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部分工作应该交给操作系统处理,这就是 Varnish Cache设计架构。
挪威最大的在线报纸 Verdens Gang(vg.no)使用3台Varnish代替了原来的12台Squid,性能比以前更好,这是Varnish最成功的应用案例。目前,Varnish可以在FreeBSD6.0/7.0、Solaris和 Linux 2.6内核上运行。
二、varnish结构和特点
Varnish是一个轻量级的Cache和反向代理软件。先进的设计理念和成熟的设计框架是Varnish的主要特点。现在的Varnish总共代码量不大,虽然功能在不断改进,但是还需要继续丰富和加强。下面是Varnish的一些特点。
1、基于内存进行缓存,重启后数据将消失。
2、利用虚拟内存方式,I/O性能好。
3、支持设置0~60秒的精确缓存时间。
4、VCL配置管理比较灵活。
5、32位机器上缓存文件大小为最大2GB。
6、具有强大的管理功能,例如top、stat、admin、list等。
7、状态机设计巧妙,结构清晰。
8、利用二叉堆管理缓存文件,可达到积极删除目的。
三、varnish与squid对比
Squid也是一个高性能的代理缓存服务器,它和Varnish相比较有诸多的异同点
相同点:
1、都是一个反向代理服务器。
2、都是开源软件。
不同点,Varnish的优点:
1、Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。
2、Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而Squid是从硬盘读取缓存数据,因此Varnish在访问速度方面会更快。
3、Varnish可以支持更多的并发连接。因为Varnish的TCP连接释放要比Squid快,所以在高并发连接情况下可以支持更多的TCP连接。
4、Varnish可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid做不到。
当然与Squid相比,Varnish也有缺点。
1、Varnish在高并发状态下CPU、I/O和内存等资源开销都高于Squid。
2、Varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力。
相关推荐
│ 第43节:Varnish简介、安装和基本使用.avi │ 第44节:VCL基本语法和使用,负载均衡.avi │ 第45节:VCL实现健康检查、ACL访问控制.avi │ 第46节:Grace模式和Saint模式.avi │ 第47节:VCL常用的函数和Http头....
主要介绍了centos 7.5 部署varnish缓存服务器功能,文中给大家介绍了varnish的简介和主要特征,需要的朋友可以参考下
2.3.3 Varnish对应多台Web服务器的配置实例 2.4 运行Varnish 2.4.1 varnishd指令 2.4.2 配置Varnish运行脚本 2.4.3 管理Varnish运行日志 2.5 管理Varnish 2.5.1 查看Varnish进程 2.5.2 查看Varnish...
如果您需要HTTP缓存的简介,我强烈建议您阅读。 赞助 开发是在我的业余时间进行的,而且也在工作时间进行。 谢谢 ! 如果您正在寻找其他集成(缓存驱动程序),请随时或。 支持的缓存驱动程序 CDN(CDN / SaaS) ...
FOSHttpCache, 将你的PHP应用程序与你的HTTP缓存代理集成 FOSHttpCache 简介这个库集成了你的PHP应用程序和HTTP缓存代理,如 varnish 。 使用此库从应用程序向缓存代理发送无效请求,并针对 varnish 设置测试缓存和...
《高性能网站构建实战》内容简介:目前,越来越多的网站采用Linux操作系统来提供各种服务,包括搭建Web服务器、文件存储、数据库等。人们对Linux服务器的可靠性、负载能力和计算能力也越来越关注。, 《高性能网站...
《决战Nginx系统卷:高性能Web服务器详解与运维》 的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿...
《决战Nginx系统卷:高性能Web服务器详解与运维》 的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿...
Nginx的学分 反向代理缓存 项目简介Souin是适用于每种反向代理的新缓存系统。 无论是Apache,Nginx还是Traefik,它将被放置在您当前的反向代理之上。 正如它用go编写的那样,它可以部署在任何服务器上,而且由于...