内网压测VS外网压测
一般toC的客户端在上线之前,总免不了压力测试和性能测试的过程,这就涉及到压测环境的部署了,主流观念一般有两种。
内网压测
排除网络等外界因素的干扰,考虑程序的极限。外网压测
尽量还原真实的环境。
压力测试
压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。
从压力测试的定义来说,其实尽量还原真实的环境是有意义的。
响应时间
响应时间
(RT)是指用户从客户端发出请求到接收完服务器返回结果的整个过程所需花费的时间,包含网络传输时间以及服务器处理时间。
从用户角度来看,响应时间应该从客户端计算机处理用户操作并发出请求到客户端程序收到服务器端返回结果并显示出来的时间。不同行业、业务对于这个指标的要求也不相同,比如
- 互联网企业,500ms以内,比如淘宝,APICall的业务消耗平均在30~40ms,开放平台当时的平台处理消耗平均在10ms左右
- 金融行业,一般在1s以内,比如转账、汇款等。
- CRM,TMS等内部的功能平台,一般在2s以内,业务员可以等待,用户不能等。
并发用户数
并发用户数
是指在一定时间内,某一时刻同时与服务器进行会话操作的用户数。
系统用户数
同时在线用户数
业务并发用户数
吞吐量
吞吐量
是指单位时间内,系统处理用户的请求数或页面数量,可以直接反映出软件的承载能力。
- 指标上,利用每秒钟的
请求数
(QPS)或页面数量
(PPS)衡量吞吐量; - 业务上,也可以用每天的
访问人数
或每小时处理的业务数
来衡量;
资源利用率
资源利用率
是指系统资源(CPU、内存)的利用率,通常用资源的实际使用量与总的资源可用量比值来衡量,
- 网络
- 操作系统
IO
、CPU
、MEM
、连接数等 - 数据库
- 其他
可扩展指标
可扩展指标
是指应用软件或操作系统以群集方式部署,增加的硬件资源与增加的处理能力之间的关系。
随着分布式应用越来越多,可扩展成为一个重要的指标。我们的理想总是,服务器翻倍,那么处理能力也跟着翻倍
,其实很难很难。是不是联想到某些云环境上的弹性扩展
了?
简单说下公式: (增加性能/原始性能)/(增加资源/原始资源)*100%
一般来说,扩展能力至少在70%以上才算合格。
可靠性指标
目前,云上环境使用的服务的可靠性主要依靠云服务商来支持,这也导致我们经常忽略这个指标。它,很重要。
其他
通常由于网络带宽的影响,导致服务器很难在这种情况下承受足够的压力,也就很难暴露一些程序上的问题。所以,有人提出了内网压测
的说法。
内网压测
这类测试主要排除了网络带来的影响,而专注于服务器和程序性能。目的也是为了尽量在系统上线前暴露尽可能多的问题,特别是有时候压测结果不符合预期,甩锅给网络
的情况下,可以用来打脸
。
- 考量程序是
CPU密集
还是IO密集
,主要瓶颈在什么地方。 - 大量的数据更容易凸显出程序上的BUG,比如线程、连接池等。
一个更好看的压测结果
,可能这个是最重要的……- 云上环境也是对服务器硬件能力的一个考量。
外网压测
外网压测的难度在于网络,一般和内网压测结果会有跳崖式的差距。
- 尽量模拟用户的网络环境,比如
移动宽带
、电信宽带
、联通宽带
等; - 尽量模拟用户的网络环境,比如
所在地山东
、所在地河北
、所在地广州
等; - 尽量模拟用户的网络环境,比如
4G
、5G
、Wifi
等;
对比
外网
和内网
的最大差距在于网络
,而网络延迟和抖动都很影响最终结果,但相对来说,外网压测
才是实际上真正有意义的。
但是,一个不太好的网络
的影响也是致命的,特别是在生产中忘记配置合适的带宽,而设置了1Mbps
的小水管。
云上环境,对于不同地方的用户来说,不同IP的网络情况也都不太相同。
标签:压测,网络,用户,外网,内网,用户数 From: https://www.cnblogs.com/wangjunjiehome/p/17139822.html