资源对SMP性能的影响

网友投稿 632 2022-05-28

SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,包括CPU、内存、I/O和网络带宽等资源的消耗都会出现明显的增长,而且随着并行度的增大,资源消耗也随之增大。当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致集群整体性能的劣化。SMP支持自适应特性,该特性会根据当前资源和查询特征,动态选取最优的并行度。下面对各种资源对SMP性能的影响情况分别进行说明:

资源对SMP性能的影响

CPU资源

在一般客户场景中,系统CPU利用率不高的情况下,利用SMP并行架构能够更充分地利用系统CPU资源,提升系统性能。但当数据库服务器的CPU核数较少,CPU利用率已经比较高的情况下,如果打开SMP并行,不仅性能提升不明显,反而可能因为多线程间的资源竞争而导致性能劣化。

内存资源

查询并行后会导致内存使用量的增长,但每个算子使用内存上限仍受到work_mem等参数的限制。假设work_mem为4GB,并行度为2,那么每个并行线程所分到的内存上限为2GB。在work_mem较小或者系统内存不充裕的情况下,使用SMP并行后,可能出现数据下盘,导致查询性能劣化的问题。

网络带宽资源

为了实现查询并行执行,会新增并行线程间的数据交换算子。对于Local类Stream算子,所需要进行数据交换的线程在同一个DN内,通过内存交换,不会增加网络负担。而非Local类算子,需要通过网络进行数据交换,因此会加重网络负担。当网络资源成为瓶颈的情况下,并行可能会导致一定程度的劣化。

I/O资源

要实现并行扫描必定会增加I/O的资源消耗,因此只有在I/O资源充足的情况下,并行扫描才能够提高扫描性能。

举例:某客户现场环境6块盘一个raid5部署6dn并发tpch   22个业务场景,query_dop=1时,cpu,mem跑满,执行成功,但是执行时间不理想,于是调整query_dop=16提高并行度,结果sql执行失败。

问题定位方法:

降低业务场景的并发数量,保证场景能正确执行,不断提升query_dop的值,监控cpu、mem、io使用情况(资源监控可以根据sql类型着重监测,如select重点监测cpu和mem,insert重点监测cpu和io),这样既可以监控到资源瓶颈也可以证明query_dop可以提高执行效率

建议:

1、smp对资源比较依赖,建议在资源充足的情况下开启。

2、问题定位过程中建议不要修改过多的参数,以免影响定位效果,也不好解释是哪个参数影响的。

3、非标部署存在资源争抢的情况,建议以此为思路进行验证

任务调度 网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Flutter在各平台的安装与配置【Flutter专题0】
下一篇:体验一把华为云的ECS,丝般顺滑丨【我的华为云体验之旅】
相关文章