当前位置:首页 > 科技数码

couchbase NoSQL文档型数据库Couchbase的生产部署最佳实践

Couchbase Server是一个开源的分布式NoSQL文档数据库。它使用缓存管理来提供快速的千伏存储,以应对亚毫秒级的数据操作;专门设计的索引器可以支持快速查询;它还包括一个查询引擎,可以执行类似于SQL的查询。

Couchbas在国内比较小,所以中国材料很少。为了让国内开发者在自己的环境中更好的利用Couchbase,翻译者make麦角专门翻译了couch base-环境配置最佳实践。原作者Alex Ma,Justin Machiel,Asif Kazi是CouchBase的高级开发工程师。

以下概述了部署Couchbase基础架构配置的最佳实践

为了获得Couchbase集群的最佳性能,需要确保集群大小的正确分配,不仅要满足当前的工作负载,还要考虑维护、业务增长趋势和峰值负载。一般来说,建议为集群预留一定的净上空空间,以适应集群中的容量异常毛刺和硬件故障。

系统、硬件

裸机安装总能获得最佳性能。虚拟化会在操作系统、磁盘I/O、网络性能、CPU等各个方面增加开销,降低整体资源效率。

始终使用本地磁盘存储(节点之间没有共享架构)。使用SAN不仅会导致单点故障,还会导致资源竞争。

如果您必须使用虚拟化体系结构,您仍然可以使用专用本地存储而不是逻辑虚拟化磁盘来提高性能。

系统级

生产中只使用64位操作系统。

Linux部署,其内核版本应该大于2.6.32-504.12.2,以避免已知的内核缺陷。

在此查看所有支持的平台列表。

内存

至少10%的系统内存被保留给内核进程和页面缓存。剩余的内存应该分配给存储桶和索引配额。

在基本输入输出系统中禁止非统一内存访问(NUMA)。

磁盘、卷设计

如果一切顺利,固态硬盘优于机械磁盘和网络块设备(iSCSI或EBS)。请注意,NFS不支持它。

从性能上看,在同等容量(RAID 0或RAID 10而不是RAID 5)的前提下,多个并行设备优于单个硬盘。例如,四个256GB固态硬盘比一个1TB固态硬盘快,因为有更多的并行I/O通道。

为了提高性能,应为每个索引和数据配置单独的磁盘卷,以隔离输入/输出。应该为更快的磁盘建立索引。

CPU

至少4个内核

每10,000个操作/秒的吞吐量,一个存储桶对应+1个内核

每个视图文档或GSI索引对应于+1个核心

每个XDCR流对应于+1个核心

调整索引节点上的IRQ关联性,以减少IRQ竞争。Linux上有一个脚本可以自动做到这一点。

网络

Couchbase只使用一个网络接口。如果有多个接口可用,则需要接口绑定。

在同一个VLAN部署Couchbase节点。

消除集群节点之间的路由器跳数

消除客户端和集群之间的路由器跳数

Couchbase

生产环境中的数据、索引和查询服务应该部署在不同的服务器上。至少,数据和索引应该隔离在不同的卷上,以防止资源竞争。

配置数据的存储桶越少越好,建议的上限是每个集群5个存储桶。

将所有可用的群集配额内存分配给存储桶和索引。如有必要,可以通过减少存储桶配额分配来容纳更多存储桶。

在Couchbase的指导下使用桶上的值驱逐。

确保在所有铲斗上禁用冲洗。

启用内置报警功能,并将其配置为发送至监控。

启用自动故障转移,并将超时设置为120秒。一旦确定了网络的稳定性,就可以再次降低该值。

如果发现IO竞争。非高峰时段的压缩。

确保在部署视图后,生产环境中的开发设计文档被删除。

删除生产环境中的默认存储桶。

虚拟化环境的考虑

查看http://support . couch base . com/entries/26790124-虚拟化-注意事项

以下内容重点介绍了部署Couchbase之前系统的参数调整

这些参数影响Couchbase能否以最佳性能运行。事实上,在部署其他数据库产品之前,不难发现需要调整类似的参数。本文提供的参数设置仅供基本参考,具体大小要结合实际情况考虑。

网络和内存

在/etc/sysctl.conf文件中修改或添加以下配置:

提高keepalive的检测频率,更快地发现和超时死连接。

net . IP v4 . TCP _ keepalive _ intvl = 30

表示启用了重用。等待时间套接字允许被重新用于新的传输控制协议连接。默认值为0,表示关闭。

这种配置对于所有Couchbase协议都是安全的。

net.ipv4.tcp_tw_reuse = 1

指示内核在交换空之前最大限度地利用物理内存。

如果内核版本大于3.0,则将该值设置为1

vm.swappiness = 0

将脏数据的最大内存使用限制在200MB,之后系统启动pdflush线程。

默认值为系统内存的20%,一旦启动pdflush,系统就会崩溃。

vm.dirty_bytes = 209715200

此内核参数保存pdflush开始写回的最小脏内存数,即100MB

VM . dirty _ background _ bytes = 104857600

提高将脏数据刷新到磁盘的速度,只刷新脏时间超过一定限制的页面,

下次pdflush唤醒后会刷回磁盘,

Dirty_expire_centisecs用于控制到期时间

vm.dirty_expire_centisecs = 300

VM . dirty _ write back _ centisecs = 100

增加系统中可以同时打开的文件数量

fs.file-max = 500000

禁用NUMA内存区域回收算法以减少读取延迟。

VM . zone _ recovery _ mode = 0

保存文件后,执行sysctl -p命令使设置生效。

文件系统

XFS是最适合Couchbase仅附加文件结构的文件系统。我们建议将所有Couchbase卷格式化为XFS。如果没有,就用EXT4。

如果磁盘控制器上有电池备份单元(BBU),建议禁用屏障以提高吞吐量。

Couchbase不依赖文件访问时间,所以可以打开noatime选项来减少磁盘IO。编辑/etc/fstab文件,并使用以下选项修改Couchbase数据挂载点(如果有):

rw,noatime

用户限制

添加Couchbase中可用的文件描述符,以确保可以创建核心文件,并将以下内容添加到/etc/security/limits.conf:

couchbase soft nofile 131072

couchbase硬盘nofile 131072

couchbase硬核无限

透明大页面(THP)

执行以下命令禁用THP:

sudo echo never >。/sys/kernel/mm/transparent _ huge page/enabled

sudo echo never >。/sys/kernel/mm/transparent _ hugepage/defrag

将这些命令添加到/etc/rc.local,以便在系统重新启动时保持设置不变。

输入输出调度

默认的红帽Linux IO调度器(CFQ)不适合数据库随机读写访问模式。截止日期调度更合适,提供更好的延迟保证。

执行以下命令,将输入输出调度修改为截止日期模式:

sudo echo截止日期>。/sys/block/<。阻止设备>。/queue/scheduler

增加输入输出调度的对齐深度可以通过增加顺序写入来减少IOPS。

将输入输出调度对列深度增加到1024:

sudo echo 1024 >。/sys/block/<。阻止设备>。/queue/nr_requests

将这些命令添加到/etc/rc.local,以便在系统重新启动时保持设置不变。

Couchbase成功上线后,需要监控其运行状态,准确定位性能瓶颈,及时优化。

下面列出了需要重点关注的Couchbase和操作系统级别的监控指标

Couchbase网络控制台本身为集群、节点状态和容量提供监控警报。下图。

图1通用铲斗分析界面

图2通用桶分析界面

您还可以使用Couchbase提供的cbstats工具来获取更细粒度的监控信息,并执行二次处理来丰富监控场景。

Beam.smp流程负责监控和管理底层服务流程,如XDCR复制、集群操作、视图等。

memcached进程负责将项目缓存到内存中,并将它们保存到磁盘上。

接下来,我们来看看Couchbase中哪些参数需要注意。以及当达到监控阈值时我们应该如何应对。

有关更详细的指标,请参考以下链接:

https://developer . couch base . com/documentation/server/4.6/CLI/cbstats-intro . html

我们可以使用cbstats命令获取上表中描述的各种索引项,例如:

此外,我们还可以通过/pool/default/bucket/bucket _ name/stats Suri获得bucket的抽样统计:

卷曲–X GET-u & lt;用户名>。:& ltpasswd>。http://& lt;ip>。:8091/pool/default/bucket/& lt。bucket_name>。/stats

此外,可以指定-d zoom={interval}参数来指定采样时间,可选参数包括分钟、小时、天等。

卷曲–X GET-u & lt;用户名>。:& ltpasswd>。-d zoom =分钟http://& lt;ip>。:8091/pool/default/bucket/& lt。bucket_name>。/stats

威尔(男子名)

详细使用参考:

https://developer . couch base . com/documentation/server/current/rest-API/rest-bucket-stats . html

1.《couchbase NoSQL文档型数据库Couchbase的生产部署最佳实践》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《couchbase NoSQL文档型数据库Couchbase的生产部署最佳实践》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1595606.html

上一篇

汪明荃个人资料 汪明荃个人资料年龄 汪明荃与赵雅芝争做香港主持一姐内幕

下一篇

惠英红图片 惠英红首谈初恋 男友资料照片曝光

苹果手机内存清理 没想到苹果手机清理内存有这么多方法?现在才知道,真是太可惜了!

  • 苹果手机内存清理 没想到苹果手机清理内存有这么多方法?现在才知道,真是太可惜了!
  • 苹果手机内存清理 没想到苹果手机清理内存有这么多方法?现在才知道,真是太可惜了!
  • 苹果手机内存清理 没想到苹果手机清理内存有这么多方法?现在才知道,真是太可惜了!

win10dnf卡顿严重完美解决 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法

  • win10dnf卡顿严重完美解决 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
  • win10dnf卡顿严重完美解决 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
  • win10dnf卡顿严重完美解决 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法

win10玩dnf间歇性卡顿 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法

  • win10玩dnf间歇性卡顿 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
  • win10玩dnf间歇性卡顿 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法
  • win10玩dnf间歇性卡顿 DNF:WIN10玩DNF卡顿,内存占用过高的解决方法

手机内存清理管家 别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G

  • 手机内存清理管家 别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G
  • 手机内存清理管家 别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G
  • 手机内存清理管家 别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G
找网络水军 “网络水军”全国集群战役打响 水军平台网站被查封

找网络水军 “网络水军”全国集群战役打响 水军平台网站被查封

2017年5月以来,公安部部署地方公安机关在全国范围内开展打击“网络水军”活动,破获违法犯罪案件40余起,涉案金额上亿元,抓获犯罪嫌疑人200余人,查封、关闭涉嫌非法炒作的网络账户5000余个,关闭违法违规网站数万个,涉及互联网上数千万条恶意炒作信息。 经过连续三个月的认真调查,2017年...

triage Memtriage:一款Windows内存取证工具

triage Memtriage:一款Windows内存取证工具

Memtriage是一个Windows内存取证工具。该工具使用Winpmem抓取内存转储,并使用Volatility对其进行分析。 注意事项: 启用设备保护后,该工具将无法正常工作。它应该在部署前在机器上进行测试 Volatility 插件 当前支持以下插件: 列举进程dlllistldr...

张力文微博 全力打造千亿产业集群,看仙游新动作

  • 张力文微博 全力打造千亿产业集群,看仙游新动作
  • 张力文微博 全力打造千亿产业集群,看仙游新动作
  • 张力文微博 全力打造千亿产业集群,看仙游新动作

查看内存 怎么看电脑内存大小?

  • 查看内存 怎么看电脑内存大小?
  • 查看内存 怎么看电脑内存大小?
  • 查看内存 怎么看电脑内存大小?