varnish(varnish是什么意思啊)

2023-12-17 05:15:43 首页 > 游戏大全

嗨!今天我要给大家介绍一个非常厉害的软件,叫做Varnish。它是一款高性能的反向代理服务器和http加速器,而且还是开源的哦。相比于传统的Squid,Varnish有很多优点,比如速度更快、管理更方便等等。

Varnish的作者是Poul-Henning Kamp,他可是FreeBSD的内核开发者之一呢。Varnish采用了全新的软件体系架构,并且和现在的硬件非常配合,真是无比的高级。

我们先来说说存储媒介。在1975年,储存媒介只有两种,分别是内存和硬盘。但是现在计算机系统的内存不仅仅包括主存,还有CPU内的L1、L2,甚至还有L3快取。而硬盘上也有自己的快取装置。所以传统的Squid自己处理物件替换的架构可不知道这些情况,无法达到最优化。但是操作系统是知道的,所以这部分的工作应该交给操作系统来处理,所以Varnish的设计就是这么聪明。

不知道大家有没有听说过挪威最大的在线报纸VerdensGang,他们就使用了Varnish来取代原来的12台Squid,结果居然性能比以前还好!这真是Varnish最成功的应用案例。

那现在我们来看看Varnish具体有什么功能吧。首先,它是基于内存进行缓存的,这意味着重启后数据就会消失,但是缓存效果超级好。而且你可以根据需要设置缓存时间,可以是0到60秒之间的任意一段时间。而且在32位机器上,缓存文件的大小最大可以达到2G。而且Varnish还有很多厉害的管理功能,比如top、stat、admin、list等等。还可以通过利用二叉堆来管理缓存文件,可以达到积极删除的目的。

接下来,我们来和Squid比较一下。首先是稳定性,Varnish的稳定性非常高,相同负荷工作下,Squid服务器发生故障的几率要高于Varnish,还需要经常重启。然后是访问速度,Varnish用了一种叫做“VisualPageCache”的技术,可以直接从内存中读取所有缓存数据,而Squid是从硬盘读取,所以Varnish在访问速度上会更快。而且Varnish可以支持更多的并发连接,因为它的TCP连接释放要比Squid快。而且Varnish还可以通过管理端口,使用正则表达式来批量清除部分缓存,这可是Squid办不到的哦!而且Squid是单进程使用单核CPU,但是Varnish通过多进程来处理请求,所以可以合理地使用所有核来处理相应的请求。

当然,和Squid相比,Varnish也有一些缺点。比如,一旦Varnish进程挂起、崩溃或者重启,缓存数据就会完全从内存中释放出来,这时候所有的请求都会被发送到后端服务器,对于高并发情况下的后端服务器来说,压力可是非常大的。还有,如果我们在Varnish中通过负载均衡进行请求,每次都向不同的Varnish服务器发送请求,那么这些服务器都会把请求发到后端,这就会造成Varnish缓存资源的浪费,也会导致性能下降。

所以,总结一下,在访问量非常大的情况下,我推荐使用Varnish的内存缓存方式启动,并且后面再跟上几台Squid服务器。这样即能保证Varnish的高性能,又能减轻后端服务器的压力。

好啦,就先给大家介绍这么多关于Varnish的信息,希望对大家有帮助!如果有什么问题,尽管问我哦。谢谢大家!

最近发表
标签列表
最新留言