WAS服务器(windows2003)cpu高?

cpu.png

cpu.png

操作系统:windows2003
was设置:java初始堆大小512,最大堆大小1536
发生频率:每天不定时发生一次,重启后正常
初步判断是业务某些线程并发消耗内存
解决方案:在服务器性能有限的情况下,进行线程控制和最大并发之类的控制或者采用列队处理
现在的问题是,如何监控到消耗内存的线程,从而定位到时拿个业务模块问题。

参与19

4同行回答

wodese7enwodese7en其它其他
使用wsadmin脚本抓一下javacore,查看是否有blocked/deadlock/waiting on condition状态的线程,如果有,可以分析一下相关线程的堆栈信息。同时查看一下stack depth直校大的线程,就可以抓取出对应的内容并优化。...显示全部

使用wsadmin脚本抓一下javacore,查看是否有blocked/deadlock/waiting on condition状态的线程,如果有,可以分析一下相关线程的堆栈信息。同时查看一下stack depth直校大的线程,就可以抓取出对应的内容并优化。

收起
文化教育其它 · 2017-12-06
浏览3736
王磊磊 邀答
dogboydogboy系统运维工程师a
1、打开GC日志,看看CPU高的时间段,GC是否频繁2、如果频繁基本可以定位是GC导致的,可能的原因是存在JVM泄露、JVM申请频繁、JVM设置偏小等,需要具体看3、如果不频繁,GC正常,则应该是应用线程占用的CPU高。可以使用微软的 Process Explore工具,在cpu高的时候生成几个javacore,并记...显示全部

1、打开GC日志,看看CPU高的时间段,GC是否频繁
2、如果频繁基本可以定位是GC导致的,可能的原因是存在JVM泄露、JVM申请频繁、JVM设置偏小等,需要具体看
3、如果不频繁,GC正常,则应该是应用线程占用的CPU高。可以使用微软的 Process Explore工具,在cpu高的时候生成几个javacore,并记录下 Process Explore上占用CPU高的线程号,两个的时间尽量保持一致
4、根据线程号和javacore,找到占用cpu高的线程堆栈,可能需要多收集几次,有时对“同时”的要求比较高

收起
银行 · 2017-12-11
浏览3758
王磊磊 邀答
bobo2003998bobo2003998其它Mory
看样子像是gc特别高的样子。能不能把最大最小再调高一下,64位的机器可以再加一倍试试显示全部

看样子像是gc特别高的样子。能不能把最大最小再调高一下,64位的机器可以再加一倍试试

收起
互联网服务 · 2017-12-07
浏览3326
王磊磊 邀答
YuLiminYuLimin资深技术顾问IBM广州
CPU高,找Thread Running状态的线程重点分析之即可找到根源。显示全部

CPU高,找Thread Running状态的线程重点分析之即可找到根源。

收起
互联网服务 · 2019-11-28
浏览2210
王磊磊 邀答

提问者

liujiacai
其它广州大厦
擅长领域: 数据库云计算服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-12-05
  • 关注会员:5 人
  • 问题浏览:5794
  • 最近回答:2019-11-28
  • X社区推广