CDN缓存服务器现状,squid、nginx、trafficserver、ATS性能测试

squid本身是单进程架构,基本上大家的处理方式就是起多实例,所谓的多实例,
就是启动多个squid,通过这样的方式让它可以起到多进程的效果。(心好累)

当然除了squid之外,还有一个比较新的cache,就是varnish。varnish的作者曾经在自己的博客上批评过squid中很多过时的思想
。宣称自己的性能和架构要比squid强大很多。但是作为一个只支持内存的缓存系统(有可以持久化的外围手段),使用的场景是有限的。
目前使用varnish的,都是一些小站,或者说热点很集中,缓存总量不大的业务场景。在前几年,我了解到新浪微博有在用它。
随着nginx的崛起,cache领域里也有了它的身影。nginx的proxy_cache功能就是为cache而设计的
其实有心的话,你去翻开ATS开发团队,其实跟squid是有交集的。很多在squid中不完善的功能,在trafficserver中得到了完善和强化,
比如squid中的COSS文件系统,就是个公认的半成品。而在ATS中COSS的思想被发扬光大,其设计和架构让人叹为观止。
正是由于ATS的出现,很多在技术上有远见的公司和CDN厂商开始对ATS的研究和使用。就目前而言,CDN厂商里网宿和帝联已经将ATS用于
了生产环境。而很多新兴的小CDN服务商或者云服务提供商也纷纷使用了ATS。蓝汛则在调研后放弃了ATS,还是抱着他们的squid不放。
不过近两年,他们开始拿出一部分精力研究nginx。

现在使用nginx的公司,几乎都在使用nginx lua。在WAF领域,nginx lua的出现,在技术实现上来说,完全变成了傻瓜式。
由于lua天生跟c,c++的密切性,使得连ATS都支持了lua模块。所以很多公司的后端服务的架构也随之发生了改变。他们开
始讲纯粹的业务逻辑剥离出来,用nginx lua来实现,放在前端。这样原来必须在cache里面用c或者c++写业务逻辑的苦逼状况得以极大的改善。
所以nginx+ats,nginx+squid的架构开始出现,并得到了广泛过的应用。而阿里现在的架构也是这样的:

在上图中我们可以看到前面的nginx(也即是tengine)充当业务处理和调度,后面的cache(swfit)做缓存。这样的架构,让业务开发变得很容易,而且很高效。nginx+lua可以轻松搞定。

那么问题来了,这样的架构相比较直接用c/c++在cache写业务处理,性能上肯定会降低,那么就需要评估下性能降低的情况,如果太多,那么即使是nginx+lua换来了开发和维护的低成本,可能也是难以接受的。我专门针对这两种架构,进行了性能测试,cache使用的是ATS。

单纯使用ATS:

Nginx+ATS:

通过数据对比我们可以看到,nginx+ats的性能较纯ats,要降低大概5%,这个是完全可以接受的。注意这里的nginx跟ats是放在一台服务上的,如果分开不同的机器,那就得不偿失了,不仅latency增加,机器的数量也随之增加。

http://www.yidianzixun.com/n/0CoksWct?share_count=2

转载于:https://blog.51cto.com/firephoenix/1903106

CDN缓存服务器现状相关推荐

  1. 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    案例: Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入 访问用户:电信宽带用户.移动宽带用户 出现问题:电信用户打开www.abc.com正常,移动用户打 ...

  2. cdn缓存服务器有网站图片,cdn缓存服务器上传图片

    cdn缓存服务器上传图片 内容精选 换一换 图片组件作为一个基本组件,用于展示图片.用户可以通过属性"图片地址",来选择图片. 体验馆提供了各场景下的无服务器构造方案,指导您端到端 ...

  3. 高并发应对:淘宝CDN缓存服务器部署探秘

    转自:http://server.chinabyte.com/6/12663506.shtml "好,时间到,开抢!"坐在电脑前早已等待多时的宋兰(化名)一看时间已到2011年11 ...

  4. cdn缓存服务器有网站图片,CDN缓存服务器图片存储一致性hash算法的理解

    用hash做缓存,假如有三台服务器,1,2,3,有三万张图片,我想将图片平均缓存到我三台服务器上,一个服务器大概一万张,怎么去实现这个办法呢,可以用hash来取余数进行操作,加入我们是以图片的名字作为 ...

  5. 浏览器缓存 HTTP缓存-CDN缓存-localstorage/sessionstorage/cookie

    文章目录 浏览器缓存 面试题 概述 HTTP缓存 -提高二次请求响应速度 HTTP的缓存控制,如何设置缓存策略 CDN缓存 -提高首次请求资源的响应速度 CDN的核心功能 CDN的基本原理 local ...

  6. 缓存服务器设计与实现(六)

    本文讲缓存中的内容管理–文件的删除. 基本原理 缓存系统中的文件,从无到有是被动产生的.初始状态,缓存系统中是空的,请求过来之后,缓存会回源取,然后存在本地.而不像web服务器,文件是通过其他的手段( ...

  7. Varnish搭建cdn缓存

    CDN的全称是Content Delivery Network,即内容奋发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...

  8. 2022/1/30 北京 DNS 域名解析、IP地址 、CDN 分布式缓存服务器、局域网LAN和路由转发

    请求包路由 当我们使用域名访问某一个网站时,实际上就是将请求包(以Http请求为例)通过网络传输给某台服务器,比如访问"www.baidu.com"时: DNS域名解析拿到IP地址 ...

  9. linux cdn服务器,wdcdn系统,CDN缓存系统,CDN加速系统,多节点CDN自架系统,CDN安装配置部署--Linux解决方案,技术支持与培训,服务器架构,性能优化,负载均衡,集群分流...

    WDCDN缓存加速管理系统,CDN软件,CDN管理平台,CDN解决方案 wdCDN是一套基于squid架构开发的CDN缓存加速系统及管理系统,高效,稳定,安全. 可帮助大中小站长或大中小企业低成本,快 ...

最新文章

  1. 4000个“不会数学”的程序员出现大反转!居然能学AI,玩算法,搞逻辑!背后原因首次曝光...
  2. ubuntu 恢复apt_apt-clone:备份已安装的软件包并在新的 Ubuntu 系统上恢复它们
  3. LeetCode 595 Big Countries: SQL的题
  4. 手把手入门神经网络系列(2)_74行代码实现手写数字识别
  5. LiveVideoStackCon 2018 注册通道即将关闭
  6. 如何从云功能调用外部REST API
  7. Python数据分析入门(四)
  8. [linux学习] 字符界面linux安装vmtools
  9. YOLOV3目标检测模型训练实例
  10. 2能不用cuda_洗洁精不用花钱买,自己在家2毛钱能做一大瓶,效果比买的还好!...
  11. java数据链表 有什么用_链表(linked list)这一数据结构具体有哪些实际应用?
  12. java LinkedList(链表)
  13. Epub,Mobi,Azw3电子书格式的区别,Mac上有什么好用的epub阅读器
  14. linux平台生成awr报告,Linux平台生成awr报告
  15. 我读“世界500强面试题”
  16. 评测了10款画流程图软件,这4款最好用!(完全免费)
  17. MaxCompute SQL引用第三方Base64JAR实现编解码
  18. 华为云照片的爬虫程序更新(python3.6)
  19. APM32F103 RTC内部时钟源报警中断例程测试
  20. RFM模型—零售数据实战

热门文章

  1. Python错误:TypeError: string indices must be integers
  2. gevent开发http服务器与tcp服务器(WSGIServer、StreamServer)
  3. Linux系统编程:循环创建N个子线程并顺序输出
  4. 找到bug的根源,问五次为什么
  5. Oracle数据库导入导出 imp/exp备份还原
  6. 如何开启Apache Rewrite功能
  7. intent Filter
  8. 34. Find First and Last Position of Element in Sorted Array
  9. Hibernate(二)——一对多查询
  10. Typescript Mixins(混合)