在Java系统部署到云服务器时,配置选择需综合考虑性能、成本、扩展性和业务需求。以下是一份详细的配置指南:
1. 服务器基础配置
CPU
- 轻量级应用(小型网站/API服务):2~4核(如Spring Boot微服务)
- 中等负载(电商后端/ERP系统):4~8核(需处理并发请求)
- 高性能场景(大数据处理/高并发):8核以上(如Kafka、Elasticsearch集群)
内存
- 基础规则:Java应用内存 = JVM堆内存 + 元空间 + 堆外内存(如Netty)。
- 示例:
- 小型应用:4~8GB(JVM堆设4~6GB)
- 中等应用:8~16GB(如订单系统,堆设8~12GB)
- 大数据/高并发:32GB+(如Spark作业)
存储
- SSD云盘:适合大多数场景(IOPS高,延迟低)。
- 高性能云盘:数据库或高频读写场景(如MySQL、MongoDB)。
- 容量建议:
- 系统盘:50~100GB(装OS和基础环境)
- 数据盘:按需扩展(日志、数据库单独挂盘)
2. 云服务商选型
| 厂商 | 推荐机型 | 适用场景 |
|---|---|---|
| AWS | EC2 t3.xlarge(通用型) | 中小规模Java应用 |
| EC2 m5.2xlarge(内存优化) | 内存密集型(如缓存服务器) | |
| 阿里云 | ecs.g7ne.xlarge(通用型) | 国内业务,均衡性能 |
| ecs.r7.xlarge(内存优化) | Redis/大数据分析 | |
| 腾讯云 | S5.MEDIUM4(标准型) | 初创企业低成本方案 |
| SA3.4XLARGE(AMD EPYC) | 高性价比计算场景 |
3. JVM优化关键参数
- 堆内存:
-Xms4g -Xmx4g(初始=最大,避免动态调整开销) - GC选择:
- 低延迟:G1(
-XX:+UseG1GC,默认JDK9+) - 高吞吐:Parallel GC(
-XX:+UseParallelGC)
- 低延迟:G1(
- 元空间:
-XX:MaxMetaspaceSize=512m(防Metaspace泄漏)
4. 高可用与扩展
- 集群部署:至少2节点+Nginx负载均衡。
- 自动扩缩:
- K8s:HPA基于CPU/内存阈值扩缩Pod。
- 云厂商工具:AWS Auto Scaling、阿里云ESS。
- 数据库分离:RDS/云数据库(如AWS RDS MySQL)。
5. 监控与调优
- 必备工具:
- JVM监控:Prometheus + Grafana(配JMX Exporter)
- 日志:ELK(Elasticsearch+Logstash+Kibana)
- 关键指标:
- CPU利用率 >70%时考虑升配。
- Full GC频率 >1次/小时需优化JVM。
6. 成本优化技巧
- 预留实例:长期运行可省30%~50%(AWS/AliCloud均支持)。
- Spot实例:非核心业务使用(AWS Spot实例价格低至按需1/3)。
- 混合部署:静态资源用OSS/CDN,降低服务器压力。
示例配置方案
场景:日活10万的Spring Cloud电商系统
- 服务器:阿里云 ecs.g7ne.2xlarge(8核16GB)
- 数据库:阿里云 PolarDB MySQL 16核32GB
- 缓存:Redis 6.x 集群版(8分片)
- JVM:
-Xms12g -Xmx12g -XX:+UseG1GC
根据实际压力测试结果调整配置(如使用JMeter模拟流量),避免资源浪费或性能瓶颈。
云服务器