部署仅 MySQL 数据库(即不运行 Web 服务、应用层等,纯数据库服务器),推荐配置需兼顾性能、稳定性、数据安全与成本效益。以下是分场景的务实建议(基于主流生产实践和 MySQL 官方推荐):
✅ 基础原则
- 内存 > CPU > 磁盘 I/O > 网络(MySQL 对内存和磁盘延迟最敏感)
- 避免共享资源:数据库服务器应独占物理/虚拟资源,不混部其他服务
- 优先 SSD(NVMe 最佳):机械盘(HDD)仅适用于极低负载或归档场景
- 系统盘与数据盘分离:
/和/var/lib/mysql分开挂载(提升可靠性和维护性)
📋 推荐配置(按业务规模)
| 场景 | 日均查询量 | 数据量 | 推荐配置 | 说明 |
|---|---|---|---|---|
| 轻量级(开发/测试/小网站) | < 1k QPS | < 5 GB | • CPU:2 核(Intel Xeon E3 或 AMD EPYC 7xx2+) • 内存:4–8 GB • 磁盘:≥50 GB NVMe SSD(如 AWS gp3 / 阿里云 ESSD PL0) • OS:Ubuntu 22.04 LTS / CentOS Stream 9 / Rocky Linux 9 |
✅ innodb_buffer_pool_size = 60–75% of RAM(例:6GB)✅ 关闭 swap(或设 vm.swappiness=1)✅ 使用 XFS 文件系统(日志性能优于 ext4) |
| 中型生产(SaaS后台/电商主库) | 1k–5k QPS | 10–100 GB | • CPU:4–8 核(主频 ≥2.5 GHz,支持超线程) • 内存:16–32 GB • 磁盘:≥200 GB NVMe SSD(RAID 1 或云盘三副本) • OS:同上 + 内核参数优化( vm.dirty_ratio, vm.swappiness) |
✅ innodb_buffer_pool_size ≈ 70–80% RAM(例:24GB)✅ 启用 innodb_doublewrite=ON(防页损坏)✅ 开启 slow_query_log + long_query_time=1 |
| 高可用/中大型核心库 | 5k–20k+ QPS | 100 GB–2 TB | • CPU:8–16 核(推荐 Intel Gold 63xx / AMD EPYC 74xx) • 内存:64–128 GB(InnoDB 缓冲池是关键!) • 磁盘:≥1 TB NVMe(如 Intel Optane / AWS io2 Block Express) • 网络:万兆网卡(若主从跨机房) |
✅ 必配主从复制(异步/半同步)+ MHA/Orchestrator/PMM 监控 ✅ 使用 innodb_flush_method=O_DIRECT(绕过 OS cache)✅ 考虑 innodb_io_capacity=2000+(适配 NVMe) |
⚙️ 关键系统优化(必做)
# 1. 文件系统 & 挂载选项(/var/lib/mysql 所在分区)
xfs_info /var/lib/mysql # 确认为 XFS
mount | grep mysql # 应含: noatime, nobarrier (XFS), logbufs=8
# 2. 内核参数(/etc/sysctl.conf)
vm.swappiness = 1
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5
fs.aio-max-nr = 1048576
# 3. MySQL 配置示例(/etc/my.cnf.d/server.cnf)
[mysqld]
innodb_buffer_pool_size = 24G # 关键!建议 70% RAM
innodb_log_file_size = 1G # ≥ buffer_pool_size/4,但 ≤ 4G
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000
innodb_doublewrite = ON
max_connections = 500
table_open_cache = 4000
❌ 不推荐配置
- ❌ 内存 < 2GB(InnoDB 启动失败或频繁刷脏页)
- ❌ 使用 HDD 作为主数据盘(随机读写延迟 >10ms,严重拖慢 OLTP)
- ❌ 共享 CPU(如 Docker 默认 cgroup 限制未调优)
- ❌ Ubuntu Desktop / CentOS 7(已 EOL,缺乏长期安全更新)
💡 补充建议
- 云服务器选型:
- AWS →
m6i.xlarge(4vCPU/16GB)起步,数据盘选io2; - 阿里云 →
ecs.g7.2xlarge+ESSD PL1; - 自建 → Dell R750 / HPE DL380,配 RAID 10 NVMe。
- AWS →
- 备份策略:每日
mysqldump(小库)或Percona XtraBackup(大库)+ binlog 归档,异地存储。 - 监控必备:Prometheus + Grafana +
mysqld_exporter,关注Innodb_buffer_pool_hit_ratio(>99.5%)、Threads_connected、Slow_queries。
如需进一步精准推荐,请提供:
🔹 当前数据量 & 增长率
🔹 主要负载类型(读多?写多?复杂 JOIN?)
🔹 是否需要高可用(主从/集群)?
🔹 部署环境(云/物理机/容器?)
我可以为你定制配置清单 + my.cnf 模板 👇
CLOUD技术博