CPU 资源
配置 | 描述 |
---|---|
background_pool_size | 后台线程池的大小, merge 线程就是在该线程池中执行,该线程池 不仅仅是给 merge 线程用的,默认值 16,允许的前提下建议改成 c pu 个数的 2 倍(线程数) 。 |
background_schedule_pool_size | 执行后台任务( 复制表、 Kafka 流、 DNS 缓存更新) 的线程数。 默 认 128, 建议改成 cpu 个数的 2 倍(线程数)。 |
backgrounddistributed_schedule pool_size | 设置为分布式发送执行后台任务的线程数,默认 16, 建议改成 cpu 个数的 2 倍(线程数) 。 |
max_concurrent_queries | 最大并发处理的请求数(包含 select,insert 等),默认值 100,推荐 1 50(不够再加)~300。 |
max_threads | 设置单个查询所能使用的最大 cpu 个数,默认是 cpu 核数 |
内存资源
配置 | 描述 |
---|---|
max_memory_usage | 此参数在 users.xml 中,表示单次 Query 占用内存最大值,该值可 以设置的比较大,这样可以提升集群查询的上限。 保留一点给 OS,比如 128G 内存的机器,设置为 100GB。 |
maxbytes_before_external_group by | 一般按照 max_memory_usage 的一半设置内存,当 group 使用内 存超过阈值后会刷新到磁盘进行。 因为 clickhouse 聚合分两个阶段:查询并及建立中间数据、合并中 间数据, 结合上一项,建议 50GB。 |
max_bytes_before_external_sort | 当 order by 已使用 max_bytes_before_external_sort 内存就进行 溢写磁盘(基于磁盘排序),如果不设置该值,那么当内存不够时直接 抛错,设置了该值 order by 可以正常完成,但是速度相对存内存来 说肯定要慢点(实测慢的非常多,无法接受)。 |
max_table_size_to_drop | 此参数在 config.xml 中,应用于需要删除表或分区的情况,默认是 50GB,意思是如果删除 50GB 以上的分区表会失败。 建议修改为 0, 这样不管多大的分区表都可以删除。 |