可以通过调整KOVAE的参数配置,有效提升服务器性能。
下文提供内存参数、线程参数和hash参数的调优建议,如表1、表2和表3所示。
参数名称 |
参数含义 |
优化建议 |
---|---|---|
kovae_memory_max_size |
当开启内存控制,该参数设置越大,就可以支持更多的并行查询和可以设置更大的kovae_memory_buffer_size。 |
当内存充裕时,建议设置更大的kovae_memory_max_size值。 |
kovae_memory_buffer_size |
当查询存在落盘算子(排序、聚合、hashjoin、物化)且查询表的数据量大的时候,该参数会对性能产生严重的影响。 |
该参数设置越大性能越好,但当没有开启内存控制时,该参数设置过大可能会触发OOM,当开启内存控制时,该参数设置过大可能会触发内存不足导致查询失败,建议设置为KOVAE最大可用内存的十分之一。 |
kovae_serial_mode |
当开启内存控制,且只有一个客户端在执行查询时,可以通过开启串行模式来提高查询性能。 |
开启串行模式后,KOVAE会自动调节落盘算子的缓存大小,尽量减少数据落盘。 |
参数名称 |
参数含义 |
优化建议 |
---|---|---|
kovae_threadpool_size |
线程池中最大可保留的线程数。 |
建议设置为可用CPU核数的3~5倍。 |
kovae_parallel_threads |
单个并行查询可申请的最大工作线程数。 |
默认值为2,当会话数很少时(即会话数小于5时),建议设置为可用CPU核数。一般可设置为kovae_threadpool_size/大概率同时执行的并行查询数会话数的值。 |
kovae_threadpool_stalltime |
当线程使用达到上限时,该值越小总体性能越好,但新的查询请求会等待更久,出现饿死情况。 |
当追求总体性能时,可以调低kovae_threadpool_stalltime值。 |
innodb_parallel_read_threads |
并行读表的线程数。 |
当会话数少时,可以通过提高该值来加快查询速度,建议设置为可用CPU核数/大概率同时执行的并行查询数会话数的值。 |
参数名称 |
参数含义 |
优化建议 |
---|---|---|
kovae_aggregator_hash_type |
Agg算子hash分组时的工作模式。 |
当group by的列的分组数很少时,将kovae_aggregator_hash_type的参数值设置为1可以提高查询速度。 |
参数 |
典型配置值 |
推荐配置说明 |
---|---|---|
kovae_threadpool_size |
256 |
设置为CPU core数的2倍,例如鲲鹏920 7265处理器2P服务器场景下,设置为128core * 2 = 256。 |
kovae_parallel_threads |
64 |
设置为kovae_threadpool_size / 连接数的值。以一般OLAP场景下4个连接数为例,则设置为kovae_threadpool_size / 4 = 64。 |
innodb_parallel_read_threads |
32 |
设置为CPU core数 / 连接数的值。以一般AP场景下4个连接数为例,则设置为128 / 4 = 32。 |
kovae_memory_max_size |
200*1024*1024*1024,即200GB |
设置约束关系为MySQL innodb_buffer_pool_size + kovae_memory_max_size <= 物理机内存的70%。 例如,物理机512GB内存*70%为358.4GB,100GB的TPC-H库的innodb_buffer_pool_size的典型设置值为150GB,得到kovae_memory_max_size的典型设置值为200GB。 |
kovae_memory_buffer_size |
20*1024*1024*1024,即20GB |
推荐设置为kovae_memory_max_size的10%。 |
其他参数 |
默认即可 |
- |