(1)jmeter的压测报告(聚合报告)我们通常会关注指定时长我们的接口总请求数是否在正常的范围内(例如:100的并发持续30秒,总请求数300不到,可能原因是因为接口响应时间过长)
(2)响应时间我们通常是关注90%的响应时间,根据90%的响应时间来判断是否达到执行的性能指标(标准的响应时间指标不会超过1000ms,根据用户体验角度来看响应时间在2000ms左右为良好,可以接受的范围)
(3)吞吐量=总请求数量/请求时间,请求数正常的情况下,吞吐量越高说明性能越好
(4)外网压测在并发场景下,可能出现部分报错,大多为连接重置或连接超时、本地端口号被占用等情况导致报错,除此之外可能还有一些接口业务逻辑层面的报错,这些则是需要开发修复或者优化的问题,我们需要去分析报错的类型和报错的原因
内网压测的并发场景下,因为跳过了网络层的介入,报错会非常少,基本上都是都是接口逻辑层面的报错内容,需要特别注意
(1)在压测执行的过程中我们需要关注到施压的机器终端自己的硬件资源状况,例如本地的CPU和内存,如果两者中有一项一直占用在100%,说明你的机器很可能已经到了瓶颈,压测出来的结果会较差(例如请求数上不去)
a.Windows系统打开任务管理器,可查看终端的CPU以及内存等性能的损耗
b.Linux系统可通过free命令查看内存,top命令查看CPU的资源损耗,speedtest-cli安装插件之后iftop监控网络资源占用
(2)如果本地的压测终端CPU和内存都不高,但是我们的请求数一直上不去(例如:100并发和300并发相同时间内总请求数量相差不大),这时候我们可以检测一下当前网络的上传/下载的带宽是多少
a.网络带宽的检测可通过第三方软件(腾讯电脑管家、360管家)或者网站在线测速的方式去查询
(3)我们在压测过程中可以找到对应的进程检测到任务管理器的“网络”列的波动数值,再通过网站在线转换的方式转换成Mb流量单位,根据当前网络的带宽计算出当前的速率和总带宽的占比(同一局域网络状态下需要考虑多台设备),如下图:
(1)压测开始之前,我们如果不清楚服务器大致能承载的量,尽可能的以最低的基数先看下服务器资源的情况(例如:先并发100或者200,看下服务器各项资源的波动,再决定增加多少)
(2)压测开始之前还需了解服务器的架构部署情况(可能服务A是部署在多台服务器上的,也可能会涉及到服务B,而服务B又部署在另外的服务器上的)监控到每台服务节点
(3)压测开始之前还需根据所有需要监控的服务器记录压测开始的时间(按照业务流程可能有多个运行的场景),运行的时长,以及并发数量,用于后面方便查看服务端的资源损耗和数据统计
(4)压测开始之后建议持续关注服务端(服务器/数据库)的资源损耗,如果达到预警值(80%)建议停止运行脚本,尽量避免服务崩溃
(5)如果提升了并发数性能压测结果不理想,且确定压力机终端本地资源充足,网络带宽足够的情况下,可能需要从服务端的性能损耗分析
a.查看所有服务器节点和数据库的CPU和内存损耗情况
b.压力机带宽不够会导致请求数无法突破,同理服务端的带宽不够也会导致请求进不来的情况
c.数据库和服务器资源损耗,都会有一个最大的连接数设置来拦截并发场景下过多的请求,如果达到瓶颈,可能也会导致压测结果数据上不去
内网压测(局域网):与服务器在相同的局域网范围内做压测。
外网压测(广域网):不在和服务器在相同的网络范围内做压测。(一般压测都是在外网)
(1)范围大小的区别
局域网(LAN,又称内网)相对于广域网(WAN又称外网)而言,主要是指在小范围内的计算机互联网络。这个“小范围”可以是一个家庭,一所学校,一家公司,或者是一个政府部门。BT中常常提到的公网、外网,即广域网(WAN);BT中常常提到私网、内网,即局域网(LAN)。
(2)IP地址的区别
广域网上的每一台电脑(或其他网络设备)都有一个或多个广域网IP地址(或者说公网、外网IP地址),广域网IP地址一般要到ISP处交费之后才能申请到,广域网IP地址不能重复。
局域网(LAN)上的每一台电脑(或其设备)都有一个或多个局域网IP地址(或者说私网、内网IP地址),局域网IP地址是局域网内部分配的,不同局域网的IP地址可以重复,不会相互影响。
(3)传输速率的区别
由于较小的地理范围的局限性,局域网(LAN)通常要比广域网(WAN)具有高得多的传输速率。例如,LAN的传输速率为10Mb/s,FDDI的传输速率为100Mb/s,而WAN的主干线速率国内仅为64kbps或2.048Mbps,最终用户的上限速率通常为14.4kbps。
(4)请求方式的区别
外网的用域名+路径的方式去请求;
内网是IP+路径或者IP+端口号+路径的方式请求接口
(5)网络请求的过程不同
外网的HTTP请求接口,可能会经过域名解析服务、路由器、运营商、再到运营商等很多的网络路由节点,再到数据通过相同的路由过程发送到终端,链路长
内网的HTTPi请求接口的过程是跳过网络层的多个解析和路由的节点,再按顺序去请求到应用层,节省了大部分的时间,完整的请求到响应的时长会更加快速