LVS 测试报告

测试计划

  1. 基本功能测试
  2. 流量压力测试
  3. 响应时间测试
  4. 配置正确性测试
  5. 灾难恢复测试

测试点

  1. 基本功能测试

    • 客户端IP地址正确性
    • RealServer 访问Internet测试(包括Iptables 规则优先级)
  2. 流量压力测试

    • 流量峰值测试

      • 流量达到一定值后的CPU,网卡IO,软中断情况等
    • 连接数峰值测试
      • 连接数达到一定值后,内存,CPU的情况等
  3. 响应时间测试

    • 在增加LVS前后相应时间对比
  4. 配置正确性测试

    • RR算法的预期值(基本功能)
    • 多配置情况下的性能
      • 添加上万条规则后,转发性能是否有影响
  5. 灾难恢复测试

    • 配置导出导入测试

测试环境

  • CPU Intel(R) Xeon(R) CPU E5506 @ 2.13GHz x 8
  • 内存 16G
  • 网卡 negotiated 1000baseT-FD
  • 系统 Ubuntu 12.04
  • 内核 3.5.0-23-generic

实测结果


1. 基本功能测试

客户端地址正确性

访问流程
Web Browser.Zhuhai
113.106.x.x -> LVS(58.215.138.160) -> RS(10.20.165.174) RS Nginx 日志如下
113.106.x.x - - [12/Feb/2015:00:18:48 +0800] "GET / HTTP/1.1" 200 612 "

结论:

验证NAT模式下客户端地址正确性为能够获取真实IP.

RealServer 访问Internet

RS 网络配置如下, gateway 为LVS的内网IP

auto eth0
iface eth0 inet static
address 10.20.165.173
gateway 10.20.165.121
netmask 255.255.255.0

在 LVS 下添加如下 iptables 规则

/sbin/iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

实测:

zhangbo3@rise-vm-173:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=44 time=62.0 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=44 time=62.2 ms

2. 流量压力测试

高流量测试

针对一台LVS 做高流量测试,测试过程中,并发200,20000个请求。

只针对网卡流量来看,内存,磁盘,CPU User time 不统计

每个请求返回7MB大小的包。

压测峰值800Mb

此时的软中断

实测软中断峰值只到0.7%

此时的IN包数

此时的OUT包数

包数IN + OUT 峰值为 100K

高并发小包测试

针对一台LVS 做高并发小包测试,测试过程中,并发80000,4KW个请求。

每个请求返回2K大小的包。

峰值IN 流量 772Mbps 平均大概750Mbps

峰值OUT 流量 773Mbps 平均大概750Mbps

峰值IN 包数 149KPS 平均大概140KPS

峰值OUT 包数 103KPS 平均大概 90KPS

测试过程中软中断 峰值 8.2% 平均大概 7%

测试结果:

分别测试了LVS 在大包高流量情况下和小包高并发情况下的表现。

高流量情况下,可以完全的利用网卡性能,且无丢包和出错情况,千M网卡流量到800Mb,软中断平均在 0.7%。

高并发小包情况下,带宽为750Mbps,包流量为250KPs的情况下(已经接近网卡极限),软中断平均在 7%.

两种情况的测试结果表明,无论是高流量还是高并发,LVS 都能够在网卡的额定值内发挥正常。

以上测试均为对多队列网卡做软中断绑定的表现.


3. 响应时间测试

对比增加LVS前后相应时间变化

10000个并发,10W请求下

LVS 后端增加一台RealServer情况下

Concurrency Level:      10000
Time taken for tests: 13.198 seconds
Time per request: 0.132 [ms]

在未添加LVS 情况下,单独测试Realserver 数据

Concurrency Level:      10000
Time taken for tests: 14.474 seconds
Time per request: 0.145 [ms]

总结:

在增加了LVS前后,响应时间几乎没有影响.


4. 配置正确性测试

RR算法的预期值(基本功能)

分别用两台独立IP的机器对LVS做大量的长连接访问,如下为 LVS 的连接分布情况.

zhangbo3@rise-rs-135:/usr/local/nginx/conf$ sudo ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 58.215.x.x:80 rr
-> 10.20.165.173:80 Masq 1 3332 14797
-> 10.20.165.174:80 Masq 1 3198 14931

总结:

RR算法,同一个Src IP也会定向到同一个LVS

多配置情况下的性能

初始情况下,普通配置时候,单台机器压测数据

Concurrency Level:      10000
Time taken for tests: 5.530 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 49836
Total transferred: 42149180 bytes
HTML transferred: 30600000 bytes
Requests per second: 9040.98 [#/sec] (mean)
Time per request: 1106.074 [ms] (mean)
Time per request: 0.111 [ms] (mean, across all concurrent requests)
Transfer rate: 7442.78 [Kbytes/sec] received

向 LVS 中添加1W个端口映射后的压测数据

Concurrency Level:      10000
Time taken for tests: 5.588 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 49974
Total transferred: 42149870 bytes
HTML transferred: 30600000 bytes
Requests per second: 8948.49 [#/sec] (mean)
Time per request: 1117.506 [ms] (mean)
Time per request: 0.112 [ms] (mean, across all concurrent requests)
Transfer rate: 7366.76 [Kbytes/sec] received

总结:

添加上网条端口映射后,对系统性能无影响.


5. 灾难恢复测试

连接状态测试

keepalived双机备份的情况下,打开LVS的连接状态后,查看同步状态发现没同步ESTABLISHED状态,SYNC_RCV,TIME_WAIT状态均已同步,握手和关闭的状态都会同步,但是ESTABLISHED的状态要发送一定的数据包才同步,默认数据包是3个,每秒50个包的频率.

配置导出导入测试

sudo ipvsadm -Sn
可导出当前配置

[原]一个针对LVS的压力测试报告的更多相关文章

  1. jmeter压力测试报告 - DEMO

    XXX压力测试报告 时间:2015-08-04                                             测试人员:xxx 目录 XXX压力测试报告... 1 一  测试 ...

  2. jmeter压力测试报告

    XXX压力测试报告 时间:2015-08-04                                             测试人员:xxx 目录 XXX压力测试报告... 1 一  测试 ...

  3. 写一个针对IQueryable<T>的扩展方法支持动态排序

    所谓的动态排序是指支持任意字段.任意升序降序的排序.我们希望在客户端按如下格式写: localhost:8000/api/items?sort=titlelocalhost:8000/api/item ...

  4. html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。

    html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素. 各版本html5shiv.js CDN网址:https://ww ...

  5. 一个好用的压力测试工具tsung

    一个好用的压力测试工具tsung          前段时间一直在忙各种事情,快三周没弄过引擎了,今天有点时间,正好之前写的服务器引擎也到了收尾测试的阶段,于是就研究了下怎么测试服务器压力.      ...

  6. HttpDNS的坑以及一个针对安卓不太完善的测试方案

    背景:单位因为域名劫持(具体表象是某个地区的用户ping不通域名或者因为DNS解析的ip跨网段导致访问速度很慢)需要运维经常去定位,于是提出了httpDNS方案. 想法是美好的,现实是残酷的.没引入这 ...

  7. Jmeter5.1.1创建一个http请求的压力测试

    1.首先添加一个线程组,在线程组中,配置压力情况 2.然后在线程组中,添加取样器,添加http请求:配置web服务器协议(http/https).服务器名称或IP.端口号.请求方法.路径等参数 3.然 ...

  8. kbmMW 5.08.01压力测试报告

    上图为客户端测试结果,运行14小时,无异常报告.基于洞主封装的HttpsysTransport,基于ClientQuery完成25万多次数据库访问操作,含查询并对查询结果进行修改及增加新记录,然后提交 ...

  9. TiDB 压力测试报告

    (转载自公众号DBATech) 一.测试环境 1.tidb 集群架构: 测试使用最基本的TiDB架构.即 3个tidb-server节点+ 3个tikv节点 + 3个pd节点. 2.tidb集群的部署 ...

随机推荐

  1. 你必须知道的EF知识和经验

    注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...

  2. ABP教程-打造一个《电话簿项目》-目录-MPA版本-基于ABP1.13版本

    此系列文章会进行不定期的更新,应该会有6章左右. 感兴趣的朋友可以跟着看看,本教程适合已经看过ABP的文档但是又无从下手的小伙伴们. 初衷: 发布系列教程的原因是发现ABP在园子火了很久,但是发现还是 ...

  3. Java8实战分享

    虽然很多人已经使用了JDK8,看到不少代码,貌似大家对于Java语言or SDK的使用看起来还是停留在7甚至6. Java8在流式 or 链式处理,并发 or 并行方面增强了很多,函数式的风格使代码可 ...

  4. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  5. CodeSimth - .Net Framework Data Provider 可能没有安装。解决方法

    今天想使用CodeSimth生成一个sqlite数据库的模板.当添加添加数据库的时候发现: .Net Framework Data Provider 可能没有安装. 下面找到官方的文档说明: SQLi ...

  6. 结巴分词3--基于汉字成词能力的HMM模型识别未登录词

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 算法简介 在 结巴分词2--基于前缀词典及动态规划实现分词 博 ...

  7. 46张PPT讲述JVM体系结构、GC算法和调优

    本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载 ...

  8. Android带加减的edittext

    看了网上这样自带加减的edittext写得好复杂,还有各种监听事件,我觉得没有必有.于是我自己写了一个. 我这个edittext仅仅限制整数,每次加减1. public class TestEditT ...

  9. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  10. 【需求设计1】VIP积分系统无聊YY

    RT,想到什么就写什么呗,这是最简单的方式,顺便给自己做一个记录,反正自己记忆力也不太好.本文是仿陆金所的积分系统,自己YY的一套东西. 首先我想做一个VIP兑换投资卷的功能: 我们先来确定一些我知道 ...