前言
本篇从系统参数和集群参数两个维度对 RocketMQ 集群进行优化,目的在于 RocketMQ 运行的更平稳。平稳往往比单纯提高 TPS 更重要,文中基于实际生产环境运行情况给出,另外在后面文章中会介绍由于参数设置而引发集群不稳定,业务受到影响的踩坑案例。
系统参数调优
在解压 RocketMQ 安装包后,在 bin 目录中有个 os.sh 的文件,该文件由 RocketMQ 官方推荐系统参数配置。通常这些参数可以满足系统需求,也可以根据情况进行调整。需要强调的是不要使用 Linux 内核版本 2.6 及以下版本,建议使用 Linux 内核版本在 3.10 及以上,如果使用 CentOS,可以选择 CentOS 7 及以上版本。选择 Linux 内核版本 2.6 出现的问题会在后面踩坑案例中提到。
最大文件数
设置用户的打开的最多文件数:
vim /etc/security/limits.conf
# End of file
baseuser soft nofile 655360
baseuser hard nofile 655360
* soft nofile 655360
* hard nofile 655360
系统参数设置
系统参数的调整以官方给出的为主,下面对各个参数做个说明。设置时可以直接执行 sh os.sh
完成系统参数设定,也可以编辑 vim /etc/sysctl.conf
文件手动添加如下内容,添加后执行 sysctl -p
让其生效。
vm.overcommit_memory=1
vm.drop_caches=1
vm.zone_reclaim_mode=0
vm