购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.2 访问的高性能

系统性能是影响用户体验的直接因素,谷歌针对网页的用户体验提出了一个指标——与下一次绘制的交互(interaction to next paint,INP),它会在网页的生命周期中记录用户与网页所有交互的延迟时间(包含输入延迟、处理延迟和展示延迟),以度量网页对用户交互的总体响应速度。低INP意味着网页能够可靠地响应用户交互。INP分为以下3个等级。

● INP小于等于200 ms:表明网页的响应速度良好,用户基本感知不到网页的刷新和渲染。

● INP大于200 ms但是小于等于500 ms:表明网页响应速度有一定的优化空间。

● INP大于500 ms:表明网页响应性差,用户体验也比较差,需要进行网页加载优化。

优化INP的方式是多种多样的,如减少请求服务端次数、优化接口响应时间、延迟加载、使用页面缓存等。在服务端优化INP是非常直接的方式之一,而优化接口响应时间一般有以下两个思路:

● 提高系统的并行能力,让系统在单位时间内能够处理更多请求;

● 缩短单次请求的响应时间。

下面分别介绍这两个思路。

1.提高系统的并行能力

阿姆达尔定律(Amdahl 's law)由吉恩·阿姆达尔(Gene Amdahl)在1967年提出,是描述计算机系统设计的重要定量原理之一。在高并发系统设计中,阿姆达尔定律描述的是在固定负载下,并发进程数与响应时间之间的关系。

在固定负载下,并行计算加速比(即进行并行化处理后,系统处理任务的效率提升情况)可以定义为 R R 越大表示并行化处理后效率提升越明显,即系统响应时间越短; R 越小表示并行化处理后效率提升越不明显,即系统响应时间越长。 R 可以用式(1.1)表示:

(1.1)

其中, 表示任务中串行进程的计算量, 表示任务中并行进程的计算量, n 表示并行化处理的节点个数。从式(1.1)可以推导出式(1.2):

(1.2)

其中, n 表示并行化处理的节点个数, p 表示并行任务数占总体任务数的比例。

p =1时,即任务全部是并行任务时, R = n ;当 p =0时,即任务全部是串行任务时, R =1,也就是完全无加速;当 n 趋近于无穷大时,也就是拥有无限个并行化处理节点时, R =1/(1− p ),此时 R p 正相关,即并行任务数占总体任务数的比例越高, R 越大。

2.缩短单次请求的响应时间

想要缩短单次请求的响应时间,首先要判断系统是CPU密集型还是I/O密集型的,因为优化不同类型的系统性能的方式不尽相同。

CPU密集型系统需要处理大量的CPU运算,因此选用更高效的算法或者减少CPU运算次数就是这类系统性能的优化方式。例如,如果系统的主要任务是计算哈希值,那么这时选用更高效的哈希算法就可以大大提升系统的性能。发现CPU过载问题的主要方式,是通过一些CPU剖析工具(如针对Linux系统的perf、eBPF、gperftools等)来找到消耗CPU时间最多的方法或者模块。

I/O密集型系统的主要特点是系统中请求的大部分时间都用在等待I/O读写操作完成。当前大多数互联网系统都属于I/O密集型系统。如果观察这类系统的运行指标,就会发现系统中计算资源的CPU使用率的峰值基本上在40%~50%,这就是因为系统中请求的大部分时间都用在等待I/O读写操作完成了,如等待数据库、缓存中的数据返回,或者等待依赖的其他服务的请求返回,CPU反倒处于相对空闲的状态。这类系统的优化方式多是减少I/O读写操作的次数和耗时,如优化数据库的慢查询,使用速度更快、性能更好的缓存来减少对数据库的请求,使用连接池来减少连接的频繁创建,等等。 61VWLke+oxolnDVkcPOmr5Ea3GTkVU11DKSkhIZdll5iZ7JOJ+mUIuDDVymyhlwz

点击中间区域
呼出菜单
上一章
目录
下一章
×