在这里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. FLASH CC 2015 CANVAS (四)制作响应式设计(自适应)的项目

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误(如果发现我会更新文章)! 正式教程会在后续开始更新 相信你在看了(第二节)(第三节)之后已经能够满足绝大多数的互动需求了.那么也 ...

  2. mysql 2003 10038 连接不上的解决

    网上写的很复杂,其实解决办法是 你在右键管理员权限下运行 mysqld. 忘记这个了,害的又找了近1个小时的时间找问题.

  3. Generator 函数的含义与用法

    Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行). function* gen(x){ var y = yield x + 2; return y; } ...

  4. 【夯实Mysql基础】记一次mysql语句的优化过程!

      1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同 ...

  5. WebKit渲染基础(转载 学习中。。。)

    概述 WebKit是一个渲染引擎,而不是一个浏览器,它专注于网页内容展示,其中渲染是其中核心的部分之一.本章着重于对渲染部分的基础进行一定程度的了解和认识,主要理解基于DOM树来介绍Render树和R ...

  6. Android lint 删除无用图片文件和配置文件

    Android lint  删除无用.冗余的  配置文件和 图片资源    转载请注明  http://blog.csdn.net/aaawqqq?viewmode=contents Android项 ...

  7. linux 静态库、共享库

    http://blog.chinaunix.net/uid-26833883-id-3219335.html http://blog.chinaunix.net/uid-23069658-id-314 ...

  8. Oracle在Linux下使用异步IO(aio)配置

    1.首先用root用户安装以下必要的rpm包 # rpm -Uvh libaio-0.3.106-3.2.x86_64.rpm# rpm -Uvh libaio-devel-0.3.106-3.2.x ...

  9. C# Socket编程(2)识别网络主机

    通过前面的笔记我们可以知道:一个客户端要想发起一次通信,先决条件就是需要知道运行在服务端程序的主机的IP地址是多少,端口号是多少.然后我们才能够通过这个地址向服务器特定的应用程序发送信息.对于网络上的 ...

  10. android中的通信机制总结

      第一种:使用handler来进行通信   handler 大家可以把它想象成主线程(UI线程)的一个子线程,它可以给主线程(UI线程)发送数据从而更新主线程(UI线程)的UI与逻辑,handler ...