温馨提示×

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 GCCMS(视版本与延迟目标而定)。

四 在 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=1net.ipv4.tcp_fin_timeout=30)。

0