`
gelongmei
  • 浏览: 211306 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

谈谈varnish,squid,apache,nginx缓存的对比

 
阅读更多
http://www.cnblogs.com/google4y/archive/2011/09/19/2181251.html

群里总是有人在问cache用什么,有varnish,squid,apache,nginx这几种,到底是我们用什么架构cache。

1、从这些功能上。varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成。

2、要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish。

varnish本身的技术上优势要高于squid,它采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。varnish是不能cache到本地硬盘上的。

还有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存

squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境(这应该与squid早出来有关)。

3、谈谈nginx,nginx是用第三方模块ncache做的缓冲,其性能基本达到varnish,但在架构中nginx一般作为反向(静态文件现在用nginx的很多,并发能支持到2万+)。在静态架构中,如果前端直接面对的是cdn活着前端了4层负载的话,完全用nginx的cache就够了。

4、本人觉得如果是在apache服务上提升性能,做一些本地cache是完全可以的,但如果在系统架构中用apache做cache服务,那就有点牛头不对马尾了。

---------------------------------------

以下是转载了一个同学的测试数据

一,测试环境

1,硬件是奔腾双核,机子三年前买的。系统是archlinux

2,测试varnish和squid的时候,web服务用的apache

3,测试apache的时候,启动了5个进程,不过随着压力的增加,进程会增加的。

4,测试nginx的时候,启动了十个nginx进程,20个php-cgi进程

5,varnish,squid,nginx用的是反向代理的形势,也就是说访问图片的时候,要先透过缓存工具

二,测试

1,varnish

[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=476508 pages/min, 47258114 bytes/sec.
Requests: 158836 susceed, 0 failed.

varnish的缓存效率命中率真的好高,看下图:

varnish
varnish

访问了这么次,没有缓存只有一次,效率真的很高。

2,squid

[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=133794 pages/min, 7475018 bytes/sec.
Requests: 44598 susceed, 0 failed.

从测试效果来说,squid挺让我失望的,在测试前,我心里是这样估计的,缓存最好的是varnish,其次是squid,然后nginx,最后是apache,现在呢,squid是最差的。后来我看了一下log文件,发现正常情况下,缓存和没有缓存的比率不是1:2,如果在高压力下,缓存和没有缓存的比率更小。

3,apache

[root@BlackGhost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=160890 pages/min, 15856005 bytes/sec.
Requests: 53630 susceed, 0 failed.

4,nginx

[root@BlackGhost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:10000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:10000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.

Speed=304053 pages/min, 30121517 bytes/sec.
Requests: 101351 susceed, 0 failed.

从上面的测试结果我们可以发现,varnish > nginx > apache > squid,我想这个结果,根大家预期的结果有点出入,因为squid做老牌文件缓存工具怎么会这么差呢,squid的命中率低,我在网上查了一下,很多人都是这样的,这个可能根个人配置有关系,也许真正的高手,才能让squid发挥最大功力。
分享到:
评论

相关推荐

    在varnish、squid、apache、nginx中选出一个更好的缓存服务器

    在varnish、squid、apache和nginx这四个选项中,每种都有其独特的特性和适用场景。 首先,Varnish和Squid是专门设计为缓存服务器的。Varnish以其高效的“Visual Page Cache”技术著称,它优化了内存管理,避免了...

    基于LVS负载均衡的高性能Web站点设计与实现

    例如,相比Squid,Varnish在高并发时可能消耗更多资源,且缓存数据在服务重启时会全部丢失,需要重新预热。尽管如此,Varnish的高速缓存技术和便捷的管理工具使其成为许多大型网站的选择。 通过上述部署和配置,...

    apache集群范例

    更高级的解决方案如Varnish或 Squid可以作为反向代理,进一步提高缓存效率。 7. **日志管理和分析**:使用logrotate管理日志文件大小,使用工具如Logstash、Elasticsearch和Kibana (ELK stack) 进行日志收集和分析...

    高性能高并发服务器架构.pdf

    例如,使用Squid或Varnish作为反向代理,结合Apache的deflate模块,可以实现高效的静态资源缓存和压缩。 ### 6. **大型网站架构实例分析** - **全球顶级网站架构**:通过对YouTube、Technorati、Myspace、eBay等...

    大型网站技术架构分析(余浩东).pdf

    在前端页面缓存方面,可以采用具备缓存功能的HTTP反向代理服务器(如Varnish、Squid、Ncache、AiCache等)作为前端页面缓存器。页面片段缓存技术,如ESI(Edge Side Includes),可以用于缓存页面的特定部分,但需要...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    2.1.3 Varnish与Squid的对比 2.2 开始安装Varnish 2.2.1 安装前的准备 2.2.2 获取Varnish软件 2.2.3 安装pcre 2.2.4 安装Varnish 2.3 配置Varnish 2.3.1 VCL使用说明 2.3.2 配置一个简单的Varnish...

    tengine 淘宝web服务器

    同时,Tengine还支持与Squid、Varnish等缓存服务的集成,提供更高级别的缓存策略。 6. **模块扩展** Tengine提供了一系列额外的模块,如动态脚本语言支持(如Lua、Perl),日志统计分析模块,Web管理界面,以及...

    运维142问不看一定后悔

    35. **Squid、Varnish、Nginx对比**:Squid主要用于缓存,Varnish专注静态内容加速,Nginx多功能,兼顾反向代理和负载均衡。 36. **nginx处理HTTP请求流程**:接收请求、解析请求、查找匹配的location、处理请求、...

    高性能高并发服务器架构

    同时,这些服务器可以与开源缓存系统如Varnish或Squid配合,提高静态内容的访问速度。对于动态内容处理,开源脚本语言PHP、Python、Java等则扮演着重要角色。 在谈论大型高负载网站服务器的优化心得时,通常需要...

    大型网站技术架构分析

    前端页面缓存可以通过使用具备缓存功能的HTTP反向代理服务器实现,如Varnish、Squid、Ncache和AiCache等。页面片段缓存技术如ESI(Edge Side Includes),则需要服务器端的支持。ESI允许服务器将一个Web页面分解为多...

    2021最新版运维面试题.pdf

    nginx是异步事件驱动的,适合高并发场景,而apache是多进程模型,适合处理静态文件,且在高并发下性能不如nginx。 13. Tomcat的配置与优化: Tomcat是常用的Java web服务器,具有多个端口,包括默认的HTTP端口8080...

    电商集群架构设计方案-1.docx

    - Nginx 是一款轻量级的 Web 服务器,相较于 Apache 具有更低的内存占用和更好的并发处理能力。它通过反向代理机制,将 PHP 请求转发给 FastCGI 进程进行处理,然后将结果返回给客户端。 3. **Varnish** - ...

    精通Linux网络服务器配置·管理·检测·应用

    - 使用Squid或Varnish搭建缓存代理服务器。 - 提高访问速度,减轻源站服务器负担。 通过以上四个方面的详细介绍,我们可以看到,在Linux网络服务器的配置、管理、检测和应用方面有着非常丰富的技术细节和实践操作...

    CDN技术详解

    - **其他工具**:如Varnish、Squid等,也可以用作缓存加速。 #### 六、未来发展趋势 1. **边缘计算**:随着5G等高速网络技术的发展,边缘计算成为CDN领域的一个重要趋势。通过在更靠近用户的边缘节点上部署计算...

    CentOS 8 正式发布

    - Squid升级至4.4,同时添加了Varnish Cache 6.0作为代理缓存服务器。 7. **桌面环境**: - GNOME Shell升级至3.28,包括GNOME Boxes新功能、新屏幕键盘、扩展设备支持(如Thunderbolt 3接口)以及GNOME软件、...

Global site tag (gtag.js) - Google Analytics