欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
检查文件系统类型
文件系统类型支持 EXT4 和 XFS 两种。当磁盘容量 > 16TB 时,检查文件系统类型是否为 XFS 类型,如果类型不符合,建议重新设置磁盘。
检查主机内核参数
检查主机内核参数是否符合要求:
内核参数 | 默认值范围 | 描述 |
|---|---|---|
net.core.somaxconn | 2048 ≤ value ≤ 16384 | 系统中每一个端口最大的监听队列的长度,这是个全局的参数。 |
net.core.netdev_max_backlog | 500 ≤ value ≤ 10000 | 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 |
net.core.rmem_default | 65536 ≤ value ≤ 16777216 | 默认的 TCP 数据接收窗口大小(字节)。 |
net.core.wmem_default | 65536 ≤ value ≤ 16777216 | 默认的 TCP 数据发送窗口大小(字节)。 |
net.core.rmem_max | 8388608 ≤ value ≤ 16777216 | 最大的 TCP 数据接收窗口(字节)。 |
net.core.wmem_max | 8388608 ≤ value ≤ 16777216 | 最大的 TCP 数据发送窗口(字节)。 |
net.ipv4.conf.default.rp_filter | == 1 | 定义了网卡对接收到的数据包进行反向路由验证的规则。 0:关闭反向路由校验; 1:开启严格的反向路由校验; 2:开启松散的反向路由校验。</li? |
net.ipv4.conf.default.accept_source_route | ==0 | accept_source_route 指允许数据包的发送者指定数据包的发送路径,以及返回给发送者的数据包所走的路径。br0 为禁用该特性。 |
net.ipv4.tcp_syncookies | ==1 | 当出现 syn 等候队列出现溢出时向对方发送 syncookies,目的是为了防止 syn flood 攻击。 |
net.ipv4.tcp_rmem | 4096、87380、16777216 三个值分别为 min、default 和 max,分成三项: 4096 ≤ min ≤ 8192 65536 ≤ default ≤ 174760 8388608 ≤ max ≤ 16777216 | 为自动调优定义 socket 使用的内存。 |
net.ipv4.tcp_wmem | 4096、65536、16777216,分成三项: 4096 ≤ min ≤ 8192 65536 ≤ default≤ 131072 8388608 ≤ max ≤ 16777216。 | 为自动调优定义 socket 使用的内存。 |
net.ipv4.tcp_max_syn_backlog | 1024 ≤ value ≤ 16384 | 对于还未获得对方确认的连接请求,可保存在队列中的最大数目。如果服务器经常出现过载,可以尝试增加这个数字。默认为 1024。 |
net.ipv4.tcp_fin_timeout | 15 ≤ value ≤ 60 | 对于本端断开的 socket 连接,TCP 保持在 FIN-WAIT-2 状态的时间(秒)。对方可能会断开连接,或一直不结束连接,或不可预料地进程死亡。 |
net.ipv4.tcp_tw_reuse | ==1 | 表示是否允许将处于 TIME-WAIT 状态的 socket(TIME-WAIT 的端口)用于新的 TCP 连接。 |
net.ipv4.tcp_slow_start_after_idle | ==0 | TCP 空闲后慢启动,0 为禁止。 |
vm.swappiness | ==0 | 控制换出运行时内存的相对权重。 |
vm.min_free_kbytes | 32768 ≤ value ≤ 2097152 | 设置保留的空闲页面池的大小,推荐值 2097152。 |
vm.max_map_count | 327680 ≤ value ≤ 1000000 | 定义进程可以使用的最大内存映射区域,默认值为 65536。 |
vm.overcommit_memory | ==0 | 定义确定是否接受大型内存请求或拒绝的条件,默认值为 0。 |
vm.nr_hugepages | ==0 | nr_hugepages 参数值为 0,表示 HugePages 未启用。 |
fs.aio-max-nr | ≥ 1048576 | 同时可支持的异步 IO 数目。 |
kernel.numa_balancing | ==0 | 禁用自动 numa 平衡,避免内存节点数据迁移可能造成的性能抖动。 |
vm.zone_reclaim_mode | ==0 | 关闭控制内存 Zone 回收模式,可以从其他 Zone 或 NUMA 节点回收内存,避免因回收导致的性能抖动。 |
fs.file-max | ≥ 6573688 | 整个系统能够打开的最大文件数量,是系统级别的限制,避免默认值过小造成限制。 |
fs.pipe-user-pages-soft | == 0 | 由单个非特权用户(即既没有 CAP_SYS_RESOURCE 也没有 CAP_SYS_ADMIN 功能的用户)创建或设置的所有管道的总大小(以页为单位)的软限制。建议设置为 0 ,不应用软限制。 |
手动修改方式: 以修改 net.core.somaxconn 参数为例,可在自定义配置文件 /etc/sysctl.d/oceanbase.conf 中,通过 echo 的方式将 net.core.somaxconn = 128 写入文件,删除参数则是从文件中把该行配置删除。
检查服务
检查 crond、sshd 及 firewalld 服务。其中,检查 crond 与 sshd 是否为启用状态;检查 firewalld 是否为禁用状态。
服务 | 说明 |
|---|---|
crond | 建议启用,主要用于设置定时任务,并提供相关运维能力。 |
sshd | 建议启用,主要用于加密登录或者数据传输,并提供基础的运维能力。 |
firewalld | 建议禁用 firewalld 或为 OceanBase 集群各服务添加允许规则,避免防火墙拦截。 |
手动修改方式:
- 开启服务:systemctl enable {serviceName} && systemctl start {serviceName}
- 关闭服务:systemctl stop {serviceName} && systemctl disable {serviceName}
检查透明大页
检查透明大页是否关闭,确保系统性能稳定。
手动修改方式: 通过 echo never > /sys/kernel/mm/transparent_hugepage/enabled 命令设置透明大页配置为 never。同时,如果机器存在重启的情况,为了达到配置持久化效果,建议您在 rc.local 或者 systemd 配置中加入该命令。
检查 python 版本
OceanBase 相关脚本依赖 python 2.7.x,需检查 python 版本以确保相关脚本能够正常运行。
手动修改方式: 通过软件包管理安装 python 2.7,确保执行 python -V 命令返回的版本为 2.7。
检查是否开启了 Swap
检查部署机器是否启用 Swap 分区。建议禁用 Swap 分区,避免性能抖动。
手动修改方式: 执行 swapoff/swapon -a,以及在 /etc/fstab(持久化作用)中删除 Swap 相关条目。
检查命令是否存在
确保 OceanBase 及 OCP 运行、运维依赖的工具包存在。
rpm 包 | 对应命令 | 说明 |
|---|---|---|
net-tools | netstat、arp、ether-wake、ifconfig、ipmaddr、iptunnel、mii-diag、mii-tool、nameif、plipconfig、route、slattach | 检查是否安装了网络相关的命令包,运维依赖命令,建议安装。 |
mtr | mtr | 网络测试工具,运维依赖命令,建议安装。 |
tar | tar | linux 打包工具,运维依赖命令,建议安装。 |
binutils | addr2line、ar、as、c++filt、dwp、elfedit、gprof、ld、ld.bfd、ld.gold、nm、objcopy、objdump、ranlib、readelf、size、strings、strip | linux 二进制工具集,运维依赖命令,建议安装。 |
bind-utils | delv、dig、host、mdig、nslookup、nsupdate | linux DNS 工具集,建议安装。 |
curl | curl | 命令行文本传输工具,运维依赖命令,建议安装。 |
nc | nc | netcat 网络工具,运维依赖命令,建议安装。 |
iproute | arpd、bridge、cbq、ctstat、devlink、genl、ifcfg、ifstat、ip、lnstat、nstat、rdma、routef、routel、rtacct、rtmon、rtpr、rtstat、ss、tc | 网络管理工具包,运维依赖命令,建议安装。 |
手动修改方式: 确保网络通畅、相关软件源已配置好,并通过 yum/apt-get/zypper install 等命令安装软件包。
检查 so 文件是否存在
检查如下 so 文件是否存在:
rpm 包 | 说明 |
|---|---|
libaio | 程序运行依赖包 |
libatomic | 程序运行依赖包 |
手动修改方式: 确保网络通畅、相关软件源已配置好,并通过 yum/apt-get/zypper install 等命令安装软件包。
检查 admin 用户是否存在
检查目前 OCP 或 OceanBase 相关的服务是否以 admin 用户运行。
手动修复方式: 通过 useradd、groupadd 命令来设置 uid=500、gid=500 的 admin 用户。
检查 SELinux 是否启用
检查系统是否启用 SELinux,SELinux 使用的委任式访问控制 (Mandatory Access Control, MAC),可以针对特定的程序与特定的档案资源来进行权限的控管,建议禁用 SELinux。
手动修复方式: 利用 /usr/sbin/setenforce 命令禁用 selinux(设置为 0),并将 /etc/selinux/config 中的配置修改为 disabled。
检查 ulimit 信息
主要用于限制 shell 启动进程所占用的资源。OBServer 进程涉及的几个限制主要包括线程最大栈空间大小(stack)、最大文件句柄数(open files)和 core 文件大小(core file size)。为避免系统限制对服务造成影响,建议 ulimit 相关项设置为如下目前所需的配置:
root soft nofile 655350
root hard nofile 655350
admin soft nofile 655350
admin hard nofile 655350
admin soft stack 20480
admin hard stack 20480
admin soft nproc 655360
admin hard nproc 655360
admin soft core unlimited
admin hard core unlimited
手动修复方式: 创建 /etc/security/limits.d/99-oceanbase_limits.conf 文件,并将以上配置内容写入文件中,同时确保该文件拥有最高优先级。




