前情:8月1日到新公司入职,到职第一天上级就分配了任务,优化OA。
OA目前的情况:运行一段时间后就会很卡,打开流程或表单一直处于刷新状态,只有重启tomcat服务后才能恢复正常。开始想从oracle数据库入手,确认是不是oracle数据量太大未做优化导致的,导出awr报表做分析,结果实在是看不太懂,只好放弃,转从tomcat入手。
tomcat服务器信息:
系统版本 | CPU核数 | 内存容量 |
---|---|---|
Red Hat 4.8.5-4 | 20 | 64G |
jdk信息:
version | SE RunTIme Environment | HotSpot |
---|---|---|
1.6.0-31 | build 1.6.0_31-b04 | 64-Bit Server VM (build 20.6-b01, mixed mode) |
tomcat信息:
版本 |
---|
6.0.35 |
公司目前在职员工8000人左右,同时在线人数2500人左右。
首先查看原来的JVM设置:
JAVA_OPTS="
-server
-Xms16000m
-Xmx16000m
-XX:PermSize=1024M
-XX:MaxNewSize=1024m
-XX:MaxPermSize=1024m
-Djava.awt.headless=true "
可以看出配置了堆的大小16000M,大约15.5G左右,最大年轻代1G,永久堆内存1G,我们通过VisualVM可以更直观的看到整个内存的分配情况:
注:这是后面模拟当时的服务器信息的截图,调优时没有截图。
通过查询资料及百度然后对JVM做了第一次优化:
JAVA_OPTS="
-server
-Xms16000M