速卖通素材
努力

单台Linux服务器同时部署Redis和MySQL,推荐的最低硬件配置是什么?

服务器

在单台 Linux 服务器上同时部署 Redis 和 MySQL(非生产级,仅用于开发、测试或轻量级应用),推荐的最低硬件配置需兼顾两者的基本运行需求及避免资源争抢。以下是基于官方文档、社区实践和性能经验的务实建议


✅ 推荐最低硬件配置(轻量级/开发/POC 场景)

组件 推荐最低配置 说明
CPU 2 核(vCPU 或物理核心) MySQL(尤其 InnoDB)和 Redis 均受益于多核;1 核易成瓶颈(尤其并发连接或持久化时)。
内存(RAM) 4 GB ⚠️ 关键项!
• MySQL:至少 1.5–2 GB 分配给 innodb_buffer_pool_size(建议设为物理内存的 50–70%,但单机共存需让步)
• Redis:至少 512 MB–1 GB(若用作缓存,需预留空间避免 OOM)
• 系统 + 其他进程:预留 ≥512 MB
低于 4 GB 极易触发 swap,导致严重性能下降甚至服务不可用
存储(磁盘) SSD,≥20 GB 可用空间 • HDD 在 RDB/AOF 重写 + MySQL redo log/ibdata 写入时 I/O 延迟高,不推荐
• SSD 显著改善持久化性能与响应延迟
• 20 GB 满足 OS + MySQL 数据(<5 GB)+ Redis RDB/AOF(<2 GB)+ 日志 + 预留空间
操作系统 64 位 Linux(如 Ubuntu 22.04 / CentOS Stream 9 / Rocky 9) 必须 64 位(Redis 7+ / MySQL 8+ 均要求),内核 ≥5.4 更佳(优化内存管理与 I/O)

⚠️ 关键注意事项(比硬件更重要!)

  1. 内存分配必须手动调优(否则极易崩溃)

    • MySQL 示例(my.cnf
      [mysqld]
      innodb_buffer_pool_size = 1.5G    # 不超过总内存 40%(因需共享给 Redis)
      max_connections = 100             # 避免连接数过多耗尽内存
      tmp_table_size = 32M
      max_heap_table_size = 32M
    • Redis 示例(redis.conf
      maxmemory 1g                      # 必须设置!防止吃光内存
      maxmemory-policy allkeys-lru      # 合理驱逐策略
      save 900 1                        # 减少 RDB 频率(或禁用:save "")
      appendonly no                     # 开发环境可关闭 AOF(或设为 everysec)
  2. 禁止启用 swap 用于 Redis/MySQL(或严格限制)

    • vm.swappiness=1(而非默认 60)
    • Redis 使用 swap 会导致超时断连;MySQL 交换会极大拖慢查询。
  3. 端口与资源隔离

    • 修改默认端口(如 Redis 改为 6380,MySQL 为 3307)避免冲突
    • 使用 systemd 限制各自内存/CPU(可选但强烈推荐):
      # /etc/systemd/system/mysqld.service.d/limits.conf
      [Service]
      MemoryMax=2G
      CPUQuota=70%
  4. 备份与监控不可省略

    • 即使是开发机,也应配置定时 mysqldump + redis-cli bgsave
    • 安装 htopiotopredis-cli info memorymysqladmin status 监控实时负载

❌ 不推荐的配置(常见踩坑)

配置 问题
1 核 2 GB RAM MySQL 启动后剩余内存不足 Redis 加载数据 → Redis OOM kill 或频繁 swap
HDD 存储 Redis bgsave + MySQL flush logs 同时触发时 I/O 队列堆积,延迟飙升
未设 maxmemory Redis 无节制增长,挤占 MySQL 内存 → MySQL 报错 Out of memory
默认 swappiness=60 内存紧张时系统优先 swap 进程页,Redis/MySQL 响应时间从 ms 级升至秒级

📈 扩展建议(当业务增长时)

  • 50+ 并发用户 / 日活 < 1k → 升级到 4 核 8 GB + NVMe SSD
  • 生产环境(任何规模)务必分离部署:Redis 和 MySQL 分属不同服务器(或容器/K8s),并配置专用监控(Prometheus + Grafana)、高可用(Redis Sentinel / MySQL Group Replication)。

总结一句话

“4 GB 内存 + 2 核 + SSD” 是单机共存 Redis 与 MySQL 的实际底线;低于此配置,不是“能跑”,而是“随时崩”,且调优成本远高于升级硬件。

如需,我可为你提供:

  • 完整的 my.cnf + redis.conf 调优模板(适配 4GB 场景)
  • systemd 资源限制配置脚本
  • 自动化监控检查脚本(Bash/Python)

欢迎继续提问!

未经允许不得转载:轻量云Cloud » 单台Linux服务器同时部署Redis和MySQL,推荐的最低硬件配置是什么?