续前篇!
一、目标
通过 Web 控制台,完成以下操作:
1. 调整 JVM 堆大小
-
设置
-Xms
(初始堆大小)与-Xmx
(最大堆大小)
2. 启用 GC(垃圾回收)日志
-
便于分析内存使用和 Full GC 频率
3. 调整线程池
-
优化 Servlet 请求或 BAW 任务调度性能
二、操作步骤
第一步:进入 JVM 设置页面
-
登录 WAS 控制台
-
左侧导航:
服务器 ➝ WebSphere Application Server ➝ 点击你的服务器名(例如:server1
或BAW_Server1
) -
页面右侧选择:
👉 服务器基础架构 ➝ Java 和进程管理 ➝ 进程定义(Process Definition) -
点击:
👉 Java 虚拟机(Java Virtual Machine)
第二步:设置 JVM 参数
1. 设置堆大小
-
修改:
-
初始堆大小(Initial heap size):例如
2048
-
最大堆大小(Maximum heap size):例如
4096
-
-
单位是 MB,请根据实际机器内存设置:
-
示例:16GB 物理内存服务器 → 设置为
2048 / 4096
或4096 / 8192
-
2. 配置 GC 日志参数
-
滚动页面找到 通用 JVM 参数(Generic JVM arguments)
-
添加如下参数(推荐):
-Xloggc:/opt/IBM/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-
解释:
-
-Xloggc
:指定 GC 日志文件位置 -
-verbose:gc
:打印 GC 活动 -
-XX:+PrintGCDetails
:详细打印 GC 信息 -
-XX:+PrintGCTimeStamps
:带时间戳
-
3.(可选)添加优化参数(按需)
根据 Java 版本,可以添加额外参数:
-
Java 8 推荐:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=500
- Java 11+ 推荐:
-XX:+UseZGC 或 -XX:+UseShenandoahGC
第三步:调整线程池大小
-
返回该服务器配置页
-
点击 其他属性 ➝ 线程池
-
修改以下关键线程池:
-
Default
(全局默认) -
WebContainer
(处理 HTTP 请求) -
ORB.thread.pool
(用于 CORBA 请求) -
WorkManager
(用于 BAW 工作单元)
-
推荐设置(中等并发服务器):
线程池 | 最小 | 最大 |
---|---|---|
WebContainer | 10 | 100 |
Default | 10 | 50 |
WorkManager | 20 | 100 |
✅ 如果你有并发访问压力,可以进一步调大 WebContainer,但注意别超过 CPU 核心太多。
第四步:保存并重启服务器
-
修改完后,点击 确定 → 保存到主配置
-
回到主页面,重新启动该服务器
效果验证与调试建议
查看 JVM 与 GC 日志:
-
性能监控基础结构(PMI)
-
配合 JConsole 或 VisualVM 远程分析 JVM 性能
常见问题
问题 | 原因 | 建议 |
---|---|---|
启动变慢 | 堆设置太大 | 减少初始堆大小,使用 G1GC |
Full GC 频繁 | 内存泄露或对象滞留 | 开启 GC 日志 + 使用分析工具 |
响应慢 | 线程池不足 | 增加 WebContainer 最大线程数 |
报 OutOfMemoryError | 堆或 Metaspace 不足 | 调整 -Xmx 或使用 -XX:MaxMetaspaceSize |
未完,待续!