0%

MySQL 服务器选型与优化

MySQL 服务器选型与优化

本文面向单机单实例使用本地磁盘的 MySQL 服务器,列出需要优化的部分。内容仅供参考,一切以压力测试数据为准,切勿迷信参数配置。

MySQL 服务器选型与优化

使用本地磁盘的 MySQL 服务器硬件配置参考:

硬件配置参考:

硬件

  • BIOS

关闭 CPU 的节能模式,调整内存频率为最佳性能。

  • CPU

选择高主频、高缓存处理器,部署单实例 MySQL 的话,核心数量不需太多。

  • 硬盘

SSD:不差钱的选择 SSD 硬盘组建 RAID,IO 性能是极好的。

HDD:选择高转速,多硬盘组建 RAID10。根据存储不同类型文件(数据库和索引文件、事务日志文件、二进制文件、常规日志、临时文件和临时表),划分多个 RAID。

  • RAID卡

选择带电池,并且缓存大的 RAID 卡。强制开启 WriteBack 策略。

  • 内存

部署单实例 MySQL 的话,64GB 内存够用。

操作系统

  • 文件系统

跟随操作系统使用的文件系统即可。CentOS6 默认使用 EXT4 文件系统,CentOS7 默认使用 XFS 文件系统。

挂载分区时,使用 noatime、nodiratime、nobarrier 即可。

  • 磁盘队列调度策略
1
noop anticipatory [deadline] cfq
  • SWAP

SWAP 规划分区大小与内存一致(64GB)。我们希望 MySQL 尽量不要使用 SWAP 空间,RAM 与 SWAP 交换尽量懒惰。

1
2
3
/proc/sys/vm/swappiness =< 10
/proc/sys/vm/vm.dirty_ratio =< 5
/proc/sys/vm/vm.dirty_background_ratio =< 10
  • 内存分配器

使用 jemalloc 管理内存可以提高 MySQL 性能,降低系统 CPU 和 RAM 资源的利用。

  • 网络

优化 TCP 参数,更多参数视运行情况设置。

1
2
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_fin_timeout = 30
  • NUMA 架构
1
2
numa = off
numactl --interleave=all
  • 资源限制
1
ulimit -SH 65535

MySQL 配置文件

欲知后事如何,且听下回分解。