温馨提示×

centos中weblogic怎么优化

小樊
40
2026-09-06 11:50:52
栏目: 智能运维

在 CentOS 上优化 WebLogic,通常从 操作系统层、JVM 层、WebLogic 配置层、应用层 四个维度来做。下面给你一套比较实用、可落地的优化方案。


一、CentOS 系统层优化

1. 内核参数优化(/etc/sysctl.conf)

# TCP 连接优化
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

# 文件句柄
fs.file-max = 1000000

执行:

sysctl -p

2. 用户资源限制(/etc/security/limits.conf)

weblogic soft nofile 65535
weblogic hard nofile 65535
weblogic soft nproc 65535
weblogic hard nproc 65535

3. 关闭不需要的服务

systemctl stop firewalld
systemctl disable firewalld

(生产环境建议用 iptables 或安全组替代)

4. 磁盘 & IO

  • 使用 ext4 / xfs
  • 日志和数据目录分离
  • 使用 SSD(高并发场景明显)

二、JVM 优化(最关键)

1. 选择合适的 JDK

  • WebLogic 12c → JDK 8
  • WebLogic 14c → JDK 8 / 11

2. 设置 JVM 参数(setDomainEnv.sh)

示例(8C16G 服务器):

-Xms4g
-Xmx4g
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/dump

⚠ 注意:

  • Xms = Xmx(避免动态扩容)
  • 保留系统内存,不要全给 JVM

三、WebLogic 配置优化

1. 线程池(Self Tuning Thread Pool)

  • 默认已优化
  • 高并发可调整:
Administration Console
-> Servers -> Configuration -> Threads

建议:

  • Min Threads = 10
  • Max Threads = 200~400(按 CPU 核数)

2. 连接池(JDBC)

Initial Capacity = 20
Max Capacity = 100
Min Capacity = 20
Inactive Connection Timeout = 300
Test Connections On Reserve = true

3. 启用 Native IO

/opt/weblogic/user_projects/domains/base_domain/bin/setDomainEnv.sh

确保:

-Dweblogic.nativeio.enabled=true

4. 生产模式

Production Mode = true

关闭:

  • 自动部署
  • 调试日志

5. 日志优化

  • 降低 stdout 日志级别
  • 使用 Async Logger
  • 日志文件按大小滚动

四、网络与应用层优化

1. 启用 gzip(web.xml)

<filter>
  <filter-name>gzip</filter-name>
  <filter-class>weblogic.servlet.gzip.GzipFilter</filter-class>
</filter>

2. 静态资源

  • 放 Nginx / Apache
  • 不走 WebLogic

3. 会话复制

  • 集群环境才开
  • 非集群建议关闭

五、常见性能问题排查

# CPU
top -Hp <pid>

# 线程栈
jstack <pid> > thread.txt

# 内存
jmap -heap <pid>
jstat -gcutil <pid> 1000

六、推荐组合(经验值)

场景 配置
4C8G Xmx4g,线程100
8C16G Xmx8g,线程200
16C32G Xmx16g,线程400

如果你能告诉我:

  • WebLogic 版本
  • CentOS 版本
  • 并发量 / 用途(ERP?接口?)

我可以给你一套 针对性配置模板

0