一、操作系统级资源限制设置(Debian基础配置)
操作系统级的资源限制是WebLogic稳定运行的基础,需通过以下步骤配置:
临时设置(仅当前会话有效)
使用ulimit命令快速调整当前终端的资源限制,适用于测试环境:
# 查看当前所有资源限制
ulimit -a
# 设置最大打开文件描述符数量(软限制4096,硬限制8192)
ulimit -n 4096
# 设置最大用户进程数(软限制1024,硬限制2048)
ulimit -u 1024
# 设置内存使用上限(单位:KB,此处设置为无限制)
ulimit -m unlimited
注:临时设置仅在当前终端有效,关闭后失效。
永久设置(系统级持久生效)
需修改系统配置文件,使限制对所有用户(包括WebLogic启动用户)生效:
修改/etc/security/limits.conf
编辑该文件,添加针对WebLogic用户(如weblogic)的限制:
sudo nano /etc/security/limits.conf
添加以下内容(soft为软限制,hard为硬限制):
weblogic soft nofile 4096
weblogic hard nofile 8192
weblogic soft nproc 1024
weblogic hard nproc 2048
注:nofile表示最大打开文件数,nproc表示最大进程数,可根据实际需求调整。
配置PAM会话加载pam_limits.so
确保PAM模块在用户登录时应用限制,编辑以下文件:
sudo nano /etc/pam.d/common-session
sudo nano /etc/pam.d/common-session-noninteractive
在文件末尾添加:
session required pam_limits.so
保存后,重新登录用户或重启系统使配置生效。
配置systemd服务限制(若WebLogic以systemd方式启动)
若WebLogic通过systemd服务(如weblogic.service)启动,需修改systemd的全局配置:
sudo nano /etc/systemd/system.conf
sudo nano /etc/systemd/user.conf
添加以下内容(针对所有用户或特定用户):
DefaultLimitNOFILE=4096
DefaultLimitNPROC=1024
保存后,重新加载systemd配置:
sudo systemctl daemon-reload
重启WebLogic服务使限制生效。
调整系统全局文件描述符限制(可选)
若需提高系统整体的文件描述符上限,编辑/etc/sysctl.conf:
sudo nano /etc/sysctl.conf
添加以下内容:
fs.file-max = 100000
应用更改:
sudo sysctl -p
注:此设置影响系统所有进程,需根据服务器资源调整。
二、WebLogic自身资源限制设置(应用层优化)
操作系统级设置仅为WebLogic提供了基础资源边界,还需通过WebLogic配置调整应用层资源:
JVM内存配置(关键优化项)
JVM内存设置直接影响WebLogic的性能和稳定性,需通过以下方式调整:
修改启动脚本(推荐)
编辑WebLogic Domain的bin/startWebLogic.sh(Debian下路径通常为/home/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh),在脚本开头添加:
export JAVA_OPTIONS="${JAVA_OPTIONS} -Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
注:-Xms为初始堆内存(如2GB),-Xmx为最大堆内存(如4GB),-XX:+UseG1GC启用G1垃圾回收器(适用于高并发场景),-XX:MaxGCPauseMillis设置最大GC停顿时间(如200ms)。
修改config.xml(可选)
若需通过WebLogic Console管理,可直接编辑Domain的config/config.xml文件,找到对应Server节点,添加JVM参数:
<server>
<name>AdminServer</name>
<JVM>
<options>
<option>-Xms2g</option>
<option>-Xmx4g</option>
</options>
</JVM>
</server>
修改后需重启WebLogic生效。
线程池配置(处理并发请求)
调整线程池大小以平衡并发处理能力和系统资源占用:
通过WebLogic Console设置
登录WebLogic Console(http://<host>:7001/console),导航至Environment → Servers → <Your Server> → Configuration → Thread Pools,选择默认线程池(如weblogic.kernel.Default),修改Maximum Thread Count(如200)和Minimum Thread Count(如10),点击Save并重启服务器。
通过启动脚本设置
编辑setDomainEnv.sh(路径同startWebLogic.sh),添加JVM参数:
export JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinThreads=10 -Dweblogic.threadpool.MaxThreads=200 -Dweblogic.threadpool.QueueCapacity=100"
注:MinThreads为最小线程数(如10),MaxThreads为最大线程数(如200),QueueCapacity为队列容量(超出队列的请求将被拒绝)。
数据库连接池配置(减少数据库瓶颈)
优化连接池以提升数据库访问效率:
通过WebLogic Console设置
登录WebLogic Console,导航至Services → Data Sources → <Your DataSource> → Configuration → Connection Pool,修改Initial Capacity(初始连接数,如10)、Max Capacity(最大连接数,如50)、Statement Cache Size(语句缓存,如100),点击Save并重启服务器。
通过启动脚本设置
编辑setDomainEnv.sh,添加JVM参数:
export JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.jdbc.initialCapacity=10 -Dweblogic.jdbc.maxCapacity=50 -Dweblogic.jdbc.statementCacheSize=100"
三、验证配置生效
ulimit -a命令查看当前用户的资源限制,确认nofile(最大打开文件数)、nproc(最大进程数)等参数已更新。Monitoring → Servers → <Your Server> → Performance页面,查看JVM堆内存使用情况(如Heap Memory Usage)。Thread Pools、Data Sources),查看线程池活跃线程数、连接池活跃连接数是否符合预期。注意事项
./stopWebLogic.sh → ./startWebLogic.sh)使生效。top、htop、WebLogic Console),及时优化配置以避免资源瓶颈。