更新时间:2023-03-17 GMT+08:00

性能调优的相关配置

操作场景

CarbonData的性能与配置参数相关,本章节提供了能够提升性能的相关配置介绍。

操作步骤

用于CarbonData查询的配置介绍,详情请参见表1表2

表1 Shuffle过程中,启动Task的个数

参数

spark.sql.shuffle.partitions

所属配置文件

spark-defaults.conf

适用于

数据查询

场景描述

Spark shuffle时启动的Task个数。

如何调优

一般建议将该参数值设置为执行器核数的1到2倍。例如,在聚合场景中,将task个数从200减少到32,有些查询的性能可提升2倍。

表2 设置用于CarbonData查询的Executor个数、CPU核数以及内存大小

参数

spark.executor.cores

spark.executor.instances

spark.executor.memory

所属配置文件

spark-defaults.conf

适用于

数据查询

场景描述

设置用于CarbonData查询的Executor个数、CPU核数以及内存大小。

如何调优

在银行方案中,为每个执行器提供4个CPU内核和15GB内存,可以获得良好的性能。这2个值并不意味着越多越好,在资源有限的情况下,需要正确配置。例如,在银行方案中,每个节点有足够的32个CPU核,而只有64GB的内存,这个内存是不够的。例如,当每个执行器有4个内核和12GB内存,有时在查询期间发生垃圾收集(GC),会导致查询时间从3秒增加到超过15秒。在这种情况下需要增加内存或减少CPU内核。

用于CarbonData数据加载的配置参数,详情请参见表3表4表5

表3 设置数据加载使用的CPU core数量

参数

carbon.number.of.cores.while.loading

所属配置文件

carbon.properties

适用于

数据加载

场景描述

数据加载过程中,设置处理数据使用的CPU core数量。

如何调优

如果有更多的CPU个数,那么可以增加CPU值来提高性能。例如,将该参数值从2增加到4,那么CSV文件读取性能可以增加大约1倍。

表4 是否使用YARN本地目录进行多磁盘数据加载

参数

carbon.use.local.dir

所属配置文件

carbon.properties

适用于

数据加载

场景描述

是否使用YARN本地目录进行多磁盘数据加载。

如何调优

如果将该参数值设置为“true”,CarbonData将使用YARN本地目录进行多表加载磁盘负载平衡,以提高数据加载性能。

表5 加载时是否使用多路径

参数

carbon.use.multiple.temp.dir

所属配置文件

carbon.properties

适用于

数据加载

场景描述

是否使用多个临时目录存储sort临时文件。

如何调优

设置为true,则数据加载时使用多个临时目录存储sort临时文件。此配置能提高数据加载性能并避免磁盘单点故障。

用于CarbonData数据加载和数据查询的配置参数,详情请参见表6

表6 设置数据加载和查询使用的CPU core数量

参数

carbon.compaction.level.threshold

所属配置文件

carbon.properties

适用于

数据加载和查询

场景描述

对于minor压缩,在阶段1中要合并的segment数量和在阶段2中要合并的已压缩的segment数量。

如何调优

每次CarbonData加载创建一个segment,如果每次加载的数据量较小,将在一段时间内生成许多小文件,影响查询性能。配置该参数将小的segment合并为一个大的segment,然后对数据进行排序,可提高查询性能。

压缩的策略根据实际的数据大小和可用资源决定。如某银行1天加载一次数据,且加载数据选择在晚上无查询时进行,有足够的资源,压缩策略可选择为6、5。

表7 使用索引缓存服务器时是否开启数据预加载

参数

carbon.indexserver.enable.prepriming

所属配置文件

carbon.properties

适用于

数据加载

场景描述

使用索引缓存服务器过程中开启数据预加载可以提升首次查询的性能。

如何调优

用户可以将该参数设置为true来开启预加载。默认情况,该参数为false。