4.1 吞吐量

系统的抗压能力,可以理解为系统每秒钟能接收和发送的数据量。

其中,涉及以下两个重要的指标。

4.1.1 TPS

英语全名叫TransactIOn Per Second,是指每秒钟能处理的事务数量。

一般TPS是对整个系统而言的,一个应用系统1S能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求。例如请求,处理,响应等处理。

4.1.2 QPS

英语全名叫Queries Per Second,每秒钟处理完的请求数量。

注:

这里的Q不是指query查询的意思,而是指request请求。所以如果理解为系统每秒处理的查询数量是不对的。必须是系统处理完的请求,而不是能接受的请求,这里必须包含用户的等待时间。

处理完成具体是指用户发出请求到服务器成功返回响应。对于没有resp的情况,可以理解成Server端有一个计数器counter,每处理完一个请求 1,1s后的counter就是QPS。

4.1.3 TPS和QPS的关系

TPS和QPS的之间的换算关系,是由具体的业务场景来确定,没有通用的公式,通常一个事务包含多次请求。

4.2 并发数4.2.1 并发用户数

并发用户数是指在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。

并发用户数的统计方法目前还没有准确的公式,不同系统会有不同的并发特点。例如,OA系统统计并发用户数的经验公式为:使用系统的总用户数量*(5%~20%)。不要过于关注计算的结果,因为为了保证系统的扩展,测试时的并发用户数要稍微大一些,除非是要测试系统能承载的最大并发用户数量。

4.2.2 并发连接数

并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。

并发连接数就是每秒钟服务器连接的总TCP数量。

4.2.3 并发请求数

并发请求数是指每秒能处理多少请求。请求指的是客户端在建立完连接后,向http服务发出请求且服务器返回了响应结果。

4.2.4 并发线程数

每秒钟能够处理完成的线程数量。

4.2.5 最佳衡量标准

上述有4种并发数据,哪一种更合适呢?

实际中,我们是衡量服务端的性能,因此选择并发线程数

4.3 响应时间

英文全称是Response Time,简称RT,是指处理一次请求所需要的的时间。

4.3.1 平均响应时间

通常我们会使用平均响应时间来进行衡量,平均响应时间是指单位时间内处理一次请求的平均时间。

4.3.2 阿姆达尔定理

阿姆达尔定律(Amdahl's law) 由计算机科学家 Gene Amdahl 在 1967 年提出,旨在用公式描述在并行计算中,多核处理器理论上能够提高多少倍速度。

具体公式如下:

软件系统实施标准(软件系统衡量标准)(1)

其中,

软件系统实施标准(软件系统衡量标准)(2)

是指最大性能提升值,

软件系统实施标准(软件系统衡量标准)(3)

指的是需要提高性能的部分,s指的是实现增强后 p 的性能增益因子。

那么,在本文中,平均响应时间优化前后的公式如下:

软件系统实施标准(软件系统衡量标准)(4)

其中,

软件系统实施标准(软件系统衡量标准)(5)

是指优化后的平均响应时间,

软件系统实施标准(软件系统衡量标准)(6)

是指优化前的平均响应时间。

举例说明:

如果可以改进的部分占整个系统的70%,则p=0.7,并且对于一个系统,其性能可以提高一倍,则s=2,那么计算出来的最大性能提升值为:

软件系统实施标准(软件系统衡量标准)(7)

算出来的值为:1.54

那么,

软件系统实施标准(软件系统衡量标准)(8)

因此,在优化时,会选择p最大的部分优化。有些IO场景较多的场景,要着重优化。

4.4 可靠性4.4.1 可靠性指标

可靠性指标可以被定义为在使用条件和规定时间内,产品完成规定功能的能力。

软件系统实施标准(软件系统衡量标准)(9)

串联系统的可靠性为:99%×99%×99%×99%×99%≈0.95,因此串联系统越多越不可靠。

软件系统实施标准(软件系统衡量标准)(10)

并联系统的可靠性为:1 - (1- 99%)× (1- 99%)× (1- 99%)× (1- 99%)× (1- 99%)≈0.99999,因此并联系统越多越可靠。

4.4.2 如何提高系统可靠性
  1. 通过消除单点系统,提高系统的可靠性。
  2. 通过主备和冗余原则,提高系统的可靠性。
  3. 通过将串联系统化解为并联系统,提高系统的可靠性。
,