暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Couchbase生产部署最佳实践(二)——参数调优

DBInfos 2021-07-14
658

本文作为《Couchbase生产部署最佳实践》的第二部分,重点描述部署Couchbase前需要对系统进行的参数调优,这些参数影响着Couchbase能否以最高性能运行。本文提供的参数设置仅作为基本参考,具体大小应结合实际情况考虑。

点击《Couchbase生产部署最佳实践》查看第一部分内容。



原文作者:Alex Ma, Justin Machiel, Asif Kazi

译者:hackergodness

如果想要原版英文内容,请在公众号中回复。



  • 网络和内存

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


# 增加keepalive的探测频率,更快发现和超时僵死连接。

net.ipv4.tcp_keepalive_intvl = 30


# 表示开启重用。允许将TIME-WAIT sockets重用于新的TCP连接,默认为0,表示关闭。

# 该配置对所有Couchbase协议来说是安全的。

net.ipv4.tcp_tw_reuse = 1


# 指导内核先最大限度使用物理内存,然后才是swap空间。

# 如果内核版本大于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_writeback_centisecs = 100


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

fs.file-max = 500000


# 禁用NUMA内存区域回收算法,以便减少读延时。

vm.zone_reclaim_mode = 0


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


  • 文件系统


XFS是最适合Couchbase append-only这种文件结构的文件系统。我们推荐将所有Couchbase的卷都格式化成XFS。如果不行,就使用EXT4。


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


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

rw,noatime


  • User Limits

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

couchbase soft nofile 131072

couchbase hard nofile 131072

couchbase hard core unlimited


  • Transparent Huge Pages (THP)

执行以下命令禁用THP:

$ sudo echo never > sys/kernel/mm/transparent_hugepage/enabled

$ sudo echo never > sys/kernel/mm/transparent_hugepage/defrag

将这些命令添加到/etc/rc.local里,使系统重启时持久化设置。


  • IO调度

默认的Red Hat Linux IO scheduler(CFQ)不太适合数据库随机读写访问模式。相比而言deadline调度更为合适,并且提供了更好的延迟保证。

执行以下命令将IO调度修改成deadline模式:

$ sudo echo deadline > /sys/block/<block device>/queue/scheduler

增加IO调度的对列深度后就可以通过提高顺序写入来减少IOPS。

将IO调度对列深度增加到1024:

$ sudo echo 1024 > /sys/block/<block device>/queue/nr_requests

将这些命令添加到/etc/rc.local里,使系统重启时持久化设置。


文章转载自DBInfos,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论