笔记整理squid与varnish综合对比
1.Squid 2.6
编译参数
./configure --prefix=/usr/local/squid26
配置文件
vi /etc/squid/squid.conf
visible_hostname node63.cn
http_port 80 accel vhost vport
cache_peer 192.168.210.111 parent 80 0 no-query originserver name=test1
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_log /var/log/cache.log
2.Squid 3.0
编译参数
./configure --prefix=/usr/local/squid30
配置文件
visible_hostname test2.hiadmin.com
http_port 80 accel vhost vport
cache_peer 192.168.210.111 parent 80 0 no-query originserver name=test1
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_log /var/log/squid30/cache.log
3.Varnish 1.1.2
编译参数
./configure --prefix=/usr/local/varnish
配置文件
backend default {
set backend.host = "192.168.210.111";
set backend.port = "80";
}
运行参数
varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80
4.Nginx 0.6.31
编译参数
./configure --prefix=/usr/local/nginx
配置文件
worker_processes 10;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
5.http_load
运行参数
./http_load -parallel 1000 -seconds 10 urls.txt
urls.txt
http://192.168.210.222/index.html
6.squid 2.7
编译参数
./configure --prefix=/usr/local/squid27
配置文件
visible_hostname test2.hiadmin.com
http_port 80 accel vhost vport
cache_peer 192.168.210.111 parent 80 0 no-query originserver name=test1
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_log /var/log/squid27/cache.log
虽然varnish有着令人吃惊的CPU占用率(超过处理能力时也很令人吃惊)
但是其处理超大量的链接时内存和CPU使用率的暴涨并不令人满意
不过其表现出的在最大负荷时的fetchs/second
确实比squid 2.6要高出大约8%
实验表明.在需要更加稳定的生产环境中,varnish还不能替代老一代的squid 2.6
但是其对squid 3.0已经产生了很明显的挑战.
如果squid 3.0不能比他的上代产品提供更好的性能和稳定性的话
很有可能最佳反向代理的宝座会被varnish夺走
不论如何
这次测试的主题.varnish比squid有着10倍或者20倍的性能
被证实是不可能实现的.
虽然测试数据量充满100M带宽可能影响到测试的准确度.
但是更高的带宽所带来的同时连接数,很可能会撑爆varnish主机的CPU和内存.
结论
1.varnish在高负载下以CPU和内存为代价,比squid 2.6提高8%,但是绝非10倍~20倍.
2.squid 3.0的性能比2.6更低.而非更高.相反,3.0是最不稳定以及性能最差的.
3.squid 2.7的性能比2.6低,但是CPU和内存占用率控制的更好.
1、性能:varnish > squid 2.6 > squid 2.7 > squid 3.0 > squid 3.1
2、squid 2.6和squid 2.7的成绩相差不大,大多数情况是2.6高一些,少数情况2.7高一些。
3、squid 3.0,squid 3.1用c++重写之后目前性能上还比较尴尬。
4、最后选用squid 2.7。它有着和2.6相近的性能,更好的支持http 1.1,也有3.0支持的不少特性。
5、varnish的性能比squid好,不过远没有达到一些文章宣称的10倍,对varnish选择保持关注。原来使用的是squid,可以沿用不少的squid.conf配置,暂时先不换软件了,因为更换之后的配置熟悉以及正式上线的运行不确定性可能会有比较高的成本。

浙公网安备 33010602011771号