网站压力测试中,如何做点击率测试?能尽量详细越好,谢谢!!

网站压力测试中,如何做点击率测试?能尽量详细越好,谢谢!!,第1张

看网址 Web服务器搭建完成上线在即,其能够承载多大的访问量,响应速度、容错能力等性能指标,所有这些是管理人员最想知道也最为担心的。如何才能知晓这一切呢通过工具进行Web压力测试是个好方法。通过它可以有效地测试Web服务器的运行状态和响应时间等性能指标。
一、测试环境:
hardsoft:CPU:Athlon XP2500+、内存512MB、硬盘80GB
Server OS:Windows Server 2003
IIS: 60
BBS: 动网 70
IP: 192168120
Tool:Web Application Stress Tool
二、工具介绍
可用来进行Web压力测试的工具有很多,比如微软的Web Application Stress、Linux下的siege、功能全面的Web-CT等等,这些都是非常优秀的Web压力测试工具。虽然这些工具给我们测试服务器承受能力带来方便,但是它们却是“双刃剑”,攻击者利用随便一种比较全面的测试工具就可以对一台小型的Web服务器发动灾难性的拒绝式攻击。
下面笔者就以微软的Web Application Stress Tool(简称WAST)为例进行一次Web压力测试。这是由微软的网站测试人员开发的专门用来进行实际网站压力测试以一套工具。透过这套功能强大的压力测试工具,管理人员可以在网站实际上线之前先网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。
三、工具设置
下载并安装WAST,过程及其简单。然后运行WAST可以看到其界面非常简洁,在对目标Web服务器进行压力测试之前,首先要对它进行一些必要的设置。
1、设置并行连接数
点击左侧的“Defaults→Settings”打开设置面板。在Concurrent Connections下进行并行连接设置。Stress level (threads)是最少线程,Stress multiplier是最大线程。这里的线程是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连接,一般填写 500~1000,因为这个线程数是根据本机的承受力来设置的,如果你对自己的机器配置有足够信心的话,那么可以设置得更高一些。(图1)
图1
2、设置持续时间
在“Test Run Time”中用来指定一次压力测试需要持续的时间,分为天、小时、分、秒几个单位级别,比如我们设置为1个小时。(图2)
图2
3、其余设置
“Rpquest Delay”设置延迟时间,我们设置为100~500。“Suspend”设置设定挂起时间,Warmup时间是初始化测试运行时间,cooldown时间就是指定结束阶段的测试时间。Bandwith”指定带宽瓶颈,允许你模拟从144 Kbps的modem连接到T1 (15 Mbps)的Local Area Network (LAN)连接的网络带宽。Redirects设置重定向时间,“Throughput”设置用户、密码页面状态保存等是否启用,“Name resolution”设置是否进行名称解析。所有以上的选项大家可以根据自己的需要进行设置。(图3)
图3
四、压力测试
设置完成后就可以进行压力测试,测试的步骤如下:
第一步:点击工具栏上的“new script”按钮在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的server中填写要测试的服务器的IP地址,这里我们填写192168120,在下方选择测试的Web连接方式,这里的方式Verb选择get,path选择要测试的Web页面路径,这里填写/Indexasp即动网的首页文件,WAST可以设置更多的Path。(图4)
图4
第二步:在“Settings”的功能设置中将Stress level (threads)线程数设置为1000。完毕后,点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经 达到100%,损耗率达到最大见图5。在CMD窗口中使用命令netstat -an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接见图6,而且Web网站已经打不开了,提示过多用户连接。(图5)(图6)
图5
图6
总结:通过Web压力测试,管理员对Web服务器的抗压能力有了大概的把握,从而根据实际需要可以进行服务器硬件扩展,同时也为系统设置、软件选择等提供了依据。总括来说,在Web服务器正式发布前进行压力测试是非常必要的。

由于kafka吞吐量特别大,所以先考虑集群服务器的自身瓶颈,因为现在测试的是单机所以只会涉及到磁盘IO以及cpu,但是对于kafka来说对于cpu的使用还是可以忽略不计的,

11磁盘IO写入瓶颈
使用以下命令测试磁盘IO的写入瓶颈
sync;time -p bash -c "(dd if=/dev/zero of=testdd bs=1M count=20000)"
说明: 在当前目录下创建一个testdd的文件,写入20000个1M的数据
磁盘写入IO的结果
可以看到平均就是187MB/s

12 使用iostat命令监测磁盘io情况
使用命令
# iostat -x 1
说明: 扩展查看io性能,每秒刷新一次
注意: 如果没有iostat,请执行 yum install sysstat -y 进行安装 iostat命令

关注wkB/s和%util两个参数

wkB/s:每秒写入设备的数据量(单位:KB)

%util:消耗在I/O请求中的CPU时间百分比(设备带宽利用率)。如果该值接近100%说明设备出现了瓶颈。
如图现在这台机器的磁盘IO极限值为187MB/s

13 单机版测试kafka性能
因为测试的次数比较多,也没有去找kafka中数据存储设置,所以就使用docker部署单机版的kafka (因为测试的数据比较多,也就多次的删除了容器,重新启动镜像)
新建目录:
mkdir /usr/local/kafka_test
dockerfile

runsh

sourceslist

目录结构如下:

生成镜像
docker build -t kafka_test /usr/local/kafka_test
启动kafka
docker run -d -it kafka_test

测试结果

从表格中可以看出来五个分区就已经是极限了

结果分析
这中间并没有设置条数/每秒,所以就是按照kafka 就会按照量级自动的吞入数据,如果我们需要对于消息的即时性做控制,还需要再重新测试一下,按照业务的延迟找到最合适的数量(单机版,然后再部署集群,测试适合的数量)

集群测试:
部署就不再这里说明了
本次测试的是三台机器集群

测试结果:

之后还测试了9个分区的topic 因为空间不足所以就没有继续测下去,但是看部分数据还超过了500MB/s还是有上升空间的

13 磁盘IO 读取瓶颈
使用一下命令测试磁盘IO的读取瓶颈
hdparm -tT --direct /dev/vda
说明: hdparm命令是显示与设定硬盘的参数, -t参数为评估硬盘的读取效率(不经过磁盘cache), -T参数为评估硬盘的读取效率(经过磁盘cache)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12629902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存