关于WAS在AIX平台CPU使用率高的问题
问题:
我们现在碰到一个问题,程序吃CPU,在一个小时之内,使CPU的IDLE=0。
按开始的判断,此台机器(P550,8CPU/16G内存,AIX5305,WAS60211)不应是这种状况
运行的程序使用用户总计1000个用户。现在涉及到WAS的操作系统的相关参数已经调整,WAS参数也无太多可调整的。就您的经验,感觉会是什么地方出问题了?
答:
针对您提出的AIX平台 WAS CPU使用高的问题是比较棘手的问题。
CPU使用率高可能由下面几种问题造成的:
1、Java应用存在内存泄漏,当JVM内存使用达到其最大HeapSize,而每次垃圾回收后,free百分比小于5%。最终会导致JVM连续地进行垃圾回收,造成大量的CPU时间占用。
2、Java应用中存在瞬间产生大量微小垃圾对象的现象,虽然这些垃圾可以被回收,但是导致JVM内存瞬间被吃光,最终JVM会强制进行频繁地垃圾回收。同样造成CPU时间的大量占用。
3、Java应用中存在申请大对象空间的现象,(注:大对象类型主要有以下几种:int[],char[],float[],String等Java原始类型数组),虽然JVM内存有大于此大对象的空间,但是JVM内存中没有连续的空间来存放这些大对象,直接导致JVM进行强制垃圾回收,并进行JVM内存移位操作(极为消耗时间和CPU)。导致CPU时间大量占用。
4、Java应用中存在Java算法效率问题,在高并发线程访问下,直接导致CPU时间占用。
所以在生产环境下,要定位此类CPU高的问题还是比较困难的。
你应该求助与IBM 800电话支持,他们会根据您的实际情况给出相应的诊断手段。
如果您想通过800得到技术支持,推荐您先仔细研究一下以下网址中的“MustGather: 100% CPU usage on AIX”
http://www-1.ibm.com/support/doc ... s=utf-8&lang=en