温馨提示×

Debian系统WebLogic资源限制配置

小樊
36
2025-12-07 06:01:58
栏目: 智能运维

Debian系统WebLogic资源限制配置

一 操作系统层限制

  • 使用 ulimit 限制单进程资源:
    • 查看当前会话限制:ulimit -a;查看CPU时间限制:ulimit -t。
    • 临时设置(当前shell有效):ulimit -t 300(单位:秒)。
    • 永久生效:编辑 /etc/security/limits.conf,为运行WebLogic的系统用户(如 weblogic)设置软/硬限制,例如:
      • weblogic soft nproc 4096
      • weblogic hard nproc 8192
      • weblogic soft nofile 65536
      • weblogic hard nofile 65536
    • 说明:ulimit 的 soft/hard 含义分别为“软限制(可被用户自行收紧)”“硬限制(仅root可提高)”。修改后需重新登录或通过 systemd 服务单元生效。
  • 使用 cgroups 做更细粒度控制(CPU/内存/IO):
    • 创建 cgroup(示例将域目录放在 /opt/weblogic):
      • sudo cgcreate -g memory,cpu:wls.slice
      • echo 8589934592 | sudo tee /sys/fs/cgroup/memory/wls.slice/memory.limit_in_bytes # 8GB
      • echo 400000 | sudo tee /sys/fs/cgroup/cpu/wls.slice/cpu.cfs_quota_us
      • echo 100000 | sudo tee /sys/fs/cgroup/cpu/wls.slice/cpu.cfs_period_us # 约40% CPU
    • 启动受控:sudo cgexec -g memory,cpu:wls.slice /opt/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh
    • 提示:生产环境建议通过 systemd slice 管理 cgroups,便于开机自启与统一治理。

二 JVM层内存与GC限制

  • 在域环境脚本中设置堆与元空间(推荐在 setDomainEnv.sh 的适当位置设置,如 “USER_MEM_ARGS” 之后):
    • 示例(堆与元空间):
      • export USER_MEM_ARGS=“-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g”
    • 选择垃圾回收器(大堆建议 G1 GC):
      • -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45
    • 诊断与日志:
      • -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/weblogic/logs/gc-$(date +%F).log
    • 说明:将 -Xms-Xmx 设为相同值可减少堆扩展带来的抖动;元空间上限避免无界增长。
  • 可选:在 config.xml 节点下为特定服务器设置JVM选项(部分版本/场景支持):
  • 修改后需重启 WebLogic 生效。

三 容器与线程池等WebLogic内部资源

  • 线程池与工作管理器:在 config.xml 中配置 / 或在控制台调整,例如:
    • 20010100
  • 数据库连接池:在数据源配置中设置 Initial CapacityMax CapacityStatement Cache Size 等,结合压测确定上限,避免数据库过载。
  • 网络与协议:按需调整 TCP连接数、超时与队列等网络参数,缓解高并发下的连接瓶颈。

四 验证与监控

  • 启动日志与GC日志:确认 -Xms/-Xmx/-XX:MaxMetaspaceSize 是否生效;GC日志路径是否有输出且无明显频繁Full GC。
  • 运行时检查:
    • 操作系统:top/htop、pmap、smem 观察内存与RSS;cgexec/cgget 查看 cgroup 配额与实际使用。
    • JVM:jstat -gc、jcmd VM.flags、jmap -heap 检查堆与GC配置;必要时用 VisualVM/JProfiler 做内存泄漏排查。
  • 管理控制台:通过 WebLogic Administration Console 观察线程池、数据源、JVM 运行时指标,结合告警阈值持续优化。

0