传统软件项目微服务化升级系列-压力测试

2018-10-13 20:58:00
CJL
原创
4164

  压力测试一般包含压力测试、性能测试、负载测试;虽然测试的目的不同,但方法基本一样只是关注的指标不同。

我们一般通过工具模拟用户访问进行测试,关注以下指标:


1.TPS

每秒钟完成的web请求响应数量

TPS=并发数/响应时间

TPS是衡量系统性能的重要指标


2.并发数

时间段内,系统同时处理的web请求响应数量


3.响应时间

所有web请求处理完毕的时间


4.吞吐量

吞吐量指的是单位时间系统传输数据总量。

可知吞吐量和TPS,并发数这两个因素是正比关系。

但是当TPS,并发数达到极限值时,吞吐量不升反降,这是因为系统资源产生了大的消耗。


5.PV

页面浏览量。服务器页面每刷新一次,算作一次PV流量。

IP/PV比:指的是单个IP页面浏览量,该指标可以说明此次访问有效率。


6.计算服务器数量

上述指标一个重要的作用是计算所需服务器数量。

关于PV,我们需要知道一个原则:每天80%的访问集中在20%的时间里,这个时间叫做峰值时间。

确保在峰值时间里,服务器能扛起并发访问的压力就可以了。


如:每天300W PV的单台服务器,这台服务器需要多少TPS?

(300W*0.8)/(24h*60*60*0.2)=139(TPS)


如果一台机器的TPS是58,需要几台机器支持?

139/58=3


7.TPS测量方法

可以使用http_load,webbench,ab等压力测试工具进行测量。

产生压力后,我们可以拿到TPS,响应时延等性能数据。具体如何定位性能瓶颈产生的原因,

需要我们主动在服务器,代码层上进行优化。


下面我们以jMeter为例对web和数据库进行压力测试

一、安装:

教程:https://www.yiibai.com/jmeter/jmeter-features.html 可以在选项-选择语言-选择中文 切换到中文界面

服务插件安装:https://blog.csdn.net/qq_39247153/article/details/79373916 这篇文章已过时。我使用以下方法安装的(https://jmeter-plugins.org/wiki/PerfMon/)

1、安装服务器端 https://github.com/undera/perfmon-agent/blob/master/README.md

安装服务器端的时候需要注意启动端口防火墙需要放开访问

2、安装客户端:先安装插件管理器 (https://jmeter-plugins.org/install/Install/)再通过插件管理器安装PerfMon (Servers Performance Monitoring) 选项-pluginmanager-available plugins-搜索servers

二、测试计划

参考教程创建自己的测试计划,一般根据实际情况选取请求。比如登陆、查看列表、添加数据、随机方法内容页面等。创建测试计划的时候可以添加随机时间与负载进去进行模拟用户的访问。

线程组可以设置个数模拟用户数。


三、测试样例

http1.1\http2.0\mysql\mycat\tidb


四、分析样例

1、apache和nginx对比

服务器是1核2G内存机械硬盘配置,运行程序为yii2框架应用程序,包括登陆、列表、静态页面

50线程nginx

50线程apache


发表评论
评论通过审核后显示。
流量统计