服务器压力测试,免费ddos腾讯服务器
多台服务器负载均衡的压力测试要怎么做
配置Load Balance算法
我们首先要做的就是进入“Load Balance”,在这里你可以选择负载均衡的算法:轮转调度,随机分配,URL参数,请求头等。如果不了解这些算法干什么的,那就去复习上一篇吧。APR为我们提供了以下7种算法:
Weighted round robin根据权重按照请求数据进行分配
Weighted total traffic根据权重按照请求和响应字节大小进行分配
Least current request优先转发给那个当前处理最少请求的服务器
Least response time优先转发给那个当前响应最快的服务器
Server variable hash根据服务器变量的hash来分配请求,这里面的服务器变量包括Cookie, URL,头信息等,详情点这里。
Query string hash根据URL查询字符串的hash来分配请求,如果查询字符串包含多个参数(?name=jesse&location=sh),则是用整个查询字符串的hash来作判断。
Request hash根据服务器变量或者是URL的hash来分配请求,比如说服务器变量是QUERY_STRING,那么hash的值就是query string中对应的那个值。
大家可以已经猜到,后面3种算法是可以利用来实现这种分布式环境下session的访问的,但是由于要涉及到其它的配置,所以我们后面再讲,让我们先专注于把这个负载均衡配置完,所以我们就里就先选择比较简单的Least response time,谁当前返回响应最快我们就把请求给它,验证了那句话,“能者多劳啊”。
配置转发规则
APR的机制是做为一个代理服务器,它负责接收请求,但是不做任何处理,而是直接将请求分发给具体的WEB服务器。同时我们还可以配置一些规则,有一些请求转发,有一些请求不转发,这就要感谢我们的url rewrite组件了。我们可以进入“Routing Rules”来进行相关的配置。
网站部署与同步
安装程序和运行环境同步
在实际的环境中,如果我们使用NLB在第一次部署的时候,就需要一个服务器一个服务器的部署,而且如果要对IIS进行其它的一些配置就会显得很烦琐。在APR中给我们提供的Provision功能,就可以帮助实现这样的同步功能。
在Server Farm的功能视图中,我们可以找到以下两种类型的Provision:
Application Provisioning:主要是用来同步网站相关包括内容,配置等等,Web Deploy就是用在这里了。
Platform Provisioning:主要是用来同步安装程序的,其实这里面的Platform是指我们上面安装的 Web Platform Installer,也就是说我们在主服务器上通过Web Platform安装的程序或者组件,如果启用了Platform Provisioning的话,其它所有的服务器也会自动安装上。
我们可以来做一个Platform Provisioning的例子,点击我们的Server Farm->在右边的功能视图中双击Platform Provisioning->勾选下面两个选项。
然后我们点击左右的Servers,选中我们的主服务器(Primary),在右边的*作列表中选择“Install Product”,在弹出的窗体中安装的程序就会被自动安装到当前Server Farm中的所有其它服务器中。
网站内容同步
和上面的思路一样,我们不需要每一个程序都部署一遍,我们只需要在主服务器上部署一遍就可以了,所有的内容以及IIS的设置都会被自动同步到其它服务器上,这就是Application Provisioning来帮我们实现的。我们可以通过点击我们的Server Farm->在右边的功能视图中双击“Applicaiton Provisioning”然后勾选下面的两项即可。
接下来,我们只需要在我们的主服务器上建立我们的站点然后部署我们的网站即可,包括对网站进行一些应用程序池的配置也是只需要在主服务器上完成的,我们就不需要到每一台服务器上都去布置一遍了。
配置入口服务器
既然入口服务器不做任何处理只是转发请求的话,那我们还需要把我们的网站的内容放在入口服务器的IIS下么?这个就取决于不同的场景了,你可以建一个空的站点什么也没有,你也可以用它来做一个简单的文件服务器,在上一步中将静态文件不转发即可,让我们Web Farm中的服务器只处理动态的请求,也可以减轻他们的压力。当然如果你有单独的文件服务器那就更好了。作为测试用途我们在入口服务器上就不建任何网站了,直接使用安装IIS自带的那个默认网站即可。
有人可能会有疑问,因为我在配置Server Farm的时候同样也有这样的一个疑问。“所有的请求都是由入口服务器接收,然后再分发给Farm中具体的服务器的,那入口服务器的那个网站该如何配置呢?是用80还是8080端口,如果我建了好几个网站,那到底哪一个网站的请求会被Farm拿到再进行转发呢?”
我在入口服务器中没有做任何网站的配置,也就是说本地有一个的网站是可以访问的,对于外部来说它的地址就是 ,那么为什么当外部访问 192.168.1.129的时候,它就会被Farm中的服务器处理呢?这就要多亏我们的Url Rewrite模块了,我们可以点击我们的Farm Mono,进入到功能视图->然后点击 Routing Rules->在Routing Rules右侧的*作列表中点击 URL Rewrite…对Routing Rules进行更详细的管理。
在我们的URL Rewrite窗口,我们就会看到已经为我们默认创建了一条入站的规则。
我们可以双击那条规则查看详细,或者进行编辑,我们可以看到这条规则实际上是用通配符匹配了所有的入站请求,然后转发给我们的Server Farm: Mono。原来是URL Rewrite在这里起了作用,当然我们也可能把*改成其它的通配符,以及使用正则表达式来匹配都是可以的,这些都是URL Rewite里面的功能,是可以直接搬过来用的。
URL Rewrite帮助我们匹配入站请求,然后转发给Farm,在Farm层面 APR根据我们配置的负载均衡算法将请求转发给具体的服务器去处理请求。现在我们再回过头来看看我们最开始安装的5个组件都分别起到了什么作用。
Web Deploy:参与Application Provisioning(网站内容及配置同步)
Web Platform Installer:参与Platform Provisioning(应用环境同步)
Web Farm:主要组织者及容器
Application Request Router:负载均衡处理
URL Rewrite:入站请求匹配等
验证负载均衡
到这里为止,我们用 APR+ Web Farm搭建的负载均衡就完成了,最终结果是我们在外面访问 的时候,实际上是由我们Farm中的3台Web服务器处理的,口说无凭,我们来验证一下。验证的方法很简单,我们在每个服务器下放不同的文件用来标识当前是哪个服务器在处理响应(记得在部署文件的时候要先把Application provisioning关闭掉,不然主服务器上的文件会被同步到其它的服务器上去的)。
压力测试、负载测试和并发测试有什么区别
主要区别是,性质不同、目的不同、特点不同,具体如下:
一、性质不同
1、压力测试
压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下*作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。
2、负载测试
负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
3、并发测试
指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
二、目的不同
1、压力测试
目的是在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。
2、负载测试
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
3、并发测试
测试目的并非为了获得性能指标,而是为了发现并发引起的问题。
三、特点不同
1、压力测试
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
2、负载测试
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
3、并发测试
在具体的性能测试工作中,并发用户往往都是借助工具来模拟的,例如LoadRunner性能测试工具中叫做虚拟用户,因为实际情况中去实现同时多人并发的测试环境要求比较高而测试成本高、测试时间也是比较长。
参考资料来源:百度百科-压力测试
参考资料来源:百度百科-负载测试
参考资料来源:百度百科-并发测试
压力测试服务器性能指标都有哪些
吞吐率
指的是服务器处理并发请求的能力,计算公式:总请求数/完成所有请求花费的总时间。
并发连接数、并发用户数
并发连接数指某个时刻服务器处理的连接数,此概念的某个时刻是一个特定的时间点。
并发用户数的概念和并发连接数密切相关,并发连接数一定大于等于并发连接数,一个用户可能同时发送多个并发请求。
用户请求平均等待时间
计算公式:处理完所有请求花费总时间/并发用户数。
服务器平均请求等待时间
计算公式:处理完所有请求所花费时间/总请求数。
网站服务器如何做访问压力测试
网站服务器的压力测试我觉得主要有一些几点。
1.协议这边基本上以http或者https为主了,如果使用其他协议需要分析其打解包的方法。
2.要产生一定的压力,压力源这边一定要有保证。一般都是用机器人来模拟压力,关于机器人的逻辑可以根据具体业务来开发。
3.需要观察在一定压力下,服务器的各项性能指标(cpu,内存,IO,网络流量)进行观察,比如内存是否有泄漏,cpu利用率过高的情况。
4.压力测试应该是一个持续性的过程,在这个过程中需要统计服务器的性能数据,包括tps,以及机器的负载情况等。据此可以分析服务器的瓶颈在何处,后续可以针对优化。
5.目前大部分的服务器都部署在Linux系统上,测试同学还需要掌握相关的Linux命令以便可以更好的测试。
如果你觉得前面的太麻烦,可以来WeTest服务器压力测试高并发,实时性能报表,专家级性能优化建议,目前我们正在做网站压测这一块,你要做的仅仅是填下被测的URL即可,压力源、数据统计这些琐碎的工作交给我们就行了。
怎样测试服务器压力
下载并安装WAST;
1.设置并行连接数;
2.设置持续时间;
3.其余设置;
注:所有以上的选项可以根据自己的需要进行设置。
设置完成后就可以进行压力测试。测试的步骤如下:
第一步,点击工具栏上的“New Script”按钮,在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的Server中填写要测试的服务器的IP地址。这里我们填写192.168.1.20。在下方选择测试的Web连接方式,这里的方式Verb选择get。Path选择要测试的Web页面路径,这里填写/Index.asp即动网的首页文件,WAST可以设置更多的Path。
第二步,在“Settings”功能设置中将Stress Level(Threads)线程数设置为1000。然后点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经达到100%,损耗率达到最大。在CMD窗口中使用命令netstat-an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接,而且Web网站已经打不开了,提示过多用户连接。
本文链接:http://www.hzrhc.com/html/87965682.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。