如何精准高效地分配Ubuntu WebLogic资源,实现应用性能的全面提升?

更新于
2026-08-09 08:30:55
2阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

使用者常见痛点

在 Ubuntu 上部署 WebLogic 时很多公司会遇到以下困扰:

  • CPU、内存、磁盘 I/O 资源争用导致响应慢、吞吐量下降。说起来,
  • JVM 堆/非堆内存设置不合理。出现 OutOfMemory 或频繁 GC。怎么说呢,
  • 日志文件权限混乱。安全审计受阻,且日志滚动不及时占满磁盘。
  • 数据库连接池配置错误,出现连接泄漏或连接数不足。
  • 程序文件描述符上限过低,导致高并发时服务异常。

一、整体资源规划与监控

在正式调优之前,需要先对服务器的 CPU、内存、磁盘还有网络进行基线监控。推荐使用 htopiostatnetstat 还有 Promeus + Grafana 组合实时采集指标。

如何精准应用性能的全面提升?

1. 设置程序级资源限制

# 提高文件描述符上限
echo "* soft nofile 65535">> /etc/security/limits.conf
echo "* hard nofile 65535">> /etc/security/limits.conf
# 通过 ulimit 生效
ulimit -n 65535

2. 使用 cgroup 对 WebLogic 做内存隔离

# 创建内存限制组
sudo cgcreate -g memory:/weblogic_limit
# 设置内存上限为 4GB
echo 4G | sudo tee /sys/fs/cgroup/memory/weblogic_limit/memory.limit_in_bytes
# 将 WebLogic 主进程加入该组
sudo cgclassify -g memory:weblogic_limit 

二、WebLogic 使用者与目录安全化

建议使用专用使用者运行 WebLogic,避免以 root 启动带来的安全风险。

# 创建专用使用者组和使用者
groupadd weblogic
useradd -g weblogic -m -s /bin/bash weblogic
# 授权安装目录
chown -R weblogic:weblogic /opt/weblogic
chmod -R 750 /opt/weblogic

日志目录权限设置

# 限制日志只能被 weblogic 使用者和管理员读取
chmod 640 /opt/weblogic/logs/*.log
chown weblogic:weblogic /opt/weblogic/logs/*.log

三、JVM 内存与线程池精细调优

1. 堆内存统一配置

# 在 setDomainEnv.sh 中添加:
JA_OPTIONS="-Xms4g -Xmx4g -XX:+UseG1GC"
export JA_OPTIONS
# 注意:堆总量不超过物理内存的 70%,为 OS 与其他进程预留空间。

2. 非堆内存与 GC 参数调整

# 示例
JA_OPTIONS="${JA_OPTIONS} -XX:MaxMetaspaceSize=512m -XX:+PrintGCDetails -Xlog:gc*:file=/opt/weblogic/logs/gc.log:time"
export JA_OPTIONS

3.

WebLogic 默认的 ExecuteThread 数量往往无法利用多核 CPU。可在管理控制台或 domain.xml 中修改:


default
${CPU_CORES * 4}
300

四、日志管理与自动轮转

1. 使用 logrotate 集中管理 WebLogic 日志

Create a dedicated configuration file:

如何精准应用性能的全面提升?
# /etc/logrotate.d/weblogic
/opt/weblogic/logs/*.log {
daily
rotate 7 # 保留最近7天日志
compress # 压缩旧日志
missingok # 文件不存在不报错
notifempty # 空文件不轮转
create 0640 weblogic weblogic
copytruncate # 在写入期间不中断服务
}

2. 权限统一审计脚本

# 检查并修复日志权限
find /opt/weblogic/logs -type f!-perm 0640 -exec chmod 640 {} \;
find /opt/weblogic/logs -type f!其实,-user weblogic -exec chown weblogic:weblogic {} \;

五、数据库连接池常用方法

在 domain.xml 中配置合适的 JD娱乐 数据源属性:


MyDS
jdbc:oracle:thin:@//dbhost:1521/orcl
oracle.jdbc.driver.OracleDriver
10
100
300
true

Pain point:如果 MaxCapacity 设置过大,会抢占程序文件描述符;若太小则出现 “Connection pool exhausted” 错误。建议结合业务峰值进行容量预估,并开启连接泄漏检测:

-Dweblogic.jdbc.leakDetectionEnabled=true
- Dweblogic.jdbc.leakDetectionThreshold=300000 # 单位毫秒

六、图形化快速部署教程

1. 使用 Config Wizard 创建域和服务器实例

在 $MW_HOME/wlserver/common/bin 下执行:

$ ./config.sh # 按向导填写域名、管理员账号、监听地址与端口等信息 

{完成向导后在 $DOMAIN_HOME 下开启服务器:}

$ ./startWebLogic.sh # 自动加载前面配置好的 JVM 参数和资源策略 

2. 启用 JMX 并接入监控网站

# 在 setDomainEnv.sh 中加入:
JA_OPTIONS="${JA_OPTIONS} -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.aunticate=false \
-Dcom.sun.management.jmxremote.ssl=false"
export JA_OPTIONS
# 推荐使用 jconsole 或者 Promeus JMX Exporter 抓取指标。不过,

精准高效分配 Ubuntu 上的 WebLogic 资源关键点

  • 先规划后调优:AIOps‑style 基线监控帮助定位瓶颈。
  • Cgroup + ulimit:E​nsure WebLogic 不会抢占全局资源。
  • M​emory/CPU 参数统一:-Xms = -Xmx 并控制在物理内存的70%以内;线程池按核数×4 调整,
  • L​ogrotate + 权限审计:- 避免磁盘被日志撑爆;- 确保只有授权使用者可读写。
  • D​B‑pool 与文件描述符同步调节:- 防止连接泄漏与 “Too many open files”。
  • M​onitor via JMX + Grafana:- 实时预警,可快速定位异常。
  • S​ecure run‑as user:- 最小特权原则提高安全性。

通过以上步骤,你可以实现对 Ubuntu 上 WebLogic 的精准、高效资源分配。从根本上提高应用响应速度、吞吐量还有程序稳定性,让“卡顿”“崩溃”等痛点彻底消失。

标签:Ubuntu

使用者常见痛点

在 Ubuntu 上部署 WebLogic 时很多公司会遇到以下困扰:

  • CPU、内存、磁盘 I/O 资源争用导致响应慢、吞吐量下降。说起来,
  • JVM 堆/非堆内存设置不合理。出现 OutOfMemory 或频繁 GC。怎么说呢,
  • 日志文件权限混乱。安全审计受阻,且日志滚动不及时占满磁盘。
  • 数据库连接池配置错误,出现连接泄漏或连接数不足。
  • 程序文件描述符上限过低,导致高并发时服务异常。

一、整体资源规划与监控

在正式调优之前,需要先对服务器的 CPU、内存、磁盘还有网络进行基线监控。推荐使用 htopiostatnetstat 还有 Promeus + Grafana 组合实时采集指标。

如何精准应用性能的全面提升?

1. 设置程序级资源限制

# 提高文件描述符上限
echo "* soft nofile 65535">> /etc/security/limits.conf
echo "* hard nofile 65535">> /etc/security/limits.conf
# 通过 ulimit 生效
ulimit -n 65535

2. 使用 cgroup 对 WebLogic 做内存隔离

# 创建内存限制组
sudo cgcreate -g memory:/weblogic_limit
# 设置内存上限为 4GB
echo 4G | sudo tee /sys/fs/cgroup/memory/weblogic_limit/memory.limit_in_bytes
# 将 WebLogic 主进程加入该组
sudo cgclassify -g memory:weblogic_limit 

二、WebLogic 使用者与目录安全化

建议使用专用使用者运行 WebLogic,避免以 root 启动带来的安全风险。

# 创建专用使用者组和使用者
groupadd weblogic
useradd -g weblogic -m -s /bin/bash weblogic
# 授权安装目录
chown -R weblogic:weblogic /opt/weblogic
chmod -R 750 /opt/weblogic

日志目录权限设置

# 限制日志只能被 weblogic 使用者和管理员读取
chmod 640 /opt/weblogic/logs/*.log
chown weblogic:weblogic /opt/weblogic/logs/*.log

三、JVM 内存与线程池精细调优

1. 堆内存统一配置

# 在 setDomainEnv.sh 中添加:
JA_OPTIONS="-Xms4g -Xmx4g -XX:+UseG1GC"
export JA_OPTIONS
# 注意:堆总量不超过物理内存的 70%,为 OS 与其他进程预留空间。

2. 非堆内存与 GC 参数调整

# 示例
JA_OPTIONS="${JA_OPTIONS} -XX:MaxMetaspaceSize=512m -XX:+PrintGCDetails -Xlog:gc*:file=/opt/weblogic/logs/gc.log:time"
export JA_OPTIONS

3.

WebLogic 默认的 ExecuteThread 数量往往无法利用多核 CPU。可在管理控制台或 domain.xml 中修改:


default
${CPU_CORES * 4}
300

四、日志管理与自动轮转

1. 使用 logrotate 集中管理 WebLogic 日志

Create a dedicated configuration file:

如何精准应用性能的全面提升?
# /etc/logrotate.d/weblogic
/opt/weblogic/logs/*.log {
daily
rotate 7 # 保留最近7天日志
compress # 压缩旧日志
missingok # 文件不存在不报错
notifempty # 空文件不轮转
create 0640 weblogic weblogic
copytruncate # 在写入期间不中断服务
}

2. 权限统一审计脚本

# 检查并修复日志权限
find /opt/weblogic/logs -type f!-perm 0640 -exec chmod 640 {} \;
find /opt/weblogic/logs -type f!其实,-user weblogic -exec chown weblogic:weblogic {} \;

五、数据库连接池常用方法

在 domain.xml 中配置合适的 JD娱乐 数据源属性:


MyDS
jdbc:oracle:thin:@//dbhost:1521/orcl
oracle.jdbc.driver.OracleDriver
10
100
300
true

Pain point:如果 MaxCapacity 设置过大,会抢占程序文件描述符;若太小则出现 “Connection pool exhausted” 错误。建议结合业务峰值进行容量预估,并开启连接泄漏检测:

-Dweblogic.jdbc.leakDetectionEnabled=true
- Dweblogic.jdbc.leakDetectionThreshold=300000 # 单位毫秒

六、图形化快速部署教程

1. 使用 Config Wizard 创建域和服务器实例

在 $MW_HOME/wlserver/common/bin 下执行:

$ ./config.sh # 按向导填写域名、管理员账号、监听地址与端口等信息 

{完成向导后在 $DOMAIN_HOME 下开启服务器:}

$ ./startWebLogic.sh # 自动加载前面配置好的 JVM 参数和资源策略 

2. 启用 JMX 并接入监控网站

# 在 setDomainEnv.sh 中加入:
JA_OPTIONS="${JA_OPTIONS} -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.aunticate=false \
-Dcom.sun.management.jmxremote.ssl=false"
export JA_OPTIONS
# 推荐使用 jconsole 或者 Promeus JMX Exporter 抓取指标。不过,

精准高效分配 Ubuntu 上的 WebLogic 资源关键点

  • 先规划后调优:AIOps‑style 基线监控帮助定位瓶颈。
  • Cgroup + ulimit:E​nsure WebLogic 不会抢占全局资源。
  • M​emory/CPU 参数统一:-Xms = -Xmx 并控制在物理内存的70%以内;线程池按核数×4 调整,
  • L​ogrotate + 权限审计:- 避免磁盘被日志撑爆;- 确保只有授权使用者可读写。
  • D​B‑pool 与文件描述符同步调节:- 防止连接泄漏与 “Too many open files”。
  • M​onitor via JMX + Grafana:- 实时预警,可快速定位异常。
  • S​ecure run‑as user:- 最小特权原则提高安全性。

通过以上步骤,你可以实现对 Ubuntu 上 WebLogic 的精准、高效资源分配。从根本上提高应用响应速度、吞吐量还有程序稳定性,让“卡顿”“崩溃”等痛点彻底消失。

标签:Ubuntu