一步一步配置NLB(续)之深入测试
在这里http://blog.csdn.net/haoxiaozigang1/article/details/12198679跟大家分享了NLB配置的过程,下面写一些对NLB不同情况的下测试的结果:
首先,准备一些工具:
1. Fiddler2,用来查看请求的分配情况,当然这个工具还有其他强大的功能,今天,我们只用很小的功能;
2.Web Performance Test1.0,用来发送并发请求,给服务器施加压力,可以到这里http://www.cnblogs.com/smark/archive/2013/05/16/3081606.html下载。
其次呢,我们了解一下NLB里面端口规则的设置:
a.右键群集-->群集属性
b. 打开端口规则属性对话框
下面是对各个属性的解释,:
群集IP地址:指定规则所针对的群集IP
端口范围:默认为所有,可以指定群集监听的端口范围(如从80到80,表示只针对web服务实现负载均衡)
协议:指定群集所服务的协议类型
筛选模式:
a:多个主机:
I 无相似性(None): 客户端的服务请求会平均分配到群集内的每一部服务器。假设NLB群集内有2部服务器。当接到客户端的请求时,NLB会将第1个请求交由第1部服务器来处理,第2个请求交由第2部服务器来处理,第3个请求交由第1部服务器来处理,…依此类推。因为所有客户端联机会平均分配到每一部服务器,因此可以达到最佳的负载平衡。如果需要执行交易处理,为了能够共享session状态,则必须将session状态集中储存在state或database server中,这种方式适用于大部分的应用程序。
II 单一相似性(Single):客户机的服务请求会固定分配到群集内的某一部服务器。当接到客户机的请求时,NLB会根据客户机 的IP来决定交由哪一部服务器来处理,也就是一部服务器只会处理来自某些IP的请求。因为一个IP的服务请求只会固定由一个服务器来处理,因此没有session状态共享的问题,但可能会导致负载不平衡。这种方式适用于联机需支持 SSL 集多重联机的通讯协议 ( 例如FTP与PPTP等)
III 网络(类C):根据IP的Class C屏蔽来决定交由哪一部服务器来处理,也就是一部服务器只会处理来自某些网段C的请求。这种方式可确保使用多重 Proxy 的客户端能导向到相同的服务器。
b.单一主机:若选择此选项,该端口范围内的所有请求都将由一台主机来进行处理,此选项将配合后面的主机优先级来进行主机判定。
c. 禁用此端口范围:一般这个选项会在端口例外中进行设置,也就是说,当我们指定了一个比较大的范围端口时,其中有一个或几个端口我们不需要 客户端用户访问到,这时我们将利用这个规则来进行设定,防止用户访问此端口请求。
其中比较关键的参数是筛选模式,可能看了后有些费解,尤其是第三类网络(类C),我是真心不知道是啥意思,有懂的朋友跟我分享一下。
今天,我们只关注前两个,None和Single,这两个好理解,None是服务器会把请求平均分配到每个节点节点上,拿上一节的例子说的话,就是NLB2和NLB3都会收到;
Single呢,服务器会把请求发到一个节点上,要么这个节点down掉或超负荷,会转移到其他节点,不然会集中在一个节点上处理。
好,现在准备工作做完了,那就开始我们的负载测试旅程:
场景一:
多个主机,单一相似性,负载量相等,即各50%。
预测结果:同一个节点处理所有请求。
1. 设置每个节点的负载量为相等。
a.右键NLB2节点-->主机属性-->端口规则-->负载量选equal.
2.打开Fiddler2,清空左侧的Session记录,为了方便查看结果,最好关闭所有的浏览器,因为Fiddler2会捕捉到所有的http请求。
3.配置Web Performance Test1.0,关于这个工具的使用,大家可以在下载网站了解, 我的配置如下,
4.点击“测试”;
5.查看Fiddler2,如下:
6.分析调用结果,从上图我们看到,请求都是一样,我们怎么知道是NLB2还是NLB3处理的呢?
从上一节,我们可以看到他们的返回值不一样,所以我们利用这点去过滤他们,这时需要使用到Fiddler的查找功能,点击“Find”按钮在工具栏上,搜索NLB2,会看到都是NLB2返回,这是NLB自动将所有请求导向到同一个服务器去处理,和预测结果一致:
场景二:
多个主机,无相似性,负载量相等。
预测结果:节点平均处理请求。
1. 设置群集的相似性为无。
a.右键群集-->群集属性,然后切换到端口规则项
b.点“Edit...”-->相似性(Affinity)选无(None),OK.
c.设置每个节点的负载量为50%.
d.清空Fiddler2的Session列表,点击Web Performance Test1.0 的测试按钮,完成后,在Fiddler2里面查找NLB2,结果如下:
我们看到请求的分配比较均匀,和预测结果吻合。
场景三:
多个主机,无相似性,NLB3节点负载量30%,NLB2节点70%。
预测结果:70%请求由NLB2处理。
1. 修改NLB2为70%;
2.修改NLB3的负载量为30%,操作同上。
3.清空Fiddler2的Session列表,执行压力测试,完后,在Fiddler2里面找NLB3,结果如下:
我们看到大部分请求被NLB2处理,和预测结果一致。
场景四:
单个主机
预测结果:所有请求由优先级高的NLB3节点处理。
1.设置群集的端口规则的过滤模式为单主机。
2.执行测试,完后,再Fiddler2里面查找NLB3,结果如下:
我们看到所有请求被NLB3处理,和预测的结果一致。
一步一步配置NLB(续)之深入测试的更多相关文章
- 一步一步配置NLB
废话不说,配置NLB需要准备以下环境: 1. 至少两个服务器,我的是windows server 2008 R2; 我的两个服务器名分别为NLB3和NLB2,其中NLB3是主,为什么呢?后面会谈到,在 ...
- 轻松三步教你配置Oracle—windows环境
最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...
- 一步一步教你如何在linux下配置apache+tomcat(转)
一步一步教你如何在linux下配置apache+tomcat 一.安装前准备. 1. 所有组件都安装到/usr/local/e789目录下 2. 解压缩命令:tar —vxzf 文件名(. ...
- (原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂
(原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂 1. 在官网https://struts.apache.org下载Struts2,建议下载2.3系列版本.从图中可以看出 ...
- xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010161493/article/details/77658599 目录(?)[+] 之前 ...
- 一步一步搭建11gR2 rac+dg之DG 机器配置(七)【转】
DG 机器配置 转自: 一步一步搭建11gR2 rac+dg之DG 机器配置(七)-lhrbest-ITPUB博客http://blog.itpub.net/26736162/viewspace-12 ...
- Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)
在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(read ...
- 3、带你一步一步学习ASP.NET Core中的配置之Configuration
如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...
- 使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑详细配置完成】
PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好久都没成功,有些写的不够详细,有些只有写一半,走了不少弯弯绕绕,踩了不少的坑,此文将正确配置成功的步骤 ...
- 大流量网站性能优化:一步一步打造一个适合自己的BigRender插件
BigRender 当一个网站越来越庞大,加载速度越来越慢的时候,开发者们不得不对其进行优化,谁愿意访问一个需要等待 10 秒,20 秒才能出现的网页呢? 常见的也是相对简单易行的一个优化方案是 图片 ...
随机推荐
- eclipse格式化代码
在Eclipse下安装.使用Jalopy方法 http://hi.baidu.com/zdz8207/item/c2972e172ad3efdcbf9042d6 http://www.cnblogs. ...
- mysql 查询开销 sending data
1.执行一个查询,发现时间开销都在sending data,为什么?2.sending data容易误导,让人以为只是发送数据给客户端,实际上sending data包含两个过程:读取数据并处理,发送 ...
- maven pom.xml解释 (转)
maven3实战之maven使用入门(编写POM) ---------- maven项目的核心是pom.xml.POM(Project Object Model,项目对象模型)定义了项目的基本信息,用 ...
- junit4 javaee 5.0 jpa SSH 单元测试问题集锦
本篇文章基于已经实现了ssh集成的demo.项目.具体的ssh项目怎么配置,请参考本文最后 spring环境下的JUnit4测试 1,下载所需jar包: spring-test-3.2.0.RELEA ...
- Bootstrap段落(正文文本)
一.Bootstrap段落特点 段落是排版中另一个重要元素之一.在Bootstrap中为文本设置了一个全局的文本样式(这里所说的文本是指正文文本): 1.全局文本字号为14px(font-size). ...
- Mybatis调用Mysql存储过程
在我的后台系统中,今天需要使用到存储过程.存储过程还真没写过,今天就写了个存储过程.使用在后台中. 其实这个接口功能 是涉及几张表的修改,删除,新增的.就写个一个存储过程. 存储过程: ), ),) ...
- 基于dubbo源码包通过Maven构建dubbo的详细步骤
通过Maven构建dubbo 既然可以下载得到源码以及发布包,那么为什么要去构建dubbo呢?,我们先来看下dubbo的主要模块: 我们不仅要使用dubbo的核心框架,还要使用它的一些服务,比如管理控 ...
- Spring的线程池ThreadPoolTaskExecutor使用案例
1.Sping配置文件 <!-- 线程池配置 --> <bean id="threadPool" class="org.springframework. ...
- Hbase之更新单条数据
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...
- angularJS常见问题汇总
问题描述 解决方案 当你简单的动态给页面插入html时, 此时html带有angular的语法不会执行的. var uploadInfo = '上传成功!<a ng-click="qu ...