cockroach官方文档翻译--3.2 产品的推荐设置
2018-01-24 11:05
651 查看
3.2 产品的推荐设置
3.2.1 硬件
最小推荐:--对于一个复制集群,使用至少3个节点保证可用性,如果一个节点失败,详见集群策略
--每个节点需要有足够的CPU,RAM,网络,存储能力处理你的工作负载,最少1个CPU和2GB RAM每个节点,对于更复杂的工作负载,更高的并发,更快的性能需要额外的资源。
最高性能:
--使用超过HDDs的SSDs
--使用更大的更多的节点,添加更多的CPU比添加更多的RAM更有用。
最高弹性:
--使用多的小节点,而不是少的大节点。当数据分散在更多的节点时,恢复失败节点更快。
--使用区域配置增加复制因子从默认的3到5,可以在整个集群应用或者在具体的数据库或者表上应用
3.2.2 集群策略
当集群运行在至少一个节点时,每个副本在不同的节点,为保证集群进程,多数副本必须是可达的。因此:--使用至少3个节点,保证即使一个节点失败,多数副本是可达的。
--将节点运行在分散的机器上,cockroachDB的副本集跨节点,在一台机器上运行多个节点,若机器故障,增加了数据丢失的风险,如果一个机器有多个磁盘或者SSDs,运行节点使用—store参数。
--配置奇数副本
--当副本通过数据中心,推荐明确定义节点在那个数据中心使用—locality参数,如果数据中心比其他的远,需要明确定义推荐的多级loaclity。
--当副本跨数据中心,需要注意潜在数据中心之间交互对你的数据库性能的影响,跨地域的集群性能比在地理上集群节点位置相近的性能更差。
3.2.3 时钟同步
CockroachDB需要适当的时钟同步保证数据的一致性,当节点检测到时钟与至少一半的节点不同步,即超过80%的最大容忍偏移(500ms*0.8),节点自发停止。避免违反序列化一致性而导致的读陈旧数据和写偏序,通过在每个节点运行NTP或者其他时钟同步软件防止时钟漂移过大。
一个较为罕见的现象是,在节点检测前,一个节点的时钟突然跳变,超过最大偏移。虽然可能性较少,但是确实可能发生,例如:当cockroachDB在VM中运行,VM管理程序决定将虚拟机移动到不同时间的其他硬件,这时,有一个小的窗口时间,节点时钟不同步,节点自发停止。在这段时间客户端有可能读陈旧的数据或者写陈旧的数据。
注意:推荐使用google的额外的NTP服务,
3.2.3 缓存和SQL内存大小
默认,每个节点内存大小和当前SQL内存大小为128M,这些默认的配置是帮助开发测试的,使用者更可能是在同一台主机上运行多个节点。当运行一个集群产品,每个节点运行在一台主机上,推荐增加配置:
--增加cache size提高读性能
--增加SQL内存大小,增加允许连接客户端的并发数(128M允许最大6200个并发连接),增加节点的容忍度对于内存进程的行处理使用order by/group by/distinct/joins/windows 函数
手动增加节点的node缓存和SQL内存大小,开始一个节点
cockroach start--cache=25% --max-sql-memory=25% <other start flags>
cochroachDB使用大量的打开文件描述符,需要注意:
--最小,文件描述符限制必须为1956(每个存储1700+256网络),如果小于这个阈值,节点不会启动
--推荐将文件描述符设置为无限,否则,推荐的大小至少为15000(10000每个存储+5000个网络),保证性能和集群增长
--当文件描述符限制不够非配给推荐数量,cockroachDB分配10000每个存储,剩余的给网络。如果网络小于256,cockroachDB分配256个给网络,其他的切分给存储。
相关文章推荐
- cockroach官方文档翻译--3.4 集群设置
- Python3.2官方文档翻译--类总介绍
- Python3.2官方文档翻译--迭代器
- Python3.2官方文档翻译--使用二进制数据记录布局和多线程
- Python3.2官方文档翻译--作用域和命名空间
- cockroach官方文档翻译---2.1 架构概要
- Python3.2 官方文档翻译--错误与异常
- Dojo1.11官方教程文档翻译(3.2)使用dojo/query
- swift官方推荐翻译文档之基本运算符
- Python3.2官方文档翻译--异常处理
- Python3.2官方文档翻译--作用域和命名空间实例
- Python3.2官方文档翻译--输出格式化
- ABP官方文档翻译 2.5 设置管理
- Python3.2官方文档翻译--继承
- Python3.2官方文档翻译--继承
- Python3.2官方文档翻译-列表工具和十进制浮点数计算
- Python3.2官方文档翻译--实例对象和方法对象
- Storm官方文档翻译之设置开发环境
- Apple Watch 人机交互指南 界面元素 ----- Menus (官方文档翻译) (产品设计层面)
- 《ios人机交互指南翻译系列之一,来自苹果最新官方文档,2015.8》 设计策略:把概念变成产品