varnish与squid的比较
生产环境中尝试使用varnish替代squid的主要原因:
1. squid不支持多核cpu, 生产环境中大多使用Dell R610系列,这种类型机器配置为2个4核双线程cpu, 操作系统识别为16个,对squid来说,只能利用到一个逻辑cpu, 其它15个逻辑cpu相当于一直浪费。
2. squid无法批量清除缓存
3. squid3.0目前还无法支持http 1.1, 这对一些管理调整(如gzip压缩,cache-control)带来不必要的麻烦
4. 目前我还未找到squid的grace模式(指源站不可到达时,继续使用过期缓存为用户提供服务),而varnish是完全支持的。
5. 经过生产环境数个月反复测试,同样访问量情况下,varnish消耗的更少,也没有出现过崩溃情况,而squid因为不支持多核,导致Dell R610机器负载往往超过4,但使用varnish后,机器负载从来没超过1.5
经过反复测试,我们已经开始在日独立IP百万级站点中使用varnish替换squid了。
但这个过程中,充满太多未知情况,目前我们所遇到的关键问题下:
1. 高流量情况下iptables丢包
ip_conntrack: table full, dropping packet.
按网上常规方法,只修改/etc/sysctl.conf是无效的
需要以下两步,方可解决:
/boot/grub/grub.conf kernel行中增加参数
ip_conntrack.hashsize=524288
/etc/sysctl.conf中增加
net.ipv4.netfilter.ip_conntrack_max = 2097152
注意,上面的操作需要重启机器
2. 登录shell ulimit的默认值
/etc/security/limits.conf中加入
* soft nofile 655360
* hard nofile 655360
默认的文件描述符限制为1024, 太小,即使调整成65536,对高负载机器也可能不够,故设置为655360,但也要注意,这个值不能设置过大,否则会导致shell无法登录。
修改/etc/security/limits.conf后,只对登录shell有效。对开机运行的程序,一定要注意这个问题(在启动前设置ulimit)
shell级的资源限制来自于/etc/security/limits.conf,那么系统级的资源限制可在哪里修改?
3. squid换为varnish后流量增加的解决方案:
/etc/security/limits.conf中加入
* soft memlock 1048576
* soft memlock 1048576
或执行 ulimit -HSl 1048576
默认的memlock 只有32K,对varnish来说,太小太小。varnish使用内存块保存日志,故这个值需要调大一些。
上面的值将其调整为1G,即可解决varnish流量高于squid的问题
4. varnish运行中频繁出现503错误,400错误
出现503错误这是因为varnish对后端服务器响应header有限制,默认长度是2048,可将其调大一些
-p http_resp_hdr_len=8192
再重启即可解决503错误。
出现400错误是因为varnish认为客户端请求header行数及长度过大,其默认最大接受的请求header行数为64,最大长度(所有请求header行长度之和)为2048,解决这个问题比较简单,在varnish启动参数中加入:
-p http_max_hdr=256
-p http_req_hdr_len=8192
再重启varnish, 即可解决其400错误。
转载于:https://blog.51cto.com/lucifer119/1435810
varnish与squid的比较相关推荐
- Varnish 和 Squid比较到底强多少
对于坊间流传的: 1.varnish的性能比squid高10~20倍 2.squid 3.0的性能比2.6有提高 本次测试将会揭示结果, 是否varnish的架构真的能提升那么多的性能 是否squid ...
- 谈谈varnish、squid、apache、nginx缓存的对比
1.Squid,很古老的反向代理软件,拥有传统代理.身份验证.流量管理等高级功能,但是配置太复杂.它算是目前互联网应用得最多的反向缓存代理服务器,工作于各大古老的cdn上. 2.Varnish是新兴的 ...
- varnish与squid比较
1.Varnish概述及工作流程 1.1 Varnish概述 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器 Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存 Sq ...
- 使用Varnish代替Squid做网站缓存加速器的详细解决方案
我曾经写过一篇文章──<初步试用Squid的替代产品──Varnish Cache网站加速器>,但当时仅仅是用着玩,没做深入研究. 今天写的这篇关于Varnish的文章,已经是一篇可以完全 ...
- proxyServer squid / varnish / apache traffic server / ATS
apache traffic server http://gwan.com/benchmark/index.html http://zymlinux.net/ 赵永明(阿里) / 旺旺群:7543 ...
- 提高性能的Varnish缓存方案
转载 http://www.s135.com/post/313/ arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用 ...
- varnish缓存的配置优化(redhat5.4)
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. 但与老牌的squid相比,各有各的优 ...
- varnish详解3
1.Varnish简介 Varnish是一款高性能的反向代理服务器和HTTP加速器,它的开发者Poul-Henning Kamp是FreeBSD的核心开发成员. 2.Varnish特点 基于内存进行缓 ...
- 《高性能Linux服务器构建实战》——2.1节初识Varnish
2.1 初识Varnish 2.1.1 Varnish概述 Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的开发者Poul-Henning Kamp是FreeBSD核心的开发人 ...
最新文章
- android 线性布局位置,android – 如何在线性布局中更改视图的位置.
- mac u盘文件过大 拷贝不进去_使用mac时文件太大无法拷贝怎么办
- 面向对象的设计模式及魔术函数
- TCP/IP协议族之应用层协议(FTP、TFTP)
- C++ 学习之旅(5)——设置Setup文件目录
- 服务器多核性能排行,服务器内存多核性能
- idea集成Activiti Designer插件
- mysql数据库不小心删除文件_mysql数据库被删除了,怎么恢復吗
- 排序算法python实现_合并排序算法– Java,C和Python实现
- 群晖NAS系统DSM入门
- 卫星影像的RPC参数
- WORD2010文档里面突然不能输入汉字的解决办法
- python二进制常量_Python SciPy 常数(Constants)
- 4个女人要过一座桥的问题
- iphone 程购买实现
- 商家们,不要得罪天猫和京东中的任何一个
- HDU 6194 后缀自动机
- 【聚类算法】基于matlab划分法k-means聚类算法【含Matlab源码 1941期】
- CodeM 第一题 下单
- “指针”和“指针变量”的区别
热门文章
- mysql评论与回复一起查_mysql 查询所有评论以及回复
- kernel php segfault,php不停报错segfault,求高手帮忙
- python的logo图_Turtle绘画Python-logo
- 关于 GraphQL 快速入门
- 杭州intel服务器维护,服务器应该怎么去维护?
- linux内核长期支持版本,Linux Kernel 3.12长期支持分支迎来第63个维护版本
- jQuery的创建对象,动态添加、修改、删除属性和方法
- android 速度传感器,Android实战技巧之四十二:加速度传感器
- 20200114:(leetcode)两数相加
- hystrix 源码 线程池隔离_“池”的思想:从java线程池到数据库连接池的源码解读(1)...