系统的抗压能力,可以理解为系统每秒钟能接收和发送的数据量。
其中,涉及以下两个重要的指标。
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 年提出,旨在用公式描述在并行计算中,多核处理器理论上能够提高多少倍速度。
具体公式如下:
其中,
是指最大性能提升值,
指的是需要提高性能的部分,s指的是实现增强后 p 的性能增益因子。
那么,在本文中,平均响应时间优化前后的公式如下:
其中,
是指优化后的平均响应时间,
是指优化前的平均响应时间。
举例说明:
如果可以改进的部分占整个系统的70%,则p=0.7,并且对于一个系统,其性能可以提高一倍,则s=2,那么计算出来的最大性能提升值为:
算出来的值为:1.54
那么,
因此,在优化时,会选择p最大的部分优化。有些IO场景较多的场景,要着重优化。
4.4 可靠性4.4.1 可靠性指标可靠性指标可以被定义为在使用条件和规定时间内,产品完成规定功能的能力。
串联系统的可靠性为:99%×99%×99%×99%×99%≈0.95,因此串联系统越多越不可靠。
并联系统的可靠性为:1 - (1- 99%)× (1- 99%)× (1- 99%)× (1- 99%)× (1- 99%)≈0.99999,因此并联系统越多越可靠。
4.4.2 如何提高系统可靠性通过消除单点系统,提高系统的可靠性。通过主备和冗余原则,提高系统的可靠性。通过将串联系统化解为并联系统,提高系统的可靠性。