IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Varnish VS Nginx测试报告

龙浩的blog 2011-10-17 22:40:15 累计浏览 4,703 次
本机暂存

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;
}

    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故障了,需要有备份服务器。
  • 同分类推荐文章

    1. Vibe新开源项目 - Vaala AI Gateway (2026-05-17 02:10:19)
    2. SmartPerfetto 架构文章 Q&A:8 个深度技术问答 (2026-04-10 11:00:00)
    3. 让 AI 把我的 PHP 博客重写成 Go (2026-03-27 18:33:54)

    查看更多 后端 文章 →

    建议继续学习

    1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 106,964)
    2. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,822)
    3. 记录一个软中断问题 (累计阅读 16,885)
    4. 解析nginx负载均衡 (累计阅读 16,503)
    5. Linux 性能监控、测试、优化工具 (累计阅读 12,942)
    6. server日志的路径分析 (累计阅读 11,181)
    7. Nginx模块开发入门 (累计阅读 11,102)
    8. Facebook 网站架构 (累计阅读 11,060)
    9. 检查nginx配置,重载配置以及重启的方法 (累计阅读 10,782)
    10. Cacti 添加 Nginx 监控 (累计阅读 10,521)