云服务器内容精选

  • 参数调整最佳实践 参数名 参数描述 默认值 建议值 是否需要重启生效 max_memory_usage_for_all_queries 单台服务器上所有查询的内存使用量,默认没有限制。建议根据机器的总内存,预留一部分空间,防止内存不够导致服务或者机器宕机。 0 机器总内存的80% 否 max_memory_usage 单个查询在单台服务器的能使用的最大内存。 10G 50GB 否(新版本可通过多租户方式配置) max_bytes_before_external_group_by 确定了在GROUP BY中启动将临时数据转存到磁盘上的内存阈值。默认值为0表示这项功能将被禁用。一般:设置为max_memory_usage/2。 0 25GB 否 max_execution_time 单次查询耗时的最长时间,单位为秒。默认没有限制。 0 300 否 max_threads 执行请求的最大线程数。默认情况下是按照机器CPU核数自动确定的。单并发情况下线程数越大越好(该值要小于CPU核数),多并发情况建议设置为CPU核数/2的值。 CPU核数/2 64 否 max_result_rows 限制返回结果行数,默认为0不限制。 0 100000 否 distributed_product_mode 默认SQL中的子查询不允许使用分布式表,修改为local表示将子查询中对分布式表的查询转换为对应的本地表。 deny 根据场景定: deny/local/global/allow 否 background_pool_size 后台用于merge的线程池大小。 16 64 否 log_queries system.query_log表的开关。默认值为0,不存在该表。修改为1,系统会自动创建system.query_log表,并记录每次query的日志信息。 0 1 否 skip_unavailable_shards 当通过分布式表查询时,遇到无效的shard是否跳过。默认值为0表示不跳过,抛异常。设置值为1表示跳过无效shard。 0 建议使用默认值。异常时,调整为1,提供有损服务。 否 max_bytes_before_external_sort 如果没有足够的内存,可以使用该参数来设置外部排序(在磁盘中创建一些临时文件)。默认为0表示禁用外部排序功能,当内存不够时直接抛错,设置了该值order by可以正常完成,但是速度非常慢。 0 25GB 否 keep_alive_timeout 服务端与客户端保持长连接的时长,单位为秒。 10 600 否 max_concurrent_queries 最大支持的查询并发。 100 150 否 session_timeout_ms Clickhouse服务和ZooKeeper保持的会话时长,超过该时间ZooKeeper还收不到Clickhouse的心跳信息,会将与Clickhouse的session断开。 3000 120000 否 父主题: 数据库调优
  • 系统调优 通过FusionInsight Manager查看主机上的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,分以下几种情况: 每个节点资源占用都比较均匀 通过观察资源在每个节点都使用比较均匀,说明系统资源使用比较正常,可以先不关注,可以去分析SQL语句是否有进一步优化的余地。 有个别节点资源占用比较高 如果观察到个别节点占用资源较高,需要针对占用资源较高的节点分析,分析当前的SQL语句是什么原因导致部分节点占用比其他节点更多资源,是计算还是数据存储倾斜导致,或者是软件bug导致。 每个节点资源占用都比较高 如果集群所有节点资源占用都比较高,说明集群整体比较忙,需要单独确认需要调优的SQL语句,单独调优。如果SQL也无调优余地,集群资源达到瓶颈,需要通过扩容来提升查询性能,达到调优目标。 父主题: 数据库调优