linux

WebLogic在Linux上的资源限制如何设置

小樊
41
2025-10-07 23:22:43
栏目: 智能运维

一、调整操作系统级资源限制(关键基础)

  1. 修改用户进程及文件句柄限制
    编辑/etc/security/limits.conf文件,为WebLogic运行用户(如weblogic)添加以下配置,限制进程数(nproc)和打开文件数(nofile):

    weblogic soft nproc 2048  # 软限制:单用户最多可创建的进程数
    weblogic hard nproc 4096  # 硬限制:系统允许的单用户最大进程数
    weblogic soft nofile 65536  # 软限制:单用户最多可打开的文件描述符数
    weblogic hard nofile 65536  # 硬限制:系统允许的单用户最大文件描述符数
    

    若系统使用90-nproc.conf(如CentOS 7+),需修改该文件中的soft nproc值(如从1024调整为2048),避免默认限制过低。

  2. 提升系统级文件句柄上限
    临时调整:通过sysctl -w fs.file-max=2097152命令立即生效(仅当前会话有效);
    永久调整:编辑/etc/sysctl.conf文件,添加fs.file-max = 2097152,然后执行sysctl -p使配置生效。

  3. 调整线程栈大小(可选)
    若应用存在线程栈溢出问题,可通过ulimit -s命令调整线程栈大小(单位:KB),如ulimit -s 8192(设置为8MB),或修改/etc/security/limits.conf添加weblogic soft stack 8192

二、配置WebLogic JVM内存参数(核心资源)

  1. 修改启动脚本
    编辑$DOMAIN_HOME/bin/setDomainEnv.sh文件,设置MEM_ARGS环境变量,调整JVM堆内存及元空间(Java 8+):
    export MEM_ARGS="-Xms2048m -Xmx4096m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m"
    
    • -Xms:初始堆内存(建议为物理内存的10%-20%,不超过2GB);
    • -Xmx:最大堆内存(建议为物理内存的50%-70%,不超过物理内存的80%);
    • -XX:MetaspaceSize/-XX:MaxMetaspaceSize:元空间初始/最大大小(Java 8+替代永久代,避免OutOfMemoryError: PermGen space)。

三、优化WebLogic线程池配置(提升并发能力)

  1. 通过管理控制台配置
    登录WebLogic管理控制台,导航至“环境”→“服务器”→选择目标服务器→“配置”→“线程池”,调整以下参数:

    • 最小线程数:设置为CPU核心数+1(如4核CPU设为5),应对CPU密集型任务;
    • 最大线程数:设置为CPU核心数×2(如4核CPU设为8),或根据IO密集型任务调整(如CPU核心数×(1+平均等待时间/平均计算时间))。
  2. 通过配置文件配置
    编辑$DOMAIN_HOME/config/config.xml文件,在<server>标签内添加或修改线程池参数:

    <server name="AdminServer">
        <thread-pool-params>
            <min-threads-constraint>
                <name>MinThreadPool</name>
                <min-threads>100</min-threads>
            </min-threads-constraint>
            <max-threads-constraint>
                <name>MaxThreadPool</name>
                <max-threads>200</max-threads>
            </max-threads-constraint>
        </thread-pool-params>
    </server>
    

    修改后需重启WebLogic服务器使配置生效。

四、调整数据库连接池参数(减少资源占用)

  1. 通过管理控制台配置
    登录WebLogic管理控制台,导航至“服务”→“数据源”→选择目标数据源→“配置”→“连接池”,调整以下参数:
    • 初始容量:设置为10-20(避免启动时大量创建连接);
    • 最大容量:设置为100-200(根据应用并发需求调整,不超过数据库最大连接数);
    • 容量增长:设置为3-5(每次扩展的连接数,避免一次性创建过多连接)。

五、监控与验证

  1. 监控资源使用
    使用top(查看CPU/内存使用率)、ulimit -a(查看当前用户资源限制)、lsof -p <PID>(查看进程打开文件数)、jstat -gc <PID>(查看JVM垃圾回收情况)等命令监控资源使用情况。
  2. 验证配置生效
    重启WebLogic服务器后,通过ps -ef | grep weblogic查看进程资源限制,或通过管理控制台查看线程池、连接池的实际配置是否生效。

0
看了该问题的人还看了