opengauss教程FG002-openGauss软硬件环境规划与选型
目录大纲
Part01-基础概念与理论知识
1.1 硬件环境规划的重要性
硬件环境是数据库运行的基础,合理的硬件规划直接影响openGauss数据库的性能、可靠性和可扩展性。风哥教程参考opengauss官方文档,硬件规划需要考虑以下因素:
- 业务负载特征:OLTP/OLAP混合场景的资源需求不同
- 数据规模:根据数据量和增长趋势选择存储容量
- 性能要求:响应时间、并发处理能力等指标
- 高可用性需求:冗余设计、故障切换能力
- 预算限制:在性能和成本之间找到平衡点
1.2 操作系统选择与版本要求
openGauss支持多种操作系统,不同版本的操作系统在兼容性和性能方面有所差异:
- 推荐操作系统:
- Oracle Linux 9.3 / RHEL 9.3
- Oracle Linux 8.6 / RHEL 8.6
- Oracle Linux 7.9 / RHEL 7.9
- 国产操作系统:
- 麒麟操作系统 Kylin v10 SP3
- 欧拉操作系统 EulerOS 2.0 SP8
- 注意事项:
- 确保操作系统版本与openGauss版本兼容
- 定期更新操作系统补丁
- 关闭不必要的服务,减少系统负载
风哥提示:选择操作系统时,需要考虑数据库版本的兼容性要求,同时兼顾系统稳定性和性能。
1.3 网络环境设计原则
网络环境是集群部署的关键因素,直接影响数据同步和节点间通信:
- 网络架构:建议采用分层网络架构,分离业务网络和管理网络
- 带宽要求:主备节点间建议使用万兆网络,确保数据同步的及时性
- 延迟要求:节点间网络延迟应控制在1ms以内,避免影响同步性能
- 冗余设计:实施网络冗余,避免单点故障
- 安全措施:配置防火墙规则,限制访问权限
Part02-生产环境规划与建议
2.1 硬件配置推荐方案
不同规模部署的硬件配置建议
- 小型部署(测试/开发环境):
- CPU:4-8核
- 内存:16-32GB
- 存储:200GB SSD
- 网络:千兆网络
- 中型部署(生产环境):
- CPU:16-32核
- 内存:64-128GB
- 存储:500GB-2TB SSD
- 网络:万兆网络
- 大型部署(核心业务):
- CPU:32-64核
- 内存:128GB-512GB
- 存储:2TB以上 SSD/NVMe
- 网络:万兆或更高
风哥提示:
2.2 操作系统参数优化
操作系统参数对数据库性能影响显著,需要进行合理配置:
- 内存管理:
- 禁用透明大页(Transparent Huge Pages)
- 配置合理的内存限制和交换空间
- 文件系统:
- 使用XFS或ext4文件系统
- 调整文件系统参数,如inode数量、块大小等
- 内核参数:
- 调整网络参数,如TCP连接数、缓冲区大小等
- 优化进程调度和资源限制
2.3 存储规划与性能优化
学习交流加群风哥微信: itpux-com
存储规划直接影响数据库的IO性能和可靠性:
- 存储类型:优先选择SSD存储,对于大型部署可考虑NVMe
- RAID配置:
- RAID 10:提供最佳的性能和可靠性
- RAID 5:在性能和容量之间取得平衡
- 分区规划:
- 数据文件、日志文件、备份文件分离到不同分区
- 预留足够的空间用于数据增长和日志存储
- IO调度:使用deadline或cfq调度器,根据存储类型选择合适的IO调度策略
Part03-生产环境项目实施方案
3.1 环境检查与准备
# 检查CPU核心数
[root@fgedu.net.cn ~]# nproc
16
# 检查内存大小
[root@fgedu.net.cn ~]# free -h
total used free shared buff/cache available
Mem: 63G 2.1G 58G 1.2G 3.2G 60G
# 检查磁盘空间
[root@fgedu.net.cn ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 35G 26% /
/dev/sdb1 500G 20G 450G 5% /opengauss
# 检查操作系统版本
[root@fgedu.net.cn ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.6 (Ootpa)
[root@fgedu.net.cn ~]# nproc
16
# 检查内存大小
[root@fgedu.net.cn ~]# free -h
total used free shared buff/cache available
Mem: 63G 2.1G 58G 1.2G 3.2G 60G
# 检查磁盘空间
[root@fgedu.net.cn ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 35G 26% /
/dev/sdb1 500G 20G 450G 5% /opengauss
# 检查操作系统版本
[root@fgedu.net.cn ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.6 (Ootpa)
3.2 系统参数配置
学习交流加群风哥QQ113257174
# 禁用透明大页
[root@fgedu.net.cn ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@fgedu.net.cn ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 配置内核参数
[root@fgedu.net.cn ~]# cat >> /etc/sysctl.conf << EOF
# openGauss database parameters
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.somaxconn = 65535
EOF
# 应用内核参数
[root@fgedu.net.cn ~]# sysctl -p
[root@fgedu.net.cn ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@fgedu.net.cn ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 配置内核参数
[root@fgedu.net.cn ~]# cat >> /etc/sysctl.conf << EOF
# openGauss database parameters
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.somaxconn = 65535
EOF
# 应用内核参数
[root@fgedu.net.cn ~]# sysctl -p
3.3 存储与网络配置
# 检查磁盘IO性能
[root@fgedu.net.cn ~]# iostat -d -x 1 3
Device r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
# 检查网络带宽
[root@fgedu.net.cn ~]# ethtool eth0 | grep Speed
Speed: 10000Mb/s
[root@fgedu.net.cn ~]# iostat -d -x 1 3
Device r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
# 检查网络带宽
[root@fgedu.net.cn ~]# ethtool eth0 | grep Speed
Speed: 10000Mb/s
Part04-生产案例与实战讲解
4.1 硬件配置检查
# 检查CPU信息
[root@fgedu.net.cn ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
更多视频教程www.fgedu.net.cn
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz
[root@fgedu.net.cn ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
更多视频教程www.fgedu.net.cn
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz
4.2 操作系统参数调优
# 配置用户限制
[root@fgedu.net.cn ~]# cat >> /etc/security/limits.conf << EOF
# openGauss database limits
opengauss soft nofile 65536
opengauss hard nofile 65536
opengauss soft nproc 131072
opengauss hard nproc 131072
EOF
# 检查系统时间同步
[root@fgedu.net.cn ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
==============================================================================
^* time1.aliyun.com 2 6 377 21 -69us[ -122us] +/- 22ms
^+ ntp.aliyun.com 2 6 377 20 -1893us[-1946us] +/- 36ms
[root@fgedu.net.cn ~]# cat >> /etc/security/limits.conf << EOF
# openGauss database limits
opengauss soft nofile 65536
opengauss hard nofile 65536
opengauss soft nproc 131072
opengauss hard nproc 131072
EOF
# 检查系统时间同步
[root@fgedu.net.cn ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
==============================================================================
^* time1.aliyun.com 2 6 377 21 -69us[ -122us] +/- 22ms
^+ ntp.aliyun.com 2 6 377 20 -1893us[-1946us] +/- 36ms
4.3 存储性能测试
# 使用fio测试磁盘性能
[root@fgedu.net.cn ~]# fio –name=randwrite –ioengine=libaio –direct=1 –bs=4k –size=1G –numjobs=4 –rw=randwrite –iodepth=32 –runtime=60 –group_reporting
randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=32
…省略部分输出…
write: IOPS=128.5k, BW=502MiB/s (526MB/s)(30.1GiB/60.0s)
cpu : usr=12.39%, sys=43.56%, ctx=767914, majf=0, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
更多学习教程公众号风哥教程itpux_com
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
[root@fgedu.net.cn ~]# fio –name=randwrite –ioengine=libaio –direct=1 –bs=4k –size=1G –numjobs=4 –rw=randwrite –iodepth=32 –runtime=60 –group_reporting
randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=32
…省略部分输出…
write: IOPS=128.5k, BW=502MiB/s (526MB/s)(30.1GiB/60.0s)
cpu : usr=12.39%, sys=43.56%, ctx=767914, majf=0, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
更多学习教程公众号风哥教程itpux_com
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
Part05-风哥经验总结与分享
5.1 硬件选型最佳实践
- CPU选择:优先选择高主频、多核心的CPU,注重单核性能
- 内存配置:根据数据库大小和并发需求,配置足够的内存,建议内存大小为数据量的25-50%
- 存储选择:
- 日志文件:使用低延迟的NVMe存储
- 数据文件:使用高性能SSD
- 备份文件:可使用大容量HDD
- 扩展性考虑:预留足够的硬件扩展空间,以应对业务增长
5.2 操作系统配置建议
- 系统版本:选择稳定的LTS版本,避免使用最新版本
- 内核参数:根据硬件配置和数据库需求进行调优
- 安全配置:
- 启用SELinux或AppArmor
- 配置防火墙规则
- 定期更新系统补丁
- 文件系统:使用XFS文件系统,配置合理的挂载参数
from DB视频:www.itpux.com
5.3 环境规划常见问题与解决方案
- 硬件资源不足:
- 症状:数据库性能下降,响应时间延长
- 解决方案:升级硬件或优化数据库配置
- 存储性能瓶颈:
- 症状:IO等待时间长,SQL执行缓慢
- 解决方案:使用高性能存储,优化IO调度策略
- 网络延迟高:
- 症状:主备同步延迟,集群状态异常
- 解决方案:优化网络架构,使用万兆网络
- 系统参数不合理:
- 症状:系统不稳定,资源使用效率低
- 解决方案:根据官方文档和最佳实践调整参数
风哥提示:环境规划是一个持续的过程,需要根据业务需求和系统运行情况不断调整和优化,确保数据库系统的稳定运行和最佳性能。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
