PTS是一个性能测试工具,可以使用PTS对自身系统性能在阿里云环境里的状况进行整体评估来找出你的系统性能瓶颈从而优化系统,同时你还可以在了解自己的系统性能指标情况下便于未来新增扩容。在使用PTS前你必须得有自己已购的ECS和RDS作为测试机...

PTS是一个性能测试工具,可以使用PTS对自身系统性能在阿里云环境里的状况进行整体评估来找出你的系统性能瓶颈从而优化系统,同时你还可以在了解自己的系统性能指标情况下便于未来新增扩容。在使用PTS前你必须得有自己已购的ECS和RDS作为测试机,PTS不能对阿里云外的站点进行压测。PTS的使用实际上非常简单,通过五步即可完成性能测试,下面是我对PTS使用过程中的简单评测: ZJ*g))k7

XB59Vm0E=

NnT g3:.

1、环境管理: D BE4&

Presto压测 pts 压测_系统性能

图片:1-概览.png

&<RpWAk{

U.!lTLjfLz

图1 UMl#D>:C<

点击“管理环境”即可开始选择测试机,你可以选择目前在用的任何一台或多台ECS、RDS作为测试机,如果你在用SLB,可以将SLB作为测试机。 ]n."<qxeT

Presto压测 pts 压测_系统性能_02

图片:2-测试环境(测试机).png

PjA6Ji;Hu

Z_1U9+,

图2 G)v#+4

测试机选择 kVK/9dy-F

Presto压测 pts 压测_Presto压测_03

图片:3-测试环境选择后.png

\.YS%"Vz

Tm_B^W}

图3 ]I3!fEAWR

测试环境选择后 EnOU?D

此次测试PTS,我仅选择了目前在用的3台ECS中的一台作为测试机,RDS选择的是用于ACE上的共享型,没敢拿已购的生产型RDS和ECS来评测。 iu&wO<)+?

b)(?qfXWP

m3Il3ZY.

2、脚本创建: ZaNQpH.

创建一个CVS文件,里面输入脚本参数,本次我以商品查询为例,包括品名、价格和数量三项参数。 8JmFi

Presto压测 pts 压测_迭代_04

图片:4-cvs脚本参数.png

~/.7l8)

,U(1NK8o

图4 _6ay-u

打开新建脚本页,输入脚本名并上传先前准备好的CVS脚本参数文件。然后添加事务项,请求的URL必须是放在测试机ECS上的,否则创建失败。你可以选择get或post这两种请求方式中的一种,一般用GET,看你要测试的应用自行选择了。都填好后,点保存即可完成脚本创建。 >4t+:Ut:

Presto压测 pts 压测_迭代_05

图片:5-新建脚本.png

(?nCyHC%g

/0Ax*919j

图5 U8nH;}i

h@a+NE8

-[-wkC8a

3、场景创建: uu`G 2[t

新增场景创建,这里可以设置模拟场景的压力情况。脚本名选择先前创建好的脚本,然后选择施压模式。常规模式是一次性加载所有用户;目标模式是达到指定目标阈值后就停止压测;迭代模式是分批增加或减少用户。视自己的应用情况选择吧,在此我选择的是迭代模式,每个6秒增加一个用户,逐步增加用户数至20个,免费版目前只能最高测试100个用户数,对于较大应用的测试来说是不够用的,官方说的是100个以上以后会收费开放。 l+V>]?j

Presto压测 pts 压测_RDS_06

图片:6-新增场景.png

qgfi\/$6

i[ mEi|

图6 R=jI?p

I'LnI*

%f]:I

4、任务创建: DY`kx2e!

创建任务并执行测试。任务执行需要绑定场景,一个任务可以绑定多个场景,任务开始执行后可以实时查看性能指标。选择要开始的时间,时间一定要选为你能完成整个PTS设置后的时间,否则就无法启动了。然后填入您想测试的总时间,这里我用10分钟来测试,20个用户数每隔6秒增加一个,5分钟的测试时间足够了,以免影响ECS的正常运行。选择监控机和场景绑定并保存后就完成任务创建等待测试了,是不是很简单! H-$)3"K

Presto压测 pts 压测_Presto压测_07

图片:7-新增任务.png

=uS9JU^E

Ftr5k^!

图7 mGK|ihYu

n^g|Ja

9?SZNL['V

5、任务执行: ;<ZLcTL

完成任务创建后即可看到如下图所示测试任务列表,您可以临时停止测试,也可以查看每隔10秒刷新一次的实时监控曲线图。 $69oV:

Presto压测 pts 压测_迭代_08

图片:8-测试任务列表.png

+8RgF

85LAYaw

图8 r/u A.Aou^

I+tb[*X+

]d!UJ&<?

6、监控及结果: >LOjV0K/

Presto压测 pts 压测_RDS_09

图片:9-tps实时监控.png

N/MUwx;P

!:q/Ye3.

图9 ~?K~L~f5

Presto压测 pts 压测_迭代_10

图片:10-响应时间监控.png

WE:24b6

hhCrUn"

图10 B><d9d

Presto压测 pts 压测_RDS_11

图片:11-并发用户数监控.png

^hZ0IM

n>BkTaI

图11 [YlKR'_

Presto压测 pts 压测_系统性能_12

图片:12-请求状态监控.png

:bwjJ}F

\hDlTp}

图12 '>-gi}z7

10分钟后测试结果就出来了,以下是结果截图。让我没想到的是ACE用的共享性RDS+最低配ECS的抗压能力真的很弱,在第8分半钟时出现了失败指标,并且一直持续到测试结束,此时ECS的CPU早已100%挂满了,跟RDS应该没关系,主要还是ECS单核CPU性能太低,加上才512M的内存,仅仅20个迭代用户数就扛不住了。 *U&0<{|T

Presto压测 pts 压测_系统性能_13

图片:13-测试结果.png

ywGd>@

2mVD_ s[`

图13 2bw_IT

PgtJ3oq[}

"{@A5A

总结,PTS我觉得最大的意义还是在于方便对自己的ECS等等服务的适当扩容升级,在了解压力极限值的情况下,可以在性价比的前提下进行扩容。PTS使用非常简单,任何人都可以很容易上手,有了PTS你可以很好的了解您现在所用的服务器系统到底能抗多少流量,而不用在像以前一样需在本地模拟测试了,本地模拟测试的准确性跟PTS肯定是没法比的了。PTS对于大型网站的意义要比中小型大的多,有了这货,CTO该乐了!