在这里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(续)之深入测试的更多相关文章

  1. 一步一步配置NLB

    废话不说,配置NLB需要准备以下环境: 1. 至少两个服务器,我的是windows server 2008 R2; 我的两个服务器名分别为NLB3和NLB2,其中NLB3是主,为什么呢?后面会谈到,在 ...

  2. 轻松三步教你配置Oracle—windows环境

    最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...

  3. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  4. (原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂

    (原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂 1. 在官网https://struts.apache.org下载Struts2,建议下载2.3系列版本.从图中可以看出 ...

  5. xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010161493/article/details/77658599   目录(?)[+]   之前 ...

  6. 一步一步搭建11gR2 rac+dg之DG 机器配置(七)【转】

    DG 机器配置 转自: 一步一步搭建11gR2 rac+dg之DG 机器配置(七)-lhrbest-ITPUB博客http://blog.itpub.net/26736162/viewspace-12 ...

  7. Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)

    在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(read ...

  8. 3、带你一步一步学习ASP.NET Core中的配置之Configuration

    如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...

  9. 使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑详细配置完成】

    PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好久都没成功,有些写的不够详细,有些只有写一半,走了不少弯弯绕绕,踩了不少的坑,此文将正确配置成功的步骤 ...

  10. 大流量网站性能优化:一步一步打造一个适合自己的BigRender插件

    BigRender 当一个网站越来越庞大,加载速度越来越慢的时候,开发者们不得不对其进行优化,谁愿意访问一个需要等待 10 秒,20 秒才能出现的网页呢? 常见的也是相对简单易行的一个优化方案是 图片 ...

随机推荐

  1. MVC--View Razor(1)

    (1)输出单一变量: 当前时间:@DateTime.Now (2)输入HTML:@:这是HTML项 (3)C#与HTML混合,输出多行HTML文本时 <text>html文本..</ ...

  2. DDL和DML的定义和区别

    DML(Data Manipulation Language)数据操纵语言: 适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等. DDL(Data ...

  3. Java注解Annotation学习

    学习注解Annotation的原理,这篇讲的不错:http://blog.csdn.net/lylwo317/article/details/52163304 先自定义一个运行时注解 @Target( ...

  4. jQuery动态加载脚本 $.getScript();

    jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) {       /*          ...

  5. 设置TextView下划线并响应点击事件(SpannableString)

    下面是一个20行的完整Demo代码:基本原理是使用一个SpannableString并设置其ClickableSpan来响应点击事件. TextView useInfo = (TextView) fi ...

  6. gradle资料

    <Gradle用户教程>中文版 · GitBookhttps://www.gitbook.com/book/yeetrack/-gradle-user-guide-chinese/deta ...

  7. tomcat字符,文档,数据库配置

    修改tomcat目录下conf目录下的server.xml tomcat容器的解码配置 URIEncoding="UTF-8" <Connector port="8 ...

  8. php内存处理须知【转】

    04 Mar 11 深入理解PHP内存管理之谁动了我的内存 作者: Laruence(   ) 本文地址: http://www.laruence.com/2011/03/04/1894.html 转 ...

  9. php学习注意点

    1 多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用的功能,如果你仔细阅读手册,你会经常发 ...

  10. 基因组组装工具之 SOAPdenovo 使用方法

    SOAPdenovo是一个新颖的适用于组装短reads的方法,能组装出类似人类基因组大小的de novo草图. 该软件特地设计用来组装Illumina GA short reads,新的版本减少了在图 ...