2.Clickhouse常见配置解析

Clickhouse常见配置解析

  Clickhouse的常见配置项在config.xml或 usesr.xml中,基本上都在users.xml中。
  下面为ck官网中的配置页     
  • config.xml 的配置项
    https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/
  • users.xml的配置项
    https://clickhouse.com/docs/en/operations/settings/settings/

CPU资源

配置描述
background_pool_size后台线程池的大小,merge线程就是在该线程池中执行,该线程池不仅仅是给merge线程用的,默认值是16,允许的前提下建议改成 cpu 个数的2倍( 线程数
background_schedule_pool_size执行后台任务(复制表、 kafka流 、DNS 缓存更新) 的线程数。默认 128, 建议改成 cpu 的 2 倍。
background_distributed_schedule_pool_size设置为分布式发送执行后台任务的线程数, 默认 6 ,建议改成 CPU 个数的 2 倍(线程数)
max_concurrent_queries最大并发处理的请求数(包含 select,insert等 ),默认值 100 ,推荐 150(不够再加)~ 300 。
max_thread设置单个查询所能使用的最大 CPU 个数,默认是CPU 核数。

内存资源

配置描述
max_memory_usage此参数在 users.xml 中,表示单次 Query 占用内存最大值,该值可以设置的比较大,这样可以提升集群查询的上限。
max_bytes_before_external_group_by一般哪找max_memory_useage 的一般设置内存, 当group 使用内存超过阈值后会刷新到磁盘进行 。因为clickhouse 聚合分两个阶段:查询并建立中间数据、合并中间数据,结合上一项,建议50G
max_bytes_before_external_sort当order by 已使用 max_bytes_before_external_sort 内存就进行溢出写磁盘(基于磁盘排序),如果不设置该值,那么当内存不够时直接跑错,设置了该值 order by 可以正常完成,但是速度相对内存来说肯定要慢点(实测慢的非常多,无法接受)。
max_table_size_to_drop此参数在config.xml 中,应用于需要删除表或分区的情况,默认是50GB,意思是如果删除50GB以上的分区表会失败。建议修改为0 ,这样不管多大的分区表都可以删除。

版权声明:本文为qq_38651064原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。