MySQL生产上线前准备
1. 硬件标准化
-
数据库专用服务器选型建议
- CPU:优先选择多核处理器(如Intel Xeon/AMD EPYC),建议16核以上,支持超线程技术。
- 内存:根据数据量规划,建议不低于64GB,且内存带宽需匹配CPU性能(如DDR4 3200MHz以上)。
- 存储:
- 主库:推荐SSD(NVMe协议)或PCIe闪存卡,IOPS需≥5万,延迟<1ms。
- 从库/备份:可选用SAS HDD,但需配置RAID 10。
- 网络:万兆网卡(双端口绑定),避免网络成为瓶颈。
- 冗余设计:双电源、热插拔硬盘、冗余风扇,确保高可用性。
-
标准化收益
- 故障排查效率提升50%以上,硬件兼容性问题减少80%。 出现业务系统故障或性能问题。可以让拍错或者优化时间大大缩减。帮助管理员可以快速根据基准值结合经验,定位瓶颈问题。
2. 操作系统及配置标准化
-
操作系统选择
- 推荐版本:CentOS 7.9/8.5 或 RHEL 8,内核版本≥4.18,并且在同一组集群架构的服务器系统都保持系统和内
核版本一致。避免使用EOL版本。
- 推荐版本:CentOS 7.9/8.5 或 RHEL 8,内核版本≥4.18,并且在同一组集群架构的服务器系统都保持系统和内
-
关键配置优化
-
关闭NUMA
- BIOS层:进入服务器BIOS(如HP iLO/Dell iDRAC),找到“Advanced Memory Settings”,禁用NUMA。
- OS层:修改
/etc/default/grub
,添加numa=off
,执行grub2-mkconfig -o /boot/grub2/grub.cfg
。 - MySQL层:启动脚本中添加
numactl --interleave=all
,确保内存分配均衡。
-
CPU高性能模式
- 在BIOS中设置“Power Policy”为“Maximum Performance”,OS层执行:
cpupower frequency-set -g performance
- 在BIOS中设置“Power Policy”为“Maximum Performance”,OS层执行:
-
RAID配置
- 推荐方案:RAID 10(性能与冗余平衡),避免RAID 5/6(写惩罚高)。
- 缓存策略:RAID卡启用Write-Back模式,配置BBU(电池备份单元)。
-
关闭透明大页(THP)
-
THP是什么:Linux内核的一种内存管理机制,自动将小内存页(4KB)合并为大页(通常2MB),旨在减少内存访问开销,提升性能。
为什么需要关闭:
数据库场景缺陷:THP的自动合并机制可能导致内存碎片化,引发不可预测的延迟波动(如MySQL在高并发时出现性能抖动)。频繁的内存合并(khugepaged进程)可能占用CPU资源。- 永久生效方法(适用于systemd系统):
-
vi /etc/rc.local
在文件末尾添加如下指令:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
[root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@master ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
确保系统每次启动时自动执行关闭THP的操作,避免因重启失效。
(注:在部分系统(如CentOS 7+)中,rc.local默认无执行权限,需额外操作:chmod +x /etc/rc.d/rc.local)