您的位置:首页 > 其它

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个给网络,其他的切分给存储。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息