Ruoyi-vue项目上线生产环境,CentOS或Ubuntu最低系统配置推荐是多少?

针对 Ruoyi-Vue 项目(基于 Spring Boot + Vue)上线生产环境,最低系统配置推荐配置存在较大差异。Ruoyi 虽然代码结构清晰,但其依赖的组件(如 MySQL、Redis、Nginx、Spring Boot 应用本身)在并发量上来后对资源消耗并不低。

以下是针对不同场景的配置建议:

1. 核心结论速览

| 应用场景 | CPU (vCPU) | 内存 (RAM) | 硬盘 (SSD) | 操作系统建议 |
| :— | :— | :— | :— :— |
| 绝对最低 (测试/演示) | 2 核 | 4 GB | 40 GB | CentOS 7 / Ubuntu 18.04+ |
| 生产环境起步 (小流量) | 4 核 | 8 GB | 60 GB | CentOS 7.9 / Ubuntu 20.04 LTS |
| 生产环境推荐 (稳定运行) | 4~8 核 | 16 GB | 100 GB+ | CentOS 7.9 / Ubuntu 22.04 LTS |

注意:如果选择“绝对最低”配置,仅适用于内部测试、Demo 展示或日均访问量极低(<100 PV)的场景。一旦有真实用户访问,极易出现 OOM(内存溢出)或数据库连接池耗尽的情况。


2. 详细资源分析

A. 内存 (RAM) – 最关键瓶颈

Ruoyi 架构通常包含以下进程,它们都需要常驻内存:

  • JVM (Spring Boot): 默认堆内存设置不当容易崩溃。生产环境通常需分配 2G-4G 给 Java 进程。
  • MySQL: 即使是最小的实例,也需要至少 1G-2G 内存用于缓冲池(Buffer Pool)。
  • Redis: 缓存数据需要占用内存,且 Redis 本身开销较小,但需预留空间。
  • Nginx: 处理静态资源和反向X_X,占用较小,约 50MB-200MB。
  • 操作系统开销: Linux 内核及文件系统缓存。

计算逻辑
若选 4GB 内存:JVM (1.5G) + MySQL (1G) + OS/其他 (1G) = 3.5G,剩余缓冲极小,稍有大查询或高并发即导致 Swap 交换,系统变慢甚至宕机。
若选 8GB 内存:JVM (3G) + MySQL (2G) + Redis/OS/Nginx (2G) = 7G,留有安全余量,是生产环境的及格线

B. CPU (处理器)

  • Java 应用: 编译和运行时主要吃单核性能,但多线程并发下多核优势明显。
  • MySQL: 复杂的 SQL 查询和索引维护非常消耗 CPU。
  • 建议: 2 核 CPU 在处理简单 CRUD 时尚可,但在报表导出、复杂查询或高并发登录时极易达到 100% 负载。4 核是保证响应速度的底线。

C. 硬盘与 I/O

  • 类型: 必须使用 SSD。机械硬盘(HDD)会导致数据库读写极慢,直接拖垮整个系统。
  • 容量: 系统盘 + 数据库日志 + 文件上传(头像、附件等)。建议初始分配 60GB 以上,并开启自动扩容策略。

3. 操作系统选择:CentOS vs Ubuntu

CentOS (推荐版本:7.9 或 8 Stream)

  • 优点: 企业级稳定性极高,生态兼容性好,很多服务器厂商默认镜像。
  • 缺点: CentOS 7 已进入 EOL(生命周期结束),不再接收安全更新;CentOS 8 已转为 Stream 模式,适合开发但不完全等同于传统稳定版。
  • 适用: 追求极致稳定、运维团队熟悉 RHEL/CentOS 体系的企业。

Ubuntu (推荐版本:20.04 LTS 或 22.04 LTS)

  • 优点: 社区活跃,软件源新,Docker/Kubernetes 支持更好,命令相对统一。
  • 缺点: 某些老旧的企业内网环境可能对 Ubuntu 适配不佳。
  • 适用: 现代化云原生部署、频繁迭代的项目、个人或小团队运维。

结论: 两者皆可。如果是纯生产环境且无特殊偏好,目前更推荐使用 Ubuntu 20.04/22.04 LTS,因为它的软件包更新更快,能更好地支持新版 JDK (17/21) 和中间件。


4. 生产环境关键优化建议 (必读)

仅仅满足硬件配置是不够的,Ruoyi 上线前必须进行以下优化,否则配置再高也可能崩:

  1. JVM 参数调优:

    • 不要使用默认参数。根据物理内存设置 -Xms-Xmx
    • 例如 8G 机器:-Xms4g -Xmx4g -XX:+UseG1GC
    • 关闭不必要的 GC 日志输出以节省 IO。
  2. 数据库配置 (MySQL):

    • 修改 my.cnf,调整 innodb_buffer_pool_size(通常设置为物理内存的 50%-70%,如 8G 机器设为 4G-5G)。
    • 关闭 slow_query_log 除非需要排查问题(高并发下写日志会占 IO)。
  3. Redis 配置:

    • 设置 maxmemory-policy allkeys-lru,防止缓存撑爆内存。
    • 限制最大内存,避免影响 MySQL。
  4. Nginx 静态资源分离:

    • Ruoyi 的前端打包文件(vue 构建后的 dist)应放在 Nginx 中托管,不要由 Spring Boot 容器直接提供,减轻 Tomcat/Jetty 压力。
  5. Docker 部署 (强烈推荐):

    • 使用 Docker Compose 编排 MySQL, Redis, Nginx, App。
    • 可以更方便地隔离资源(如限制 MySQL 容器内存上限为 2G,防止其吃掉所有资源)。

总结建议

如果您正在采购云服务器或规划机房:

  • 预算有限/小规模业务: 选择 4 核 8G 内存 + SSD (CentOS 7.9 或 Ubuntu 20.04)。这是性价比最高的“保命”配置。
  • 正式商用/预计有增长: 选择 4 核 16G 内存 起步,数据库和缓存最好做主从分离或独立实例,不要全部挤在一台服务器上。
未经允许不得转载:云计算导航 » Ruoyi-vue项目上线生产环境,CentOS或Ubuntu最低系统配置推荐是多少?