centos上weblogic内存配置建议是多少
小樊
45
2025-12-23 17:05:30
CentOS 上 WebLogic 内存配置建议
一 核心原则
- 将堆的初始大小与最大值设为相同,避免运行期扩缩堆带来的抖动,通常建议:-Xms = -Xmx。
- 堆上限的通用上限:在 Linux/UNIX 上建议不超过物理内存的75%;在 Windows 上建议不超过50%。
- 为操作系统与其他进程预留内存:至少留出1–2 GB(监控、日志、GC、第三方组件等都需要占用)。
- 32 位 JVM 的堆上限通常约 1.5–1.8 GB;64 位 JVM 不受此限制,但依然要遵循不超过物理内存 75% 的原则。
二 快速参考表
| 物理内存 |
建议 -Xms/-Xmx |
说明 |
| 4 GB |
2–3 GB |
预留 1–2 GB 给 OS 与其他进程 |
| 8 GB |
4–6 GB |
常规业务起步值 |
| 16 GB |
10–12 GB |
留出 4 GB 以上给 OS/GC/连接等 |
| 32 GB |
20–24 GB |
大堆建议配合 G1 GC |
- 上表为单实例的经验范围;若同机部署多个受管 Server,请按实例数均分并再次预留系统内存。
- 堆外内存(如 Direct Memory、Native Memory、元空间 Metaspace)会额外占用,需从“物理内存 – 预留 OS”中再扣除。
三 不同 JDK 版本的配置要点
- JDK 8 及更早:除堆外还需关注永久代(PermGen)。常见做法是将 -XX:MaxPermSize 设为 -Xmx 的约 1/2,如:
-Xms4g -Xmx4g -XX:MaxPermSize=2g。
- JDK 8+ 使用 Metaspace:不再设置 PermSize,改用 -XX:MaxMetaspaceSize(如无泄漏可不设上限,但建议设置合理上限以避免失控)。
- 垃圾回收器选择:大堆(≥8 GB)优先 G1 GC(如:
-XX:+UseG1GC),中小堆可用 Parallel GC 或 CMS(视版本与延迟目标而定)。
四 在 CentOS 上的落地方式
- 修改域环境脚本:编辑 DOMAIN_HOME/bin/setDomainEnv.sh,在合适位置设置(示例为 8 GB 堆):
- 建议写法:
USER_MEM_ARGS="-Xms8g -Xmx8g -XX:+UseG1GC"(JDK 8 如需元空间上限可追加:-XX:MaxMetaspaceSize=1g)
- 若存在
if [ "${USER_MEM_ARGS}" != "" ] ; then MEM_ARGS="${USER_MEM_ARGS}"; export MEM_ARGS; fi,则通过 USER_MEM_ARGS 覆盖更稳妥。
- 控制台设置:WebLogic 控制台 → 服务器 → 目标服务器 → 配置 → 服务器启动 → Java 虚拟机,填入相同的 -Xms/-Xmx(以及 GC/Metaspace 参数)。
- 重启后在控制台或日志中核对生效参数。
五 配套的系统层面建议
- 减少 swap 依赖:将 vm.swappiness 调低(如 10),降低抖动:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p。
- 文件描述符限制:提升到至少 65535,在 /etc/security/limits.conf 为运行 WebLogic 的用户设置
nofile 65535。
- 连接与 I/O:适度提高 Accept Backlog、启用 Native I/O(如适用),并优化 TCP 参数(如
net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30)。