当前位置:首页 » 云服务器 » 服务器如何做压力测试

服务器如何做压力测试

发布时间: 2023-03-24 22:29:51

⑴ 如何对Tomcat服务进行压力测试

英文原文

如果你在测试一个由Tomcat servlet容器(或者Apache web服务器)组成的环境时,你很可能会碰到瓶颈,因为Tomcat servlet容器使用Apache JServ Protocol - AJP。所以,如果想要评估Tomcat引擎的性能的话,最合适的方式就是使用相同的AJP协议。

使用 Apache JMeter ,你可以通过采样器(sampler)模拟发送AJP请求并返回结果 -- 也就是AJP/1.3采样器。你也可以用这个JMeter采样器来压测WildFly,Jetty和GlassFish servlet等Web容器,它们都是用AJP协议。这篇文章将会讲解如何来进行测试。

AJP是一个致力于从web服务器路由请求到应用服务器的二进制通信协议。在web服务器和应用服务器之间通信,AJP协议比HTTP协议更加高效,因为它是使用了压缩的二进制协议。例如,对于一个请求方法(“POST”或者“GET”),AJP只需要一个字节来表示,并且每个请求头只需要两个字节。所以,需要发送的信息大大减少,也就是得每个请求的处理也更快。

请求的处理大致如下:

对于这闹段样的应用架构,JMeter AJP/1.3 采样器可以通过在你的系统上建立AJP连接,然后发送AJP请求到应用服务器,从而进行压测达到查找应用瓶颈的目的。

目前有3个版本的AJP协议 -- 1.2(废弃的),1.3 和 1.4(实验版本)。JMeter的AJP/1.3采样器支持1.3版本的AJP协议。

现在,我们来演示如何使用它。

AJP/1.3 采样器可以将这里设置的HTTP请求转换成AJP请求。正如你所看到的,它的界面和HTTP采样器的十分相似。

AJP 采样器有一个限制 -- 当前版本的实现不支持在一个请求里上传多个文件。只有第一个文件会被上传。必须使用多个AJP 采样器来上传多个文件。

现在,让岁燃我们来看看AJP 采样器在JMeter脚本里是如何工作的。首先,我们先在本地机器上启动一个Tomcat实例,然后配置它来发送POST请求。 Tomcat 9 默认就带了一些servlet示例,可以用来测试AJP请求。

我们的测试场景是:

接下来,我们会使用 AJP 采样器 来产生同样的请求。

在前面的章节里,我们的servlet可以接受两个参数并在结果里返回它们的值。现在,我们使用AJP 采样器来发送带乎弯虚参数的AJP POST请求,通过JMeter执行,并在相应结果里拿到我们在请求里设置的参数。

设置完成后的采样器如下:

6.现在,我们可以运行结果,并在监听器里查看结果。

现在,可以看到我们的采样器已经顺利地把带有我们设定的参数的AJP请求发送到我们的服务器上。并且,可以看到之前设置的参数都列在“Paramater in this request”部分 -- 这意味着我们的服务已经收到我们的请求了。

恭喜!你现在知道怎么压测AJP协议以及Tomcat服务了。为了更加方便地去执行你的测试,你可以将脚本上传到 BlazeMeter 上,然后直接在云上运行。你能够很方便的进行扩展,协同合作,并且可以得到高级的报表。

⑵ 如何用Jmeter做压力测试

在“服务器名称或ip”设置127.0.0.1,端口号设置:8080,“方法”设置post,路径设置网站登录的地址,如“/exam/operatorAction”。

登录需传入用户、密码。在“同请求一起发送参数”列表中添加参数。参数值根据web应用设置。如login_user=0001;login_password=1;actFlag=login。

一般网站登录后,在tomcat中生成了session,之后访问其他页面将无需再次登录,前提是浏览器需支持cookie。在jmap中也同样,如要继续访问其他页面,还需做下面关键的设置。

Apache JMeter

是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI 脚本、Java 对象、数据库、FTP服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

⑶ 如何做压力测试

一个压力测试的流程:

1、明确测试目标

2、制定测试计划

3、实施测试,收集参数

4、分析测试结果

5、给出优化方案

一 、明确测试目标:如果是客户的需求,那需要向客户确认,有清楚的性能指标参数,测试时就是保证系统达到该指标并能良好运转,即压力测试。如果是自己的系统需要有一个评估,那就需要完整的得到该系统的几个临界点,拿到完整的性能曲线,从而来分析部署情况,即为性能测试。不管是哪个,知道了需求,才能制定计划。

性能测试的目标是发现重大的系统瓶颈。你可以想象一个系统由一系列的瓶颈组成;发现并改善一个瓶颈往往会在其他地方产生一个新的瓶颈。例如,我曾为一运行微软Windows CE的器件部门工作。我们发现的第一大性能问题体现在某一具体硬件环境下的内存管理中。我们把问题分离出来,改善了内存分配的效率。尔后再次运行我们的测试,又找到了一个新的瓶颈,这次体现在网络吞吐量上(throughput)。解决了这个问题后,我们接着又为下一个瓶颈改善而工作,然后再下一个,直到整个系统都达到了性能目标。要记住的是:关键在于要尽早订立性能目标,否则你可能不知道什么时候该停止性能测试。

二、制定测试计划:确定使用什么工具,着重哪些参数,设置线程数,方法执行次数,执行时间,是否多个接口同时进行测试等等。

三、实施测试,收集参数:选一个施压工具,来向部署好的服务发起高并发请求,同时关注和收集性能参数。这个是我们花费时间最多的地方。通常该阶段需要反复执行,来得到想要的数据。通常来说,我们可以使用JMeter LR AB 自己写多线程等各种方式,之后介绍一下JMeter。

四、分析测试结果:即根据上一节的参数介绍来进行参数分析。

五、给出优化方案:如果是代码逻辑耗费cpu,就优化算法;如果是redis等数据库耗时,就增加节点,减少读取,读写分离,使用内存等;如果是外在条件限制,则与外部们沟通问题,共同优化等等。

⑷ 网站服务器如何做访问压力测试

网站服务器的压力测试我觉得主要有一些几点。
1.协议这边基本上以http或者https为主了,如果使用其他协议需要分析其打解包的方法。
2.要产生一定的压力,压力源这边一颤纤察定要有保证。一般都是用机器人来模拟压力,关于机器人的逻辑可以茄茄根据具体业务来开发。
3.需要观察在一定压力下,服务器的各项性能指标(cpu,内存,IO,网络流量)进行观察,比如内存是否有泄漏,cpu利用率过高的情况。
4.压力测试应该是一个持续性的过程,在这个过程中需要统计服务器的性能数据,包括tps,以及机器的负载情况等。据此可以分析服务器的瓶颈在何处,后续可以针对优化。
5.目前大部分的服务器都部署在Linux系统上,测试同学还需要掌握相关的Linux命令以便可以更好的测试。
如果你觉得前面的太麻烦,可以来WeTest服务器压力测试高并发,实时性竖耐能报表,专家级性能优化建议,目前我们正在做网站压测这一块,你要做的仅仅是填下被测的URL即可,压力源、数据统计这些琐碎的工作交给我们就行了。

⑸ jmeter模拟对网站做压力测试

一般的网站,在进入业务功能前先需登录,然后才能访问业务功能。基本框架如下

详细步骤:

1 .用badboy录制登录,访问随意一个网址。

2.用jmeter打开,一会自己写的时候可以参考里面的参数名称或路径什么的。如果对http熟悉可以省略这两部直接写脚本

3.新建一个线程组

选择 测试 计划,按右键-》添加-》threads(users)线程组

线程组能设置以多少个线程并发做压力测试。在”循环次数”设置不选择永远,循环次数设置1。

4.设置登录http请求,选择线程组,右键――添加――》sampler-―》http 请求。

在“服务器名称或ip”设置localhost或网址,端口设置:80,“方法”设置post,路径设置网站登录的地址。登录需传入用户、密码。在“同请求一起发送参数”列表中添加参数。参数值根据web应用设置。如login_user=0001;login_password=1;actFlag=login。具体怎么设置可以拷贝刚才录制的内容。

5.登录成功后,网站一般将跳入主页面。在jmap中可做判断,判断是否登录后按预想进入主页面(此步骤也可不设)。选择4中的“http请求“,右键――》添加――》断言――》响应断言。“Apply to”设置Main smaple only;“要测试的响应字段”设置“url样本”;“模式匹配规则”设置“包括”,“要测试的模式”增加页面跳转到的主页面

6.一般网站登录后,在tomcat中生成了session,之后访问其他页面将无需再次登录,前提是浏览器需支持cookie。在jmap中也同样,如要继续访问其他页面,还需做下面关键的设置。

选择“线程组”――》右键――》添加――》配置元件――》Http cookie管理器。加了此步骤后,http请求将具备cookie功能,即登录成功后访问其他页面将不会跳转到登录页面重新登录。

7.对目标页面反复压力测试。

7.1 如何使被测页面反复访问达到测压效果。选“线程组”―》右键――》逻辑控制源哗旁器――》循环控制器。循环次数中选择“永远”。

7.2 选择刚加的“循环控制器”,右键――》添加――》sampler-―》http 请求,按4步骤设置ip、端口,http请求方法为“get”,路径为被压力测试的url

按上面的设置后,已完成配置,可做压力测试。只需点菜单“运行”――》启动,即运行压力测试。

8.jmeter提供了许多压力结果查看工具。是压力测试时非常好的分析工具。下面几种查看工具可有选择的添加。

8.1 察看结果树。他记录每次请求发送数据、雹橡响应返回数据。选择“线程组”――》右键――》添加――》察看结芦橘果树。

8.2 用表格查看结果。可查看每次请求的响应时间等。选择“线程组”――》右键――》添加――》用表格查看结果。

8.3 Summary Report。可查看平均响应时间、最长响应时间等。

⑹ 游戏上线前服务器压力测试应该怎么做

对于游戏后台性能,评测标准不只单单是TPS(每秒处理多少个XX请求),因为当你的游戏服务器上线后,不存在一群玩家只发XX请求的压力场景。所以,游戏后台受到的现网请求压力永远是多场景混合的,在这样的压力下,后台能支撑多少人同时在线,才是一个游戏压测者需要得到的有价值的测试结论。
要得到可支撑的"最大同时在线人数",主要做好2件事:
1、设计你的类现网压力模型
在现网真实压力里,不论压力大小如何变化,现网环境如何变化,一个游戏类型和玩法设计定型后,永远有2个压力宏观数据保持不变:a. 各接口的压力比例不变, b.玩家平均每分钟操作频率不变。因此,压力测试目标就转变成了如何模拟符合ab数据的压力。
对于a,首先从同类型游戏或者本游戏内测阶段,日志插桩,收集各个接口的调用比例;然后,将接口比例转化为场景比例,如同时会有个2%完结登陆、15%玩家战斗、20%玩家拉取好友列表、10%玩家赌博(一个手游场景例子)。
对于b,同样在内测阶段收集玩家平均操作频率。
此时有了a和b,就可以构造出一分钟内玩家同时在线的真实压力模型了。
2、用压测工具构造出符合压力模型的压力
这个可以自己写,也可以使用现成的压测工具。现在市面上的压测工具很多,但很多都是专注于TPS这个参数,不符合游戏行业压测的关注点,同时在线人数。

⑺ 如何对服务器进行压力测试

http_load是基于Linux平台的一种性能测工具。它是以并行复用的方式运行,仅适用于Web页面的性能测试,不适用于访问数据库,而且测试结果分析是有限的,平台依赖Linux 。http_load可以简单地通过txt文本文件中记录的参数来对HTTP服务器进行压力测试,那是如何对服务器进行压力测试的呢?下面我们就来介绍 Linux中如何安装使用http_load对服务器进行压力测试的教程。 具体方法步骤如下: 1、下载 官方网站:acme/software/http_load/http_load-12mar2006.tar.gz tar xzf http_load-12mar2006.tar.gz 2、安装 代码如下: cd http_load-12mar2006 make 执行完make,会在当前目录生成一个http_load二进制文件。 3、使用方法 代码如下: root@www:~/http_load-12mar2006# 。/http_load --help usage: 。/http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file] -parallel N -rate N [-jitter] -fetches N -seconds N url_file One start specifier, either -parallel or -rate, is required. One end specifier, either -fetches or -seconds, is required. 主要参数说明: -parallel 简写-p :含义是并发的用户进程数。 -rate 简写-r :含义是每秒的访问频率 -fetches 简写-f :含义是总计的访问次数 -seconds简写-s :含义是总计的访问时间 选择参数时,-parallel和-rate选其中一个,-fetches和-seconds选其中一个。 4、示例: 代码如下: http_load -parallel 50 -s 10 urls.txt 这段命令行是同时使用50个进程,随机访问urls.txt中的网址列表,总共访问10秒。 代码如下: http_load -rate 50 -f 5000 urls.txt 每秒请求50次,总共请求5000次停止。 测试网站每秒所能承受的平均访问量: 代码如下: http_load -parallel 5-fetches 1000urls.txt 这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果: 1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026 seconds 6000 mean bytes/connection 17.2109 fetches/sec, 103266 bytes/sec msecs/connect: 0.403263 mean, 68.603 max, 0.194 min msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min HTTP response codes: code 200 — 1000 从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。

热点内容
socket编程php 发布:2024-05-03 20:12:50 浏览:207
坦洲邮政局可以解压吗 发布:2024-05-03 20:09:55 浏览:731
二级程序编译答案 发布:2024-05-03 18:41:35 浏览:654
领动自动精英版是哪个配置 发布:2024-05-03 18:37:30 浏览:151
java编译器中cd什么意思 发布:2024-05-03 18:36:00 浏览:390
传奇服务器如何刷钱 发布:2024-05-03 18:36:00 浏览:978
安卓版twitter怎么注册 发布:2024-05-03 18:28:05 浏览:894
Python逻辑优先级 发布:2024-05-03 18:26:14 浏览:268
linux查看svn密码 发布:2024-05-03 18:12:47 浏览:805
地铁逃生怎么进入游戏安卓 发布:2024-05-03 17:49:35 浏览:993