《高性能Linux服务器构建实战》——2.1节初识Varnish

简介: 本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第2.1节初识Varnish,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.1 初识Varnish

2.1.1 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在Linux上的应用。

2.1.2 Varnish的结构与特点
Varnish是一个轻量级的Cache和反向代理软件。先进的设计理念和成熟的设计框架是Varnish的主要特点。现在的Varnish总共代码量不大,虽然功能在不断改进,但是还需要继续丰富和加强。下面是Varnish的一些特点。
基于内存进行缓存,重启后数据将消失。
利用虚拟内存方式,I/O性能好。
支持设置0~60秒的精确缓存时间。
VCL配置管理比较灵活。
32位机器上缓存文件大小为最大2GB。
具有强大的管理功能,例如top、stat、admin、list等。
状态机设计巧妙,结构清晰。
利用二叉堆管理缓存文件,可达到积极删除目的。

2.1.3 Varnish与Squid的对比
说到Varnish,就不能不提Squid。Squid是一个高性能的代理缓存服务器,它和Varnish相比较有诸多的异同点,下面进行分析。
下面是Varnish与Squid之间的相同点。
都是一个反向代理服务器。
都是开源软件。
下面是它们的不同点,也是Varnish的优点。
Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。
Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而Squid是从硬盘读取缓存数据,因此Varnish在访问速度方面会更快。
Varnish可以支持更多的并发连接。因为Varnish的TCP连接释放要比Squid快,所以在高并发连接情况下可以支持更多的TCP连接。
Varnish可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid做不到。
当然,与传统的Squid相比,Varnish也有缺点。
Varnish在高并发状态下CPU、I/O和内存等资源开销都高于Squid。
Varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力。

相关文章
|
15天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
18天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
13天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
37 6
|
1月前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
46 1
|
1月前
|
域名解析 存储 网络协议
Linux中搭建主从DNS服务器
搭建主从DNS架构以提升DNS服务的高可用性、负载均衡和数据冗余。主服务器配置涉及编辑`/etc/named.conf`,设置监听IP和允许查询的范围,并定义主区域及允许的数据传输。从服务器配置需指定为奴隶类型,并指明主服务器的IP。测试表明正反向查询解析均正常。注意配置文件的语法正确性和权限设置。
|
1天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
29 2
|
5天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
11天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1234 8
|
21天前
|
存储 缓存 NoSQL
Redis 服务器指南:高性能内存数据库的完整使用指南
Redis 服务器指南:高性能内存数据库的完整使用指南
|
23天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器