三节点 TiDB 集群内存控制文档
作者: guanguanglei 原文来源:https://tidb.net/blog/96d403a9
一、 背景:
中小客户比较在意成本且业务量数据量不是很大,为了兼顾资源和业务使用虚拟机 3 节点集群,本文档介绍中小客户使用虚拟机三节点集群架构和内存控制。
二、三节点集群机器配置
2.1 推荐机器配置
2.2 生产配置参考
三、 三节点集群架构
3.1 架构一
3 节点 3 tidb 模式,中控和监控共用一个节点。
优点:每个节点资源使用充分。
缺点:布置监控的机器负载可能会高一些。
暂时无法在飞书文档外展示此内容
3.2 架构二
3 节点 2 tidb 模式,2tidb 3pd 3tikv 部署中控和监控的节点不布置 tidb 实例。
优点:由于中控和监控节点少一个 tidb 实例各个节点的负载更平均一些。
缺点: 少一个 tidb 实例承载业务。
暂时无法在飞书文档外展示此内容
四、内存控制
4.1 TiDB 内存结构
TiDB 实例内存结构主要分为两部分 SQL 语句占用内存、go 语言占用内存
暂时无法在飞书文档外展示此内容
4.2 TiDB 实例内存参数
OS 内存参数
绑定 numa(虚拟机没有 numa 可忽略)
关闭透明大页(即 Transparent Huge Pages,缩写为 THP)
tidb 实例内存参数
4.3 tikv 内存结构
tikv 内存主要分为 3 部分,block-cache、write-buffer、coprocessor 三部分,block-cache 和 write-buffer 有参数可以控制,coprocessor 是慢 sql 出现积压的时候会占用大量内存不好预估。
4.4 tikv 实例内存参数
| | | | | || —————————- | ——————————————— | ——– | ————————————————————– | - || 参数名称 | 默认值 | 推荐值 | 参数含义 | || storage.block-cache.capacity | 机器内存的 40% | 机器内存的 40% | storage.block-cache.capacity = (MEM_TOTAL * 0.5 / TiKV 实例数量) | || write-buffer-size | defaultcf 128MiB,writecf 128MiB, lockcf 32MiB | 默认值 | memtable 默认参数固定大小,一般不用调整 | |
4.5 tidb 和 tikv 内存参数设置
假如一个三节点集群采用 3 节点 2tidb 模式,如何分配 tidb 和 tikv 的内存参数。
tidb 主要的内存参数 tidb_mem_quota_query ,tidb_server_memory_limit 这两个参数可以使用默认值
tikv 的主要内存参数是 storage.block-cache.capacity 这个参数取机器内存的 40%
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/035302ef36db38f2e358c6bc5】。文章转载请联系作者。
评论