A. 多台服务器如何做网络负载均衡
1:找分区或目录同步软件,某台服务器改动了自动把修改应用到别的服务器,比如红旗的HA。
2:换种建服务器的思路,后台用一台独立的服务器做数据库和文件服务器,用来存放数据库和上传的文件,另外的做负载均衡运行服务器,把不需要变动的网页程序放上面。
B. 怎么测试网络稳定性
可以用ping命令,开始-运行-CMD-输入ping 网址,-t 看看有没有丢包问题,可以持续时间长点,如果没有丢包或很少,说明网络还是稳定的
对网络的稳定性我们可以测试几个指标:
1、MTBF:平均无故障时间间隔,测试方法:以该系统最大带宽的50%~80%的速率传输数据,连续不间断工作,记录系统出故障时间。
2、带宽:稳定的数据传输率。测试方法:同上,逐渐加大数据传输率,测试出最大的稳定带宽。
3、最大并发流数目:TCP或者其他协议的最大支持数,测试方法:采用多客户机多线程方法建立多条链路,记录系统最大在多少个连接的情况下网络传输率下降不明显。
测试说明:由于是一个较长过程的整体表现,因此,多测试几遍,去掉最高与最低的结果,其余结果取平均值。
所谓的稳定性是指网络系统能够提高长期、可靠、满足指标带宽的性能。
长期:网络系统必须在较长的时间内正常工作,不能发生宕机、重启等故障。
可靠:在满负载的情况下工作正常,不能崩溃或者效率下降很多。
带宽:能够稳定提供不少于某个指标的数据传输率
C. “网络负载”是什么意思怎么测试计算
不知道你说的是什么层面的
网络负载在运营商网络里面,简单说指的就是网络中继承载的流量以及网络设备承载的用户量
测试和计算用人工只能估算,比如一台设备,已知接入用户30户,户均流量2M/s,中继的流量大约就是60M/s。主要的计算是靠设备端口计算,每秒经过的流量。还有运营商内部庞大的计算平台统计等方式。
网络负载这个词更多用于比如“网络负载均衡”,意思是一台设备有两条上联中继共同分摊上联流量以实现负载均衡,或者两台设备同时承载相同用户以实现负载均衡等等。
D. lte负载均衡切换测量原理
1、首先移动性负载均衡(MobilityLoadBalancing)是通过判断本小区的负载高低。
2、其次进行小区间负载信息交互,将负载从较为繁忙的小区转移。
3、最后负责处理多个小区上业务负荷的不均匀分布。
E. IPVS(LVS)负载均衡简介及实验测试
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,现在已经是 Linux标准内核的一部分。LVS是一种叫基于TCP/IP的负载均衡技术,转发效率极高,具有处理百万计并发连接请求的能力。
LVS的IP负载均衡技术是通过IPVS模块实现的。IPVS模块是LVS集群的核心软件模块,它安装在LVS集群作为负载均衡的主节点上,虚拟出一个IP地址和端口对外提供服务。用户通过访问这个虚拟服务(VS),然后访问请求由负载均衡器(LB)调度到后端真实服务器(RS)中,由RS实际处理用户的请求给返回响应。
根据负载均衡器转发客户端请求以及RS返回响应机制的不同,将IPVS的转发模式分为三种:VS/NAT,VS/DR,VS/TUN
DR模式下,客户端的请求包到达负载均衡器的虚拟服务IP端口后,负载均衡器不会改写请求包的IP和端口,但是会改写请求包的MAC地址为后端RS的MAC地址,然后将数据包转发;真实服务器处理请求后,响应包直接回给客户端,不再经过负载均衡器。所以DR模式的转发效率是最高的,特别适合下行流量较大的业务场景,比如请求视频等大文件。
DR模式的特点:
LB只是将数据包的MAC地址改写为RS的MAC地址,然后转发给相应的RS。
因为LB转发时并不会改写数据包的目的IP,所以RS收到的数据包的目的IP仍是LB的虚拟服务IP。为了保证RS能够正确处理该数据包,而不是丢弃,必须在RS的环回网卡上绑定LB的虚拟服务IP。这样RS会认为这个虚拟服务IP是自己的IP,自己是能够处理这个数据包的。否则RS会直接丢弃该数据包!
因为LB不会改写数据包的目的端口,所以RS服务的监听端口必须和虚拟服务端口一致,否则RS会直接拒绝该数据包。
因为RS收到的请求数据包的源IP是客户端的IP,所以理所当然RS的响应会直接回给客户端,而不会再经过LB。这时候要求RS和客户端之间的网络是可达的。
因为LB在转发过程中需要改写数据包的MAC为RS的MAC地址,所以要能够查询到RS的MAC。而要获取到RS的MAC,则需要保证二者位于一个子网,否则LB只能获取到RS网关的MAC地址。
NAT模式下,请求包和响应包都需要经过LB处理。当客户端的请求到达虚拟服务后,LB会对请求包做目的地址转换(DNAT),将请求包的目的IP改写为RS的IP。当收到RS的响应后,LB会对响应包做源地址转换(SNAT),将响应包的源IP改写为LB的IP。
NAT模式的特点:
对于请求包,会进行DNAT;对于响应包,会进行SNAT。
虽然LB在转发过程中做了NAT转换,但是因为只是做了部分地址转发,所以RS收到的请求包里是能看到客户端IP的。
因为RS收到的请求包源IP是客户端的IP,为了保证响应包在返回时能走到LB上面,所以需要将RS的默认网关地址配置为LB的虚拟服务IP地址。当然,如果客户端的IP是固定的,也可以在RS上添加明细路由指向LB的虚拟服务IP,不用改默认网关。
因为需要将RS的默认网关配置为LB的虚拟服务IP地址,所以需要保证LB和RS位于同一子网。
又因为需要保证RS的响应包能走回到LB上,则客户端不能和RS位于同一子网。否则RS直接就能获取到客户端的MAC,响应包就直接回给客户端了,不会走网关,也就走不到LB上面了。这时候由于没有LB做SNAT,客户端收到的响应包源IP是RS的IP,而客户端的请求包目的IP是LB的虚拟服务IP,这时候客户端无法识别响应包,会直接丢弃。
IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技 术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。
利用IP隧道技术将请求报文封装转发给后端服务器,响应报文能从后端服务器直接返回给客户。但在这里,后端服务器有一组而非一个,所以我们不可 能静态地建立一一对应的隧道,而是动态地选择一台服务器,将请求报文封装和转发给选出的服务器。这样,可以利用IP隧道的原理将一组服务器上的网络服 务组成在一个IP地址上的虚拟网络服务。各个服务器将VIP地址配置在自己的IP隧道设备上。
它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况, 动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为 VIP的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。
轮叫调度(Round Robin Scheling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。
LB会根据RS上配置的权重,将消息按权重比分发到不同的RS上。可以给性能更好的RS节点配置更高的权重,提升集群整体的性能。
最小连接调度(Least-Connection Scheling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务 器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。
加权最小连接调度(Weighted Least-Connection Scheling)算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权 值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。
基于局部性的最少链接调度(Locality-Based Least Connections Scheling,以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中 客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的 请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处理能力。
带复制的基于局部性最少链接调度(Locality-Based Least Connections with Replication Scheling,以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要 维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。对于一个“热门”站点的服务请求,一台Cache 服务器可能会忙不过来处理这些请求。这时,LBLC调度算法会从所有的Cache服务器中按“最小连接”原则选出一台Cache服务器,映射该“热门”站 点到这台Cache服务器,很快这台Cache服务器也会超载,就会重复上述过程选出新的Cache服务器。这样,可能会导致该“热门”站点的映像会出现 在所有的Cache服务器上,降低了Cache服务器的使用效率。LBLCR调度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热 门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载;当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器 数目。这样,该“热门”站点的映像不太可能出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。
目标地址散列调度(Destination Hashing Scheling)算法也是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。
目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
源地址散列调度(Source Hashing Scheling)算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法 的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址。
客户端发送对VIP的请求,lvs负载到后端某一台server,后端server处理后,直接封包回送客户端,源IP地址一定是lvs上面配的那个公网服务地址,也就后端server要配置这个ip,后端server收到的数据包是lvs没有变动过的(IP:vip),多个server,接入互联网的server持有相同的IP,是不允许的,因此,必须将后端server中的vip隐藏起来(对外隐藏,对自己可见)
VIP: 虚拟服务器地址
DIP: 转发的网络地址
1,和RIP通信:ARP协议,获取Real Server的RIP:MAC地址;
2,转发Client的数据包到RIP上,RIP上要求有VIP(对外隐藏VIP);
RIP: 后端真实主机(后端服务器)
CIP: 客户端IP地址
对外隐藏,对内可见
kernel parameter:
目标mac地址为全F,交换机触发广播
arp_ignore: 定义接收到ARP请求时的响应级别;
0:只要本地配置的有相应地址,就给予响应;
1:仅在请求的目标(MAC)地址配置请求
到达的接口上的时候,才给予响应;
arp_announce:定义将自己地址向外通告时的通告级别;
0:将本地任何接口上的任何地址向外通告;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;
lvs 主机:192.168.56.118
RIP主机:也就是需要负载的服务器,192.168.56.101-103
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,后来将lvs嵌入到linux内核,叫做ipvs
ipvs参数
保存规则
-S
载入此前的规则:
-R
配置lvs的VIP
确保/proc/sys/net/ipv4/ip_forward 内容是1
调整RS的响应。通告级别(每一台RS都配):
配置RS的VIP(每一台RS都配)
启动RS上的httpd
编写测试文件
启动httpd
客户端验证:
RIP:80 能显示
VIP:80不能显示
负载服务器安装LVS管理工具—ipvsadm
浏览器刷新: 访问vip:80
在DR模式中是所有服务机共享一个VIP,但是在IP隧道模式中,就相当于主代理机将包经过自己打包之后,将IP转化成公网可传递的IP,并将消息经过自己又一次的打包,发送给真实服务器,真实服务器对这个请求作出响应,这样就达到一个可以跨地区的传输。并且也避免了DR模式中代理机与真实服务机必须在同一局域网的不便。
说明:
1、当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。此时报文的源IP为CIP,目标IP为VIP 。
2、PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
3、IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING链。此时源IP为DIP,目标IP为RIP
4、POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。此时源IP为DIP,目标IP为RIP
5、RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。此时的源IP地址为VIP,目标IP为CIP
RIP、VIP、DIP全是公网地址
RS的网关不会也不可能指向DIP
所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
不支持端口映射
RS的系统必须支持隧道
LVS服务器:192.168.56.100
RS服务器:192.168.56.101,192.168.56.102,192.168.56.103
4.4.5 ### 系统配置 vim /etc/sysctl.conf
4.5.5 ### 系统配置 vim /etc/sysctl.conf
F. 网络负载均衡的验证方法
网络负载均衡配置好后,为了实现某项具体的服务,需要在网络负载均衡的计算机上安装相应的服务。例如,为了实现IIS网站的负载均衡,需要在相应的网络负载均衡服务器上安装IIS服务。为了让每个用户在通过网络负载均衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载均衡的每台计算机上保持数据的一致性。举例来说,实现了两个节点的IIS的网络负载均衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。
为了检验网络负载均衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用与之相类似。在其他计算机上的IE浏览器中键入192.168.0.9,根据网络的负载,网络负载均衡会自动转发到A机或B机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们在测试的时候,为了验证网络负载均衡的效果,把两个网站设置成不一致的内容,而在正式应用的时候,网络负载均衡群集的每个节点计算机的内容将是一致的,这样不管使用哪一个节点响应,都能保证访问的内容是一致的。
G. 如何测试无线路由器负载能力
“负载均衡”概念运用在网络上,简单来说是利用多个网络设备通道均衡分担流量。就像是寺庙一天要挑10桶水,1个和尚必需要走10趟,但同时指派10个和尚却只要一趟即可完成工作的道理一样。负载均衡可运用多个网络设备同时工作,达成加速网络信息的处理能力,进而优化网络设备的性能,取代设备必须不停升级或淘汰的命运。目前普遍被运用在网络设备中,如服务器、路由器、交换机等。
方法一:测试无线信号强度
当无线路由器正常工作时,它的无线信号一定是处于持续的最佳状态,那么可以通过无线信号在一段时间内的强弱状态来判断无线路由器有没有问题以及质量的优劣,在这里可以使用inSSIDer测试工具。
inSSIDer是一款WiFi扫描工具,它能将捕捉到的无线信号以列表的形式显示,你和你邻居的无线路由器信号都会在这里被罗列出来。它底部 的图形显示非常直观,时间波形图可以显示每个无线路由器在过去5分钟内的信号强度(以dB为单位)。然后还有每个2.4GHz和5GHz信道的图形,可显 示现有信号的强度和每个无线路由器所使用的信道宽度。
找到自己无线路由器的名字,根据对应颜色的线条,查看它的实时走势。如果这条线比较平整的话,那就说明当前无线路由器的信号比较稳定,没有什么问题;如果是忽高忽低的波浪形状,则说明无线信号极其不稳定,无线路由器也有可能出现故障或者是质量比较差。
方法二:测试无线传输率
数据传输率也是代表无线网络质量的标准之一,进而也反映了无线路由器有没有出现问题。当出现网页打不开、在线电影卡顿、游戏掉线等问题时,不妨用Qcheck测试一下无线路由器的数据传输率。
Qcheck是一款基于ping命令的网路测试软件,主要功能是向TCP、UDP、IPX、SPX网络发送数据流来测试局域网络的响应时间和数据传输率,在这里我们可以将它应用到无线网络中。
测试时需要使用两台安装有无线网卡的电脑,连接到同一个无线路由器的网络中,作为发送机和接收机,并且它们都需要安装运行Qcheck软件。将 发送机和接收机的IP地址输入软件的“From Endpoint 1”和“To Endpoint 2”栏目中。如果不知道本机的IP地址的话,可以在Windows的运行栏用“ipconfig”指令来查看。
点击“TCP”按钮,在“Options”选项部分中点击“Throughput”按钮,然后点击下方的“Run”按钮,这样就开始模拟数据传 输,稍后就会看到结果。从一台电脑经过无线路由器向另一台电脑发送数据,然后测试所消耗的时间,并计算出传输速率(以Mbps为单位),测试结果越高越 好,如果结果很低,只有几Kbps的话,那就说明无线路由器出现了问题。
H. 如何验证负载均衡
如果您将硬件负载平衡器作为 Communicator Web Access(2007 R2 发行版)基础结构的一部分进行部署,则应该运行一系列的测试来验证负载平衡器是否正确配置并按预期的方式工作。建议您至少进行以下验证:
确认每台 Communicator Web Access 服务器都可以与网络上的其他计算机通信,并且可以连接到 Active Directory。
确认负载平衡器能够均匀分配传入连接。
确认标准 Communicator Web Access 活动(如即时消息和状态检测)按预期的方式运行。
验证 DNS 和 LDAP 流量
只有当 Communicator Web Access 服务器阵列中的各台服务器都能执行以下两项操作时,负载平衡才能工作:
解析 IP 地址和计算机主机名。
与 Active Directory 全局编录服务器通信。
为此,您应该执行的第一项测试是验证轻型目录访问协议 (LDAP) 和域名系统 (DNS) 连接;此项测试必须在服务器阵列中的每台服务器上执行。在测试的第一部分,您将通过 IP 地址(例如,192.168.1.5)对全局编录服务器执行 ping 操作。要成功完成测试,必须得到如下响应:
Pinging 192.168.1.5 with 32 bytes of data: Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Ping statistics for 192.168.1.5: Packets:Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
如果这一部分测试成功完成,下一步您将通过名称对全局编录服务器执行 ping 操作。对于测试的第二部分,您应该得到如下响应:
Pinging gcserver.contoso.com [192.168.1.5] with 32 bytes of data: Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Reply from 192.168.1.5:bytes=32 time<1ms TTL=128 Ping statistics for 192.168.1.5: Packets:Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
通过以上两部分测试验证 DNS 流量后,下一步应该使用 Ldp.exe 实用程序验证与 Active Directory 的 LDAP 连接。
验证负载平衡器配置
负载平衡器的主要用途是确保工作负载在服务器阵列中的所有服务器之间均匀分配。例如,假设您的服务器阵列中有四台服务器,有 100 个用户登录到 Communicator Web Access。如果您已经采用硬件负载平衡并且负载平衡已经配置正确,则每台服务器应该处理 25 个会话(总共 100 个会话,除以 4 台服务器)。
要验证负载平衡配置,应进行一系列测试,每次测试通过两个用户帐户(用户 A 和用户 B)和最多两台 Communicator Web Access 服务器进行。(因为如果使用两台以上的服务器,那么您可能遇到的问题的根源就更加难以追踪。)如果服务器阵列中有两台以上的服务器,应该在每个可能的计算机对上重复测试过程。例如,假设服务器阵列由以下计算机组成:
服务器 A
服务器 B
服务器 C
服务器 D
在这种情况下,您需要运行的测试涉及以下计算机对:
I. 多台服务器负载均衡的压力测试要怎么做
负载均衡是算法上的问题,按常规软件测试的方式来。
如果负载没问题,那理论上压力测试只要测单个服务就行了。
J. jmeter压力测试实现负载均衡
文章来源于:https://blog.csdn.net/russ44/article/details/54729461
Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。
那么,是如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter。这种方式很笨,也很难达到真正的同步。其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。
通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:
* 保存测试采样数据到本地机器
* 通过单台机器管理多个jmeter执行引擎。
* 没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。
* 每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。
在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过 100 。
采用JMeter 远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞。
使用多台机器产生负载的操作步骤如下:
(1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。
(2) 运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.9.99 和192.168.9.130 作为agent)
(3)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:
查找:
remote_hosts=127.0.0.1
修改为:
remote_hosts=192.168.9.99:1099,192.168.9.130:1099
这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。
(4)启动controller 机子上的jmeter应用jmeter.bat,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。
遇到的常见问题:
1、在Controller端上控制某台机器Run,提示"Bad call to remote host"。
解决方法:检查被控制机器上的jmeter-server有没有启动,或者JMeter.properties中remote_hosts的配置错误。
2、Agent机器启动Jmeter_server.bat时,后台提示:"could not find ApacheJmeter_core.jar"
解决方法:确定在Agent机器安装jdk,并设置环境变量
3、远程启动时,报错:
ERROR - jmeter.gui.action.RemoteStart: Failed to initialise remote engine java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:54)
at org.apache.jmeter.engine.ClientJMeterEngine.(ClientJMeterEngine.java:67)
at org.apache.jmeter.gui.action.RemoteStart.doRemoteInit(RemoteStart.java:180)
at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80)
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:81)
这个问题终于被我解决了,其实原因好简单呀。只要将本机的jmter-server.bat执行即可。要是在jmeter.properties配置的地方写了127.0.0.1 的话 就要开本机的 jmeter-sever.bat. 不写的话 就不用开了
4、查看1099端口是否被占用
netstat -ano | findstr "1099"
tasklist | findstr "1099"
其它说明:
1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。