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 中配置 / 或在控制台调整,例如:
- 数据库连接池:在数据源配置中设置 Initial Capacity、Max Capacity、Statement 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 运行时指标,结合告警阈值持续优化。