Varnish VS Nginx测试报告

标签: Linux nginx siege test varnish | 发表时间:2011-10-14 10:24 | 作者:longhao Ben
出处:http://www.longtask.com/blog

     1:配置情况

nginx机器配置:
CPU:     E7500  @ 2.93GHz (双核)
内存:4G
varnish机器配置:
CPU:     E3300  @ 2.50GHz (双核)
内存:2G
测试脚本执行机器配置
CPU:     AMD Phenom(tm) II X4 925 Processor
内存:2G

     2:测试准备工作

2.1:安装siege

使用压力测试工具siege(http://www.joedog.org/index/siege-home) 来验证。可以根据路径来并发重复压力测试。安装方式:
下载:wget ftp://sid.joedog.org/pub/siege/siege-latest.tar.gz
安装:
#./configure
#make && make install

[root@localhost test] siege -c 100 -r 100 -f varnish_url.txt
[root@localhost test] siege -c 100 -r 100 -f nginx_url.txt

参数说明:
-c 100 并发100个用户
-r 100 重复循环100次
-f varnish_url.txt 任务列表:URL列表

2.2:构造URL
构造了536个url测试,其中1个是错误的url。

到测试机器上,

[root@localhost test] cd /data/htdocs/resources/web
[root@localhost test] find . -name "*.jpg" -print > varnish_url.txt

2.3:开启nginx页面缓存方法
开启nginx的缓存图片的方法,在nginx的conf中添加:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
    expires      30d;
    access_log   off;
}
感谢鱼哥 @smallfishxy 指导

    3:运行后测试结果:

3.1.1:nginx开启页面缓存的情况

Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  65.83 secs
Data transferred:             260.83 MB
Response time:                  0.01 secs
Transaction rate:             151.91 trans/sec
Throughput:                     3.96 MB/sec
Concurrency:                    2.06
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            3.03
Shortest transaction:           0.00

3.1.2:nginx不开启页面缓存的情况
Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  63.90 secs
Data transferred:             266.10 MB
Response time:                  0.01 secs
Transaction rate:             156.49 trans/sec
Throughput:                     4.16 MB/sec
Concurrency:                    2.18
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            0.35
Shortest transaction:           0.00

3.1.3:nginx开启页面缓存第二次测试的情况
Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  63.05 secs
Data transferred:             266.10 MB
Response time:                  0.01 secs
Transaction rate:             158.60 trans/sec
Throughput:                     4.22 MB/sec
Concurrency:                    2.06
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            0.34
Shortest transaction:           0.00

3.2.1:varnish清空缓存第一次测试情况
Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  62.87 secs
Data transferred:             266.10 MB
Response time:                  0.01 secs
Transaction rate:             159.06 trans/sec
Throughput:                     4.23 MB/sec
Concurrency:                    1.95
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            0.37
Shortest transaction:           0.00

3.2.2:varnish有缓存测试
Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  61.91 secs
Data transferred:             266.10 MB
Response time:                  0.01 secs
Transaction rate:             161.52 trans/sec
Throughput:                     4.30 MB/sec
Concurrency:                    1.78
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            0.34
Shortest transaction:           0.00

3.2.3:varnish负责均衡性能
Transactions:                  10000 hits
Availability:                 100.00 %
Elapsed time:                  59.75 secs
Data transferred:             266.10 MB
Response time:                  0.01 secs
Transaction rate:             167.36 trans/sec
Throughput:                     4.45 MB/sec
Concurrency:                    1.98
Successful transactions:        9900
Failed transactions:               0
Longest transaction:            3.01
Shortest transaction:           0.00

     4:结论

  • 在varnish机器性能较差的情况下,在高并发情况下,能够跑出比nginx更好的性能。
  • 线上是读取了单台图片服务器,使用varnish能够解决图片服务负责均衡的问题,减少了nginx对内存的存储双份造成浪费的问题。
  • 有varnish负载均衡,单台img服务器故障时能让服务继续。当然varnish故障了,需要有备份服务器。

相关 [varnish vs nginx] 推荐:

Varnish VS Nginx测试报告

- Ben - 龙浩的blog
CPU:     E7500  @ 2.93GHz (双核). CPU:     E3300  @ 2.50GHz (双核). 使用压力测试工具siege(http://www.joedog.org/index/siege-home) 来验证. 可以根据路径来并发重复压力测试. 下载:wget ftp://sid.joedog.org/pub/siege/siege-latest.tar.gz.

自建CDN技术选型: squid varnish nginx

- - 鲁塔弗的博客
CDN的全称是Content Delivery Network,即内容分发网络. 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定. 优化跨ISP网络访问速度,在国内大联通和大电信之间是世界上最远的距离,在国外,中国和其他地区很平行,用cdn可以优化全球响应速度.

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

- - 行业应用 - ITeye博客
群里总是有人在问cache用什么,有varnish,squid,apache,nginx这几种,到底是我们用什么架构cache. varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成. 2、要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish.

使用varnish + nginx + lua搭建网站的降级系统

- - 博学无忧
通常一个网站数据库挂掉后,后果将是非常严重的. 对于一些网站来说,当数据库挂掉后,如果能提供基本的浏览服务,也是不错的. 本文将尝试使用varnish + nginx + lua 搭建网站降级系统来实现整个目标. 降级方案的目标是,当网站出现致命故障时(如出现500错误,不能提供服务),可以把缓存的页面数据展现给用户.

Varnish Cache 3.0.1 RC1 开始测试

- 乌鸦 - cnBeta.COM
Varnish cache,或称Varnish,是一套高效能的反向网站快取服务器(reverse proxy server). Varnish目前被用在挪威最大的报社Verdens Gang上.

varnish常见错误的解决方法

- - 开心平淡对待每一天。热爱生活
这是因为从2.0.6以后,obj.ttl 已经变更为beresp.ttl. 2. beresp.cacheable的含义是什么. 官方的解释:beresp.cacheable. A response is considered cacheable if HTTP status code is 200, 203, 300, 301, 302, 404 or 410 and pass wasn’t called in vcl_recv.

线上服务增加varnish缓存

- - CSDN博客互联网推荐文章
(1)是基于内存缓存,重启后数据将消失. (2)利用虚拟内存方式,io性能好. (3)支持设置0~60秒内的精确缓存时间. (4)VCL配置管理比较灵活. (5)32位机器上缓存文件大小为最大2G. (6)具有强大的管理功能,例如top,stat,admin,list等. (7)状态机设计巧妙,结构清晰.

转 redis vs memcached

- - 数据库 - ITeye博客
传统MySQL+ Memcached架构遇到的问题.   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:.   1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间.

NOSQL数据库大比拼:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase

- - 博客园_Ruby's Louvre
话说,尽管 SQL 数据库一直是我们IT行业中最有用的工具,然而,它们这样在行业中超过15年以上的“转正”终于就要寿终正寝了. 现在,虽然关系型数据库仍然无所不在,但它越来越不能满足我们的需要了. 但是,各种 "NoSQL" 数据库之间的差异比当年众多关系型数据库之间的差异要大许多.