温馨提示×

ubuntu上weblogic资源限制如何设置

小樊
38
2025-11-28 23:48:40
栏目: 智能运维

Ubuntu上WebLogic资源限制设置指南

一 操作系统层限制

  • 文件句柄与进程数
    • 编辑限制:在**/etc/security/limits.conf为运行WebLogic的用户(如weblogic**)设置软硬限制,示例将软硬限制统一为65535;同时确认**/etc/pam.d/common-session**(或发行版对应的PAM会话文件)包含“session required pam_limits.so”,以确保登录会话应用限制。
    • 临时生效:使用命令如ulimit -n 65535(打开文件数)与ulimit -u 65535(用户进程/线程数),仅对当前会话有效。
    • 系统级上限:检查cat /proc/sys/fs/file-max,必要时在**/etc/sysctl.conf中调大并运行sysctl -p**使配置生效。
  • TCP连接与端口
    • 扩大本地端口范围与可用连接跟踪数,在**/etc/sysctl.conf**中设置如:
      • net.ipv4.ip_local_port_range = 1024 65535
      • net.ipv4.ip_conntrack_max = 1048576
    • 执行sysctl -p使内核参数生效。

二 JVM层资源限制与调优

  • 堆与元空间
    • 建议生产环境将**-Xms-Xmx设为相同,避免运行期扩缩堆带来的抖动;堆占用一般不超过物理内存的50%~70%**,为操作系统和其他进程预留资源。
    • Java 8及以下使用**-XX:PermSize / -XX:MaxPermSize**;Java 8及以上使用**-XX:MetaspaceSize / -XX:MaxMetaspaceSize**(建议设置上限,防止泄漏)。
  • 垃圾回收器选择
    • 吞吐量优先:-XX:+UseParallelGC -XX:+UseParallelOldGC
    • 低延迟优先(Web常用):-XX:+UseG1GC -XX:MaxGCPauseMillis=200
    • Java 11+超低暂停:-XX:+UseZGC-XX:+UseShenandoahGC
  • 诊断与稳定性
    • 开启堆转储与GC日志:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/gc_%t.log
    • 避免显式GC干扰:-XX:+DisableExplicitGC
  • 配置方式
    • 在域目录的**$DOMAIN_HOME/bin/setDomainEnv.sh中设置USER_MEM_ARGS**或直接在脚本中追加JVM参数;也可在控制台“环境 → 服务器 → 目标服务器 → 配置 → 服务器启动 → 参数”中追加JVM参数。

三 WebLogic内部资源限制

  • 执行线程池
    • 通过JVM参数:在setDomainEnv.shJAVA_OPTIONS中加入
      • -Dweblogic.threadpool.MinPoolSize=500
      • -Dweblogic.threadpool.MaxPoolSize=3000
    • 通过配置文件:在config.xml对应节点设置
      • 500
      • 3000
  • 接受队列与网络
    • 在控制台“服务器 → 配置 → 优化”调大Accept Backlog(默认50),缓解高并发下的连接排队与拒绝;必要时结合内核net.ipv4.ip_local_port_rangeip_conntrack_max同步放大。
  • 数据源连接池
    • 生产环境建议将InitialCapacity设为与MaxCapacity一致,减少运行期扩容带来的连接风暴与延迟波动。

四 容器与cgroups精细化控制(可选)

  • 使用cgroups对WebLogic进程组设置CPU份额/配额、内存上限与OOM策略,避免单一实例无限制扩张影响其他业务。
  • 结合systemd服务单元,在[Service]段使用LimitNOFILE=LimitNPROC=MemoryLimit=等指令为服务进程施加上限,并与脚本中的JVM参数协同设计(例如内存上限应略大于-Xmx并预留本地内存)。

五 验证与常见排错

  • 生效验证
    • 登录WebLogic控制台查看“服务器 → 监视 → 性能/线程”等指标;使用jstat -gc 观察GC与堆使用;在系统侧用ulimit -acat /proc//limits核对进程实际限制。
  • 典型问题与对策
    • 启动时报“Resource temporarily unavailable in tsStartJavaThread”或无法创建更多线程:提升ulimit -u(用户进程/线程数)与nofile,并适当降低**-Xmx线程数**、减小**-Xss**,必要时改用64位JDK与64位OS。
    • 首次进入控制台很慢:在**$JAVA_HOME/jre/lib/security/java.securitysecurerandom.source改为file:/dev/./urandom**以加速熵源初始化。

0