软硬件环境建议配置
GreatDB Cluster可以很好的部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统。支持主流的Linux操作系统。
Linux 操作系统版本要求
| Linux操作系统 | 版本 | 服务器架构 |
|---|---|---|
| Red Hat Enterprise Linux | 7.2 及以上 | x86_64,ARM_64 |
| CentOS | 7.2 及以上 | x86_64,ARM_64 |
| SUSE Enterprise Linux | 12SP3 及以上 | x86_64,ARM_64 |
| Ubuntu | 16.04 及以上 | x86_64,ARM_64 |
| Debian | 8.3 及以上 | x86_64,ARM_64 |
服务器建议配置
开发及测试环境
| 服务器类型 | 最小数量 | 最低配置 |
|---|---|---|
| SQL节点 | 3(可和数据节点复用) | 32C,64G,1TB,千兆网卡(可配置多块) |
| 数据节点 | 3 | 32C,64G,1TB SSD存储,千兆网卡(可配置多块) |
SQL节点最小数量为3,最好配置成奇数个,如3,5,7。
数据节点个数建议为3的整数倍。每个shard内3副本。
生产环境
| 服务器类型 | 最小数量 | 最低配置 |
|---|---|---|
| SQL节点 | 3 | 32C,128G,1.5TB,万兆网卡(可配置多块) |
| 数据节点 | 3 | 32C,256G,2TB SSD存储,万兆网卡(可配置多块) |
SQL节点最小数量为3,最好配置成奇数个,如3,5,7。SQL节点存储集群元数据,同时承担大部分计算任务,有些优化策略会生成临时表,故如果用户对性能要求很高,可以配置SSD。
数据节点最小数量为3,一个shard内最小副本数为3,最大副本数为9,推荐一个逻辑shard内副本个数为3。
环境与系统配置检查
本文介绍在部署GreatDB Cluster之前,需要进行的环境与系统配置检查。
BIOS设置
BIOS需要关闭以下选项:
- Numa关闭
- Cstate关闭
- Pstate关闭
- EIST关闭
- Power saving 关闭
- Turbo Mode 关闭
- BMC share link关闭
- SMMU关闭(鲲鹏服务器)
CPU模式
数据库服务器的CPU运行模式需要调整到performance模式,以追求比较稳定的性能。
以centos7为例,执行以下命令检查和设置cpu运行模式:
## 检查当前cpu模式,发现是powersave模式
[root@greatdb-test-01 ~]# cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 1.20 GHz - 2.50 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 1.20 GHz and 2.50 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: 2.00 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
2300 MHz max turbo 4 active cores
2300 MHz max turbo 3 active cores
2400 MHz max turbo 2 active cores
2500 MHz max turbo 1 active cores
## 设置CPU为performance模式
[root@greatdb-test-01 ~]# cpupower frequency-set -g "performance"
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
....
内存swap
vm.swappiness是操作系统控制物理内存交换出去的策略。它允许的值是一个百分比的值,最小为0,最大运行100,该值默认为60。vm.swappiness设置为0表示尽量少swap,100表示尽量将inactive的内存页交换出去。
GreatDB Cluster自己管理内存缓存,cache的文件数据来说占用了内存,对数据库几乎没有任何好处。所以,我们在GreatDB Cluster的服务器上最好设置vm.swappiness=0。
我们可以通过在sysctl.conf中添加一行:
echo "vm.swappiness = 0" >>/etc/sysctl.conf
并使用sysctl -p来使得该参数生效。
文件系统
生产环境部署,建议使用 EXT4 类型文件系统,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。
将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc 和 noatime 挂载参数。
mount /dev/xxx /data -o noatime,nodelalloc



