阿里云服务器安装java和mysql推荐配置?

在阿里云服务器上部署 Java 应用和 MySQL 数据库时,“推荐配置”高度依赖于你的业务场景、用户量和预算。没有一种通用的“最佳配置”,只有“最适合当前阶段的配置”。

以下是针对不同使用场景的详细配置建议及选型逻辑:

1. 核心原则:计算与存储分离(重要)

如果你的项目是生产环境且预期有增长,强烈建议将 Java 应用服务器MySQL 数据库 部署在两台不同的 ECS 实例上。

  • 原因:避免资源争抢(CPU/内存),便于独立扩展,且数据库备份和迁移更安全。
  • 以下配置分为“单台混合部署”(适合测试/个人项目)和“双机分离部署”(适合生产/企业项目)。

2. 场景一:开发测试 / 个人博客 / 低流量 Demo

特点:并发低,数据量小,主要为了跑通流程或展示。

组件 推荐配置 (ECS) 操作系统 说明
规格 2 核 4G2 核 8G CentOS 7.9 / Ubuntu 20.04+ 4G 内存是运行 Java + MySQL 的底线,2G 会频繁 Swap 导致卡顿。
带宽 3 Mbps – 5 Mbps 按固定带宽购买更划算。如果流量大,可开启“按流量计费”配合云盾防护。
磁盘 40GB – 60GB ESSD PL0 系统盘足够即可,无需额外挂载数据盘。
JDK JDK 11 或 JDK 17 (LTS) 选择长期支持版本,稳定性更好。
MySQL MySQL 5.7 或 8.0 5.7 兼容性最好,8.0 性能更强但占用内存稍多。
  • 优化建议
    • Java: 启动参数 -Xms512m -Xmx1024m(限制堆内存,防止 OOM)。
    • MySQL: 修改 my.cnf,设置 innodb_buffer_pool_size = 1G(约占物理内存的 25%-30%)。

3. 场景二:中小型生产环境 / 企业官网 / 初创业务

特点:有一定并发,数据需要持久化,要求高可用性,预算适中。

A. 方案 A:单机混合部署(省钱版)

  • 规格4 核 8G4 核 16G
  • 适用:日活 < 1 万,无复杂分库分表需求。
  • 注意:必须确保内存充足,否则 Java 和 MySQL 同时启动容易抢占资源导致服务不可用。
    • Java: -Xms2g -Xmx4g
    • MySQL: innodb_buffer_pool_size = 4G (8G 内存机器) 或 8G (16G 内存机器)。

B. 方案 B:双机分离部署(推荐版)

这是最稳妥的生产架构。

角色 推荐配置 说明
应用服务器 (App) 2 核 4G4 核 8G 负责业务逻辑,可横向扩展(加多台做负载均衡)。
数据库服务器 (DB) 2 核 4G 起步,推荐 4 核 8G 数据库对 I/O 和内存敏感,建议单独配一块高性能 SSD 数据盘。
网络 内网互通 (VPC) 确保 App 连 DB 走内网,速度快且免费。
安全组 仅开放 80/443 (App) 和 3306 (DB 仅限 App IP) 严禁将 MySQL 端口 3306 对公网开放。

4. 场景三:中大型生产环境 / 高并发 / X_X级

特点:高可用、读写分离、自动扩容、数据容灾。

  • 架构策略
    1. 应用层:使用 SLB (负载均衡) + 多台 ECS (至少 2 台,4 核 8G 起) + Nginx 反向X_X。
    2. 数据库层不要自己买 ECS 装 MySQL。直接使用 阿里云 RDS MySQL
      • 优势:自带主备高可用、自动备份、监控告警、慢查询分析、一键升级。
      • 配置:基础版(2 核 4G 起)或 高可用版(主备节点,4 核 8G 起)。
    3. 缓存层:引入 Redis (阿里云 Redis 版) 处理热点数据,减轻 MySQL 压力。

5. 关键软件安装与调优建议

无论选择哪种配置,以下调优能显著提升稳定性:

Java (Spring Boot/Jar 包) 启动参数

# 示例:针对 4G 内存机器
java -jar -Xms1g -Xmx2g 
     -XX:+UseG1GC 
     -XX:MaxGCPauseMillis=200 
     -XX:+HeapDumpOnOutOfMemoryError 
     -Xloggc:/var/log/gc.log 
     app.jar
  • 关键点:堆内存 (-Xmx) 不要超过物理内存的 50%,预留空间给操作系统和其他进程(如 MySQL)。

MySQL 配置文件 (/etc/my.cnf)

对于自建 MySQL,务必调整以下参数以适配阿里云 ECS 的内存:

[mysqld]
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 连接数 (根据并发调整,默认 151 通常够用)
max_connections = 200

# 关键:缓冲池大小 (InnoDB Buffer Pool Size)
# 如果是 4G 内存机器,设为 2G;8G 机器设为 4G-5G
innodb_buffer_pool_size = 2G 

# 日志文件位置
general_log_file = /var/lib/mysql/general.log
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 2

阿里云特有组件推荐

  1. 云监控 (CloudMonitor):务必安装 Agent,监控 CPU、内存、磁盘 IO 和带宽。
  2. 云安全中心:开启基础版,防御暴力破解和病毒。
  3. 快照:在重大操作前手动创建系统盘快照。

总结建议

  1. 如果你刚开始:直接购买 2 核 4G2 核 8G 的 ECS,安装 JDK 17 和 MySQL 8.0,先跑起来再说。
  2. 如果你准备上线运营
    • 应用:购买 2 台 2 核 4G (或 4 核 8G) 服务器,通过 Nginx 做负载均衡。
    • 数据库强烈建议购买阿里云 RDS MySQL 高可用版(哪怕是最小的规格),价格差异不大,但省去了运维数据库的 90% 麻烦,且数据安全更有保障。
  3. 避坑指南
    • 千万不要把 Java 堆内存设得太大,导致 MySQL 被交换到磁盘。
    • 千万不要把 MySQL 端口 3306 对 0.0.0.0 开放。
    • 定期清理 /var/log 下的日志,防止磁盘写满。
未经允许不得转载:CLOUD技术博 » 阿里云服务器安装java和mysql推荐配置?