生产部署最佳实践
基础介绍
OceanBase4.x版本常用资源参数简介及计算方式
| 参数 | 解释 | 特性 | 小课堂 | |
|---|---|---|---|---|
| CPU资源参数 | cpu_count | OB可使用的CPU核数,参数为数值,例如:16,设置为0,系统自动检测并设置 | 不支持动态调整 | 修改该参数需要重启集群才能生效 |
| 内存资源参数 | memory_limit | OB可使用的内存大小,参数需要带单位,例如:32G | 支持动态调整 | 1. memory_limit没有上限边界,建议按实际内存free -m信息中的free列剩余大小进行规划设置。 2. 支持动态增大和缩小,但不能比已分配出去的内存还小。 3. memory_limit优先级大于memory_limit_percentage,即同时设置,以memory_limit生效。 |
| 内存资源参数 | memory_limit_percentage | OB可用内存占总内存的百分比,参数为数值,例如:80(表示80%) | 支持动态调整 | |
| 内存资源参数 | system_memory | OB的500租户的内存,即OB系统内部运行内存,参数需要带单位,例如:30G | 支持动态调整 | 1. system_memory取值计算方式: -- 16G<=memory_limit <=32G,system_memory=3-5G -- 32G<=memory_limit <=64G,system_memory=5-10G -- memory_limit >64G,system_memory=取整数部分(3 *(memory_limit的平方根-3G)) 2. system_memory和sys租户没关系,sys租户是OB部署完成由系统自建的自适应资源租户,租户ID为1,而system_memory对应的租户ID为500。 |
| 磁盘资源参数 | datafile_size | OB数据目录预占用大小,参数需要带单位,例如:32G | 预占用,不支持调小 | 1. 预占用会提前申请磁盘空间,部署完成查看磁盘使用很大,属于正常现象。 2. datafile_size优先级大于datafile_disk_percentage。 |
| 磁盘资源参数 | datafile_disk_percentage | OB数据目录预占用目录百分比,参数为数值,例如:80(表示80%) | 预占用,不支持调小 | |
| 磁盘资源参数 | log_disk_size | OB日志数据目录预占用大小,参数需要带单位,例如:32G | 预占用,支持动态调整 | 1. log_disk_size取值计算方式:log_disk_size>=memory_limit * 3 2. 预占用会提前申请磁盘空间,部署完成查看磁盘使用很大,属于正常现象。 3. log_disk_size优先级大log_disk_percentage。 |
| 磁盘资源参数 | log_disk_percentage | OB数据目录预占用目录百分比,参数为数值,例如:80(表示80%) | 预占用 支持动态调整 | |
| 系统日志参数 | enable_syslog_recycle | 是否开启OB系统日志回收 ,建议开启 | 需要和max_syslog_file_count参数搭配使用 | |
| 系统日志参数 | max_syslog_file_count | 在回收OB系统日志文件之前最大保留OB系统日志个数 | 需要和enable_syslog_recycle参数搭配使用 | 单个系统日志256M,建议生产环境按需要日志保留天数需要,来设置系统日志个数。 注意:OB系统日志打印较大较频繁,需要关注设置个数和磁盘大小关系,防止磁盘被占满。 |
部署要求
生产场景OB集群要求
| 模块 | 要求 | 说明 |
|---|---|---|
| 服务器 | 支持主流服务器和国产化适配软硬件 | - 已适配基于硬件整机中科可控 H620 系列、华为 TaiShan 200 系列、长城擎天 DF720 等整机。 - 已适配支持海光 7185/7280、鲲鹏 920、飞腾 2000+ 等 CPU。 - 已适配支持麒麟 V4、V10 和 UOS V20 等国产操作系统,并适配上层中间件东方通 TongWeb V7.0、金蝶 Apusic 应用服务器软件 V9.0 等 |
| 操作系统 | 支持x86、ARM架构 | - Alibaba Cloud Linux 2/3 版本(内核 Linux 3.10.0 版本及以上)。 - Anolis OS 8.X 版本(内核 Linux 3.10.0 版本及以上)。 - Red Hat Enterprise Linux Server 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上)。 - CentOS Linux 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上)。 - Debian 9.X 版本及以上版本( 内核 Linux 3.10.0 版本及以上)。Ubuntu 20.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)。 - SUSE / OpenSUSE 15.X 版本及以上版本(内核 Linux 3.10.0 版本及以上)。 - KylinOS V10 版本。统信 UOS 1020a/1021a/1021e/1001c 版本。 - 科方德 NFSChina 4.0 版本及以上。浪潮 Inspur kos 5.8 版本 |
| CPU | 最低4核,推荐32核以上 | 此为分配给OB的最低核数,非服务器总核数 |
| 内存 | 最低32G,推荐256G以上 | 此为分配给OB的最低内存,非服务器总内存大小 |
| SWAP | 禁止使用SWAP功能 | SWAP交换分区会影响整个集群性能 |
| 磁盘类型 | 磁盘类型:SSD | |
| 文件系统 | 文件系统:XFS、EXT4 | 不支持其他文件系统,数据大于16T,推荐使用XFS文件系统 |
| 磁盘容量 | 总磁盘容量:内存的6倍以上 | |
| 分盘 | 数据盘大小:最低20G日志盘大小:最低96G | - 日志盘+数据盘容量推荐是分配给OB内存大小的6倍以上,即(memory_limit * 6); - 数据盘和日志盘一定要分盘,否则影响性能; - 数据盘大小可根据业务数据量评估; - 日志盘大小推荐根据分配给OB总内存 * 3 进行规划 (memory_limit * 3) |
| RAID | 支持 | RAID阵列缓存需要使用write through模式; |
| 网卡 | 最低千兆,推荐万兆 | |
生产场景OCP配置要求
管理 10 台业务 OBServer 所需的资源为例,即这台物理机需要 有 24 个 CPU 和 64G 内存。 其中OCP所需4C 8G,METADB所需13C 52G,剩余资源为操作系统使用。
| 模块 | CPU | 内存 |
|---|---|---|
| ocp-server | 4 | 8G |
| metadb租户 | 4 | 8G |
| monitor租户 | 4 | 16G |
| sys_memory | 5 | 28G |
常见问题-服务器初始化要求
| 模块 | 要求 | 操作 | 说明 |
|---|---|---|---|
| 防火墙 | 关闭 | #开机不自启 systemctl disable firewalld #关闭防火墙 systemctl stop firewalld | 涉及OB以及OB生态组件节点建议关闭,如有防火墙开放需求,参考OceanBase 服务端进程 & 生态产品默认端口号 |
| SELinux | 关闭 | #将 SELINUX 的配置修改为 disabled,重启服务器生效 vim /etc/selinux/config SELINUX=disabled #立即生效命令 setenforce 0 | SELinux开启会占用较多系统资源,且对文件权限和访问控制进行限制等。 |
| 时钟同步 | 开启 | 参考 初始化服务器 | OB生态组件均需要进行同步(包括OCP、OCP-Express、OB、OBProxy) |