JVM参数设置不当是导致WebLogic启动慢的常见原因,需重点调整内存分配与随机数生成器:
setDomainEnv.sh脚本中设置-Xms(初始堆大小)与-Xmx(最大堆大小)为相同值(如-Xms2048m -Xmx2048m),避免堆内存动态扩展带来的延迟;根据服务器内存大小合理分配(建议不超过物理内存的70%)。java.security文件(路径:$JAVA_HOME/jre/lib/security/java.security),将securerandom.source=file:/dev/urandom改为securerandom.source=file:/dev/./urandom,解决Linux下Java生成随机数的性能瓶颈;或在setDomainEnv.sh中添加-Djava.security.egd=file:/dev/./urandom参数。setDomainEnv.sh中添加-XX:+UseG1GC(G1垃圾回收器),减少Full GC停顿时间,提升启动效率。系统内核参数的默认设置可能限制WebLogic的启动性能,需优化以下关键参数:
/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535,提高WebLogic进程能打开的文件数量;临时生效可执行ulimit -n 65535。/etc/sysctl.conf,添加或修改以下参数以提升网络性能:net.ipv4.tcp_tw_reuse = 1 # 允许复用TIME_WAIT状态的连接
net.ipv4.tcp_fin_timeout = 30 # 缩短TIME_WAIT状态的超时时间(秒)
net.core.somaxconn = 1024 # 增加TCP连接队列长度
net.ipv4.tcp_max_syn_backlog = 262144 # 增加SYN连接队列长度
执行sysctl -p使配置生效。WebLogic的配置不合理会增加启动时的资源消耗,需调整以下设置:
max-threads(最大线程数)为合理值(如100-200,根据应用并发需求调整);在“数据源→配置→连接池”中设置max-capacity(最大连接数)为适当大小(如50-100,避免过多连接占用资源)。/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启系统使设置生效;或临时执行setenforce 0切换至宽容模式。/etc/ssh/sshd_config,将#UseDNS yes改为UseDNS no,避免SSH登录时的DNS反向解析延迟;重启SSH服务(systemctl restart sshd)。使用监控工具定位性能瓶颈:
jstat(监控GC情况)、jconsole(可视化监控JVM)、VisualVM(综合监控系统与JVM)等工具,分析启动过程中的CPU、内存、线程使用情况。DOMAIN_HOME/servers/your_server_name/logs/server.log),关注启动时的耗时阶段(如模块加载、数据库连接),针对性优化。noatime挂载选项(如mount -o remount,noatime /),减少文件访问时的元数据操作,提升磁盘I/O性能。systemctl list-unit-files --type=service查看系统服务,禁用不需要的服务(如cups、avahi-daemon),释放系统资源。以上方法需根据实际环境(如服务器配置、应用特点)调整,建议先在测试环境中验证效果,再应用到生产环境。