在单台 Linux 服务器上同时部署 Redis 和 MySQL 时,硬件配置的核心挑战在于内存竞争。Redis 是纯内存数据库,性能完全依赖可用内存;而 MySQL 虽然使用磁盘存储,但其 Buffer Pool(缓冲池)也大量占用内存。如果配置过低,会导致频繁交换(Swap),造成严重的性能抖动甚至服务崩溃。
以下是针对不同业务场景的推荐最低硬件配置及关键考量:
1. 核心配置建议(按场景分类)
场景 A:开发/测试环境 / 极低流量个人项目
适用情况:仅用于学习、本地调试或日访问量低于几百次的静态页面缓存。
- CPU: 2 核 (vCPU)
- Redis 对 CPU 要求不高(单线程处理命令),但需保证上下文切换顺畅。
- MySQL 需要足够的算力处理查询解析和索引扫描。
- 内存: 4 GB (绝对底线)
- 分配策略:MySQL 约占用 1GB-1.5GB,Redis 约占用 1GB-1.5GB,系统及其他进程预留 1GB。
- 风险:一旦数据量稍大或并发稍高,极易触发 Swap,导致响应延迟飙升。
- 磁盘: 20 GB SSD
- 必须使用 SSD。机械硬盘(HDD)无法承受 MySQL 的随机读写和 Redis 的持久化压力。
场景 B:生产环境 / 中小型业务(推荐起步配置)
适用情况:企业官网、SaaS 应用初期、日均 PV 数千至数万。
- CPU: 4 核
- 提供足够的并行处理能力,防止 MySQL 复杂查询阻塞 Redis 主线程(虽然 Redis 单线程,但网络 IO 和持久化会占用资源)。
- 内存: 8 GB – 16 GB (强烈建议 8GB 起步)
- 分配策略:
- Redis: 可设置
maxmemory为总内存的 30%-40%(例如 8GB 机器给 Redis 2.5GB-3GB)。 - MySQL: 设置
innodb_buffer_pool_size为总内存的 50%-60%(例如 8GB 机器给 MySQL 4GB-5GB)。 - OS 预留: 剩余部分留给操作系统文件缓存和其他守护进程。
- Redis: 可设置
- 优势:在这个配置下,通常可以将热点数据全部放入内存,避免磁盘 I/O 瓶颈。
- 分配策略:
- 磁盘: 40 GB+ NVMe/SSD
- 建议采用 RAID 10 或高性能云盘,确保 IOPS 足够支撑双数据库的混合负载。
2. 关键优化策略(比硬件更重要)
在单台服务器共存时,软件层面的资源配置直接决定了硬件是否够用。如果只堆硬件而不做限制,系统很容易挂掉。
A. 内存隔离与限制 (最关键)
不要依赖操作系统的自动分配,必须在配置文件中进行硬限制:
- Redis (
redis.conf):# 设置为物理内存的 40% 左右,并开启 LRU 淘汰策略防止 OOM maxmemory 3gb maxmemory-policy allkeys-lru - MySQL (
my.cnf):# 设置为物理内存的 50%-60%,严禁超过总内存的 70% innodb_buffer_pool_size = 4G # 关闭其他不必要的缓冲以节省内存 key_buffer_size = 64M sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 2M
B. 磁盘 I/O 优化
- 分离目录:将 MySQL 的数据目录(
datadir)和 Redis 的 RDB/AOF 文件放在不同的物理磁盘分区上(如果服务器支持多块盘),以减少 I/O 争抢。 - 禁用 Swap:在单库共存且内存紧张时,强烈建议禁用 Swap。一旦 Redis 或 MySQL 触发 Swap,性能会下降几个数量级。
# 临时禁用 sudo swapoff -a # 永久禁用 (修改 /etc/fstab 注释掉 swap 行)
C. 网络与端口
- 确保防火墙规则正确,避免内网通信受阻。
- 监听地址建议绑定
127.0.0.1(如果应用在同一台服务器),减少网络协议栈开销,提高安全性。
3. 总结结论
| 组件 | 最低配置 (开发/测试) | 推荐配置 (生产/中小业务) | 备注 |
|---|---|---|---|
| CPU | 2 核 | 4 核 | 4 核能更好应对突发查询 |
| 内存 | 4 GB | 8 GB | 必须严格限制 maxmemory 和 buffer_pool_size |
| 磁盘 | 20 GB SSD | 40 GB+ SSD/NVMe | 机械硬盘不可用 |
| Swap | 建议禁用 | 必须禁用 | 防止性能雪崩 |
最终建议:
如果您的预算允许,请直接选择 4 核 CPU + 8GB 内存 + SSD 的配置。这是单台服务器运行“Redis + MySQL"组合的黄金平衡点。低于此配置(如 2G 或 4G 内存)在生产环境中极不稳定,维护成本远高于购买一台更高配置服务器的成本。
云知道CLOUD