更新日期:2024年09月11日
资源对SMP 性能的影响
SMP 架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗
的增加,
包括CPU、
内存、
I/O 等资源的消耗都会出现明显的增长,
而且随着并行度的增大,
资源消耗也随之增大。当上述资源成为瓶颈的情况下,SMP 无法提升性能,反而可能导致
集群整体性能的劣化。下面对各种资源对SMP 性能的影响情况分别进行说明。
CPU 资源
在一般客户场景中,
系统CPU 利用率不高的情况下,
利用SMP 并行架构能够更充分地
利用系统CPU 资源,提升系统性能。但当数据库服务器的CPU 核数较少,CPU 利用率已
经比较高的情况下,如果打开SMP 并行,不仅性能提升不明显,反而可能因为多线程间的
资源竞争而导致性能劣化。
内存资源
查询并行后会导致内存使用量的增长,
但每个算子使用内存上限仍受到work_mem 等参
数的限制。假设work_mem 为4GB,并行度为2,那么每个并行线程所分到的内存上限为
2GB。在work_mem 较小或者系统内存不充裕的情况下,使用SMP 并行后,可能出现数据
下盘,导致查询性能劣化的问题。
I/O 资源
要实现并行扫描必定会增加I/O 的资源消耗,因此只有在I/O 资源充足的情况下,并行
扫描才能够提高扫描性能。