Ⅰ 多台服务器负载均衡的压力测试要怎么做
负载均衡是算法上的问题,按常规软件测试的方式来。
如果负载没问题,那理论上压力测试只要测单个服务就行了。
Ⅱ 如何配置Web服务器实现负载均衡
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。
以四台服务器为例实现负载均衡:
安装配置LVS
1. 安装前准备:
(1)首先说明,LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载状况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表:
Srv Eth0 Eth0:0 Eth1 Eth1:0
vs1 10.0.0.1 10.0.0.2 192.168.10.1 192.168.10.254
vsbak 10.0.0.3 192.168.10.102
real1 192.168.10.100
real2 192.168.10.101
其中,10.0.0.2是允许用户访问的IP。
(2)这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的real1,real2,然后由real1,real2分别处理。
Client为客户端测试机器,可以为任意操作系统。
(3)所有OS为redhat6.2,其中vs1 和vsbak 的核心是2.2.19, 而且patch过ipvs的包, 所有real
server的Subnet mask 都是24位, vs1和vsbak 的10.0.0. 网段是24 位。
2.理解LVS中的相关术语
(1) ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。
(2) 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr;weighted
Round-robin,简称wrr;每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc;weighted
Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。
(3) Persistent client
connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有25%的Internet
可能具有相同的IP地址。
(4) Persistent port
connection调度算法:在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、
wrr、lc、wlc具备pcc的属性)。在设置时,如果你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port
connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。
(5)Load Node Feature of Linux Director:让Load balancer 也可以处理users 请求。
(6)IPVS connection synchronization。
(7)ARP Problem of LVS/TUN and LVS/DR:这个问题只在LVS/DR,LVS/TUN 时存在。
3. 配置实例
(1) 需要的软件包和包的安装:
I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster设定工具);
II. piranha-0.4.12-2*.rpm;
III. ipchains-1.3.9-6lp*.rpm (架设NAT)。
取得套件或mount到光盘,进入RPMS目录进行安装:
# rpm -Uvh piranha*
# rpm -Uvh ipchains*
(2) real server群:
真正提供服务的server(如web
server),在NAT形式下是以内部虚拟网域的形式,设定如同一般虚拟网域中Client端使用网域:192.168.10.0/24
架设方式同一般使用虚拟IP之局域网络。
a. 设网卡IP
real1 :192.168.10.100/24
real2 :192.168.10.101/24
b.每台server均将default gateway指向192.168.10.254。
192.168.10.254为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server 。
c.每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real
server读取网页的情形。
d.每台server都开启rstatd、sshd、rwalld、ruser、rsh、rsync,并且从Vserver上面拿到相同的lvs.conf文件。
(3) virtual server:
作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重。
a.IP设置:
对外eth0:IP:10.0.0.1 eth0:0 :10.0.0.2
对内eth1:192.168.10.1 eth1:0 :192.168.10.254
NAT形式下仅virtual server有真实IP,real server群则为透过virtual server.
b.设定NAT功能
# echo 1 >; /proc/sys/net/ipv4/ip_forward
# echo 1 >; /proc/sys/net/ipv4/ip_always_defrag
# ipchains -P forward MASQ
c.设定piranha 进入X-window中 (也可以直接编辑/etc/lvs.cf )
a).执行面板系统piranha
b).设定“整体配置”(Global Settings) 主LVS服务器主机IP:10.0.0.2, 选定网络地址翻译(预设) NAT路径名称:
192.168.10.254, NAT 路径装置: eth1:0
c).设定虚拟服务器(Virtual Servers) 添加编辑虚拟服务器部分:(Virtual
Server)名称:(任意取名);应用:http;协议: tcp;连接:80;地址:10.0..0.2;装置:eth0:0; 重入时间:180
(预设);服务延时:10 (预设);加载监控工具:ruptime (预设);调度策略:Weighted least-connections; 持续性:0
(预设); 持续性屏蔽: 255.255.255.255 (预设); 按下激活:实时服务器部分:(Real Servers); 添加编辑:名字:(任意取名);
地址: 192.168.10.100; 权重:1 (预设) 按下激活
另一架real server同上,地址:192.168.10.101。
d). 控制/监控(Controls/Monitoring)
控制:piranha功能的激活与停止,上述内容设定完成后即可按开始键激活piranha.监控器:显示ipvsadm设定之routing table内容
可立即更新或定时更新。
(4)备援主机的设定(HA)
单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual
server的故障而使对外服务工作终止;备份主机随时处于预备状态与virtual server相互侦测
a.备份主机:
eth0: IP 10.0.0.3
eth1: IP 192.168.10.102 同样需安装piranha,ipvsadm,ipchains等套件
b.开启NAT功能(同上面所述)。
c.在virtual server(10.0.0.2)主机上设定。
a).执行piranha冗余度 ;
b).按下“激活冗余度”;
冗余LVS服务器IP: 10.0.0.3;HEARTBEAT间隔(秒数): 2 (预设)
假定在…秒后进入DEAD状态: 5 (预设);HEARTBEAT连接端口: 539 (预设)
c).按下“套用”;
d).至“控制/监控”页,按下“在当前执行层添加PULSE DEAMON” ,按下“开始”;
e).在监控器按下“自动更新”,这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real
server联机情形,若real server故障,该主机亦会从监视窗口中消失。
d.激活备份主机之pulse daemon (执行# /etc/rc.d/init.d/pulse start)。
至此,HA功能已经激活,备份主机及virtual server由pulse daemon定时相互探询,一但virtual
server故障,备份主机立刻激活代替;至virtual server 正常上线后随即将工作交还virtual server。
LVS测试
经过了上面的配置步骤,现在可以测试LVS了,步骤如下:
1. 分别在vs1,real1,real2上运行/etc/lvs/rc.lvs_dr。注意,real1,real2上面的/etc/lvs
目录是vs2输出的。如果您的NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到real1,real2上,然后分别运行。确保real1,real2上面的apache已经启动并且允许telnet。
2. 测试Telnet:从client运行telnet 10.0.0.2,
如果登录后看到如下输出就说明集群已经开始工作了:(假设以guest用户身份登录)
[guest@real1 guest]$——说明已经登录到服务器real1上。
再开启一个telnet窗口,登录后会发现系统提示变为:
[guest@real2 guest]$——说明已经登录到服务器real2上。
3. 测试http:从client运行iexplore http://10.0.0.2
因为在real1 和real2 上面的测试页不同,所以登录几次之后,显示出的页面也会有所不同,这样说明real server 已经在正常工作了。
Ⅲ 如何对Web应用程序进行负载测试
定义测试策略 到目前为止,您肯定参加过这样的会议,客户倚靠在宽大的会议桌上,问您:“这个系统能处理上千个用户吗?”传统的负载测试方法要求您编写脚本并执行测试,以试图给出此问题的精确答案。对于这种测试,您需要定义“处理”的含义以及 1000 名典型用户在站点活动时的情形。您需要定义测试用例以代表各种用户活动:例如,购买股票或注册新的帐户。接下来,您必须估计用户在这些测试用例上的分布。对以下数据进行假设,即模拟真实用户与应用程序交互时,需要多长的思考时间(或等待时间)。因此,负载测试期间活动的可从某个方面大致反映出同样数量的真实用户在站点活动时的情形。 这种方法有几个不足之处。首先,其结果不会比您做的假设更好。显然,不正确的假设将使结果出现偏差。 其次,估计真实用户需要大量客户端硬件。如果对每名虚拟用户给定需要的处理能力和内存量,则典型的客户端计算机可以处理大约 200 名虚拟用户。因此,对 2000 名用户并发处理级别的测试需要 10 台客户端计算机 — 这是一笔重大投资。测试使用 HTTPS 的站点将需要多得多的客户端硬件。 最终,此方法难以向您的开发团队提供以操作为导向的信息。当某处出现故障时,常常难以再现该问题。 作为备选方案,我们建议您围绕以下这些关键问题设计测试用例: �6�1 系统瓶颈在哪里?系统能同步处理多少个并发请求? �6�1 在响应时间变得不可接受之前,一台机器能处理多少名不同步的超级用户? �6�1 添加额外的硬件时,结果是线形增长的吗? �6�1 有任何稳定性问题会妨碍站点运行于生产环境中吗? 此方法将使用开发团队(此开发团队参与可能出现问题的领域)提供的附加信息。请关注这些领域。对于上一个示例,其瓶颈可能出在定单提交领域。从这里您可以派生出更具体的问题,例如“提交流程可以同时处理多少个请求?”攻击这些特定领域是最快且成本最小的方法,用来向开发团队提供以操作为导向的信息,以便他们能改进系统。在使用这种方法的同时,我们推荐您记住遵循以下建议。 关注负载测试正如我们已提到的那样,首先要做的是构建导致潜在瓶颈和稳定性问题的脚本。这种“数据第一,假设第二”的方法使您能够从应用程序收集原始数据,然后根据假设确定更高级别的结果。不用担心为识别低风险站点的脚本编写问题。例如,为站点的帮助领域或只读文档领域编写脚本不大可能出现系统瓶颈。 同步请求使用同步请求攻击瓶颈。此处的这个主意是模拟最坏的情况:即,站点上的用户精确地在同一时间攻击瓶颈。通过使用户同步,您可以重复进行此测试。如果不同步结果,则难以再现故障情况。可以使用同步点做到这一点,同步点是大多数较健壮(成本也较高)的测试工具中提供的一项功能。同步点迫使每名虚拟用户一直等到剩余的用户到达脚本中定义的点后,才能开始下一请求。它允许您精确并重复地确定站点的潜在瓶颈区域能处理的并发用户数。例如,下限可以是 7 名并发同步用户。 创建循环测试用例脚本使测试用例循环。在另一种方法中,每次测试用例迭代前后,站点应处于相同状态。这允许您长时间地重复运行测试用例。 使用超级用户最后,使用我们所称的超级用户。正如前面所提到的,超级用户运行时思考时间设置为零。请记住,思考时间假设是用于常规测试中,以使虚拟用户模拟真实用户。但是,如果将虚拟用户思考时间减半,则服务器的实际负载将加倍。在另一种方法中,服务器真正关心的与负载有关的变量是每秒的请求数。虚拟用户的数量及其思考时间结合起来生成该负载。 让我们进行一些数学运算以使此概念更清晰。下面的公式计算访问站点的真实用户生成的负载(请求数/秒): 例如,某个站点有 100 名并发用户,假设下载时间为 10 秒,思考时间为 30 秒,则每秒将生成 2.5 页。如果我们假设每页 3 个请求,则在 Web 服务器上将转化为每秒 7.5 个请求。 以超级用户运行测试时,观察每秒请求数,并与刚刚计算的值比较。根据我们的经验,真实用户数与超级用户数的比例通常约为 15:1。对于同一个示例,这意味着 (100/15) 名超级用户将生成与 100 名普通用户相同的负载。再举一个例子,假设在 10 名超级用户之后响应时间变得不可接受。请注意转换回真实用户数的该点每秒请求数。现在您可以进行任何希望的思考时间假设,甚至可以更改它而无需重新运行测试。在几天的测试之后,您将能根据直觉从超级用户数转换成真实用户数。此方法允许您保持用户数可控,减少所需的客户端硬件数量,并包含负载测试软件的成本。 这些超级用户测试用例对于多机测试很有用。要测试站点的可伸缩性,可添加第二台 Web 服务器和一个负载平衡器,并重复超级用户测试。理想情况下,在看见相同的相应次数之前,您将能加倍超级用户数量。 要回答稳定性问题,可运行测试,以在延长的时间段内维持合理数量的并发且未同步超级用户。我们在上一个项目中熬了很多个通宵,甚至 24 小时昼夜不停,但持续时间与应用程序有关。我们称之为“内置”测试。一旦您已采取步骤识别并潜在地解决了找到的瓶颈,则重复同步点测试,看下限是否有所增长。然后用所支持的新的并发用户数重新运行“内置”测试。以努力提高此数字为目标重复该循环,直到达到质量条。 但是有多少用户呢? 尽管此方法向开发团队提供了有价值的信息,但它使得您更难于回答会议室的问题。不过,您可以近似地估计答案。例如,假设站点的最坏情况瓶颈显示,每台计算机多于 20 名超级用户的情况下,响应时间超过 10 秒。根据您从我们建议的公式计算的结果,近似地估计有 300 名真实用户(20 名超级用户 × 15 名真实用户)。此时,您可以做出与常规用例中相同的假设。通常情况下,有百分之多少的用户正在使用站点的此领域?假设预期 50% 的用户正在使用此领域,而其他领域,例如文档或数据库读取,用户比例则没有这么大。这意味着具有一台 Web 服务器的系统将处理大约 600 名用户。 到目前为止,我们已讨论了在能明确地指向站点的一个瓶颈领域的情况下该如何做,但如果影响性能的领域不止一个时您又应如何做呢?答案是创建单独查看各个领域的测试脚本。首先孤立地运行这些脚本,然后一起运行。再比较结果,看站点的一个领域对另一个领域的影响有多大。
Ⅳ 如何查看服务器当前的负载信息
方法一:
通过top命令来查看服务器负载
再对此Linux服务器性能分析之前,先了解下Linux系统Load average负载的知识,负载均值在 uptime 或者top 命令中可以看到,
方法二:输入 iostat -x -k -t
说明:%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。
即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
方法三:
如果玩游戏很卡,可以用hdparm –t /dev/磁盘名称来测试磁盘性能是否达标,下图是单个希捷1T的盘测试的结果
说明:sd表示硬盘是SATA,SCSI或者SAS,a表示串口的第一块硬盘
Ⅳ 如何计算WEB服务器的最大负载量
图1显示了该算法的工作环境,在负载调度器上运行Monitor Daemon进程,Monitor Daemon来监视和收集各个服务器的负载信息。Monitor Daemon可根据多个负载信息算出一个综合负载值。Monitor Daemon将各个服务器的综合负载值和当前权值算出一组新的权值,若新权值和当前权值的差值大于设定的阀值,Monitor Daemon将该服务器的权值设置到内核中的IPVS调度中,而在内核中连接调度一般采用加权轮叫调度算法或者加权最小连接调度算法。图1:动态反馈负载均衡算法的工作环境连接调度当客户通过TCP连接访问网络访问时,服务所需的时间和所要消耗的计算资源是千差万别的,它依赖于很多因素。例如,它依赖于请求的服务类型、当前网络带宽的情况、以及当前服务器资源利用的情况。一些负载比较重的请求需要进行计算密集的查询、数据库访问、很长响应数据流;而负载比较轻的请求往往只需要读一个HTML页面或者进行很简单的计算。请求处理时间的千差万别可能会导致服务器利用的倾斜(Skew),即服务器间的负载不平衡。例如,有一个WEB页面有A、B、C和D文件,其中D是大图像文件,浏览器需要建立四个连接来取这些文件。当多个用户通过浏览器同时访问该页面时,最极端的情况是所有D文件的请求被发到同一台服务器。所以说,有可能存在这样情况,有些服务器已经超负荷运行,而其他服务器基本是闲置着。同时,有些服务器已经忙不过来,有很长的请求队列,还不断地收到新的请求。反过来说,这会导致客户长时间的等待,觉得系统的服务质量差。简单连接调度简单连接调度可能会使得服务器倾斜的发生。在上面的例子中,若采用轮叫调度算法,且集群中正好有四台服务器,必有一台服务器总是收到D文件的请求。这种调度策略会导致整个系统资源的低利用率,因为有些资源被用尽导致客户的长时间等待,而其他资源空闲着。实际TCP/IP流量的特征文献说明网络流量是呈波浪型发生的,在一段较长时间的小流量后,会有一段大流量的访问,然后是小流量,这样跟波浪一样周期性地发生。文献揭示在WAN和LAN上网络流量存在自相似的特征,在WEB访问流也存在自相似性。
Ⅵ 如何测试web服务器的网速
电脑进入运行程序,输入CMD,然后键入ping+空格+你的IP地址(+号无需输入),按回车键就可以了。
如果是联通宽带用户,可登陆网上营业厅www.10010.com 后,首页点击“我的联通”-“便民服务”-“宽带测速”,即可根据页面提示信息进行测速。也可以使用宽带号码登录联通手机营业厅客户端——查询——宽带业务查询——立即测试(“宽带测速”业务不支持免流)。
温馨提示:以上路径以网上营业厅实际显示信息为准。