压力测试需要关注三个方面:如何正确产生压力、如何定位瓶颈、如何预估系统的承载能力
产生压力的方法 通常可以写脚本产生压力机器人对服务器进行发包和收包操作,也可以使用现有的工具(像jmeter、LoadRunner这些),所以说产生压力其实并不难,难点在于产生的压力是不是真实地反映了实际用户的操作场景
性能问题 TPS、响应时延等性能数据,关注系统的CPU、内存、IO、网络,对比在tps、时延达到瓶颈时这些系统数据的情况,确定性能问题是系统哪一部分造成的,然后再回到代码的逻辑中逐个优化这些点。
性能测试,难点在于你确认要测什么?是压力测试还是负载测试
确定测试策略和测试指标。也就是在性能测试中常说的测试场景
再次确认测试环境,内网,无网络问题,带宽足够,线上,线下服务器配置相同,架构同样。缓存设置,等等一系列
工具 简单的AB WB JM 复杂的LR
性能测试的实施阶段。后续还有调优,复测。。
5种协议:HTTP、HTTPS、WebSocket、Socket、MQTT
加密:AES、DES、RSA、MD5、SHA1,自有加密算法包调用
性能指标:并发用户数、错误率 、吞吐量、每秒点击数、每秒响应数、事务平均响应时间、每秒事务数、每秒事务总数等
基础硬件指标:CPU、内存、磁盘、网络流量、网络连接等
资源细分指标:HTML、图片、JS、接口等响应时间精确详细
性能指标 访问量,响应速度、容错能力、运行状态和响应时间
CMD 窗口中使用命令 netstat -an
用VPS或者独立服务器搭建网站
Webbench,Apache Bench,http_load是三款比较流行的网站服务器压力Web性能测试工具
(受网络等各种因素的影响,测试结果不一定很准确)
apache自带的工具ab测试. 也可以试试http_load;
Apache Bench又叫做AB,是Apache 附带的一个小工具,
专门用于 HTTP Server 的benchmark testing,ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问,可用来测试Apache的负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。
Webbench是由Lionbridge公司开发出来的一个网站压力测试工具,可用于测试ASP,PHP,JAVA,CGI等服务器压力,
也可用于SSL的安全网站的负载能力进行测试,最多可以模拟3万个并发连接去测试网站的负载能力,
Webbench操作简单,一行命令就可以显示出服务器压力。
http_load这是国外一个博主开发的基于linux平台的性能测试工具,主要是以并行复用的方式运行,
可以用来测试web服务器的吞吐量与负载,测试结果一目了然。Apache Bench,Webbench,http_load这三款网站服务器压力测试工具还要根据测试者的主机性能来决定参数,防止把测试主机给搞成死机了。
Siege 开源的压力测试工具, 根据配置对一个WEB站点进行多用户的并发访问,
记录每个用户所有请求过程的相应时间,在一定数量的并发访问下重复进行