1. 收集完整的数据信息
参考链接 -
MustGather: Performance, hang, or high CPU issues with WebSphere Application Server on AIX
2. 脚本运行结果和日志文件有
aixperf_RESULTS.tar.gz(本地目录生成)
three javacores ($WebSphere/profiles/AppSrv01/)
server logs (SystemOut.log, native_stderr.log,..../logs/server/)
3. 解压aixperf_RESULTS.tar.gz,打开sleep.prof,其中有占用CPU高的进程和线程列表
Process Freq Total Kernel User Shared Other
======= ==== ===== ====== ==== ====== =====
/usr/java5/jre/bin/java 432 69.30 2.65 0.00 2.01 64.64
wait 32 29.80 29.80 0.00 0.00 0.00
/usr/bin/runmqsc 96 0.45 0.18 0.00 0.27 0.00
/usr/bin/tprof 1 0.23 0.01 0.19 0.02 0.00
vmmd 1 0.08 0.08 0.00 0.00 0.00
...
Process PID TID Total Kernel User Shared Other
======= === === ===== ====== ==== ====== =====
r/java5/jre/bin/java 7012560 109772901 4.99 0.01 0.00 0.00 4.98
r/java5/jre/bin/java 7012560 85065811 4.92 0.01 0.00 0.00 4.91
r/java5/jre/bin/java 7012560 28770661 4.71 0.00 0.00 0.01 4.69
r/java5/jre/bin/java 7012560 5439747 4.65 0.00 0.00 0.01 4.63
r/java5/jre/bin/java 7012560 78970915 4.49 0.01 0.00 0.03 4.45
r/java5/jre/bin/java 7012560 35913987 4.41 0.01 0.00 0.01 4.40
r/java5/jre/bin/java 7012560 111083605 4.21 0.01 0.00 0.00 4.20
r/java5/jre/bin/java 7012560 87490635 4.04 0.01 0.00 0.01 4.03
r/java5/jre/bin/java 7012560 63635485 4.00 0.00 0.00 0.00 4.00
r/java5/jre/bin/java 7012560 86376471 3.83 0.00 0.00 0.02 3.81
r/java5/jre/bin/java 7012560 74842269 3.83 0.00 0.00 0.00 3.83
r/java5/jre/bin/java 11337904 72351955 3.73 0.01 0.00 0.02 3.70
r/java5/jre/bin/java 7012560 100335747 3.61 0.00 0.00 0.01 3.60
...
本例中7012560和11337904进程号对应的进程是WAS的两个server,可以看到其中一个7012560进程,所开的java线程占用CPU十分高,基本占3.5%以上。记下其中的TID号109772901(Thread ID),此进程号是十进制,转化为十六进制后为0x68B0065。
4. 在对应进程号的javacore文件中,搜索该十六进制进程号0x68B0065,即可查出该线程操作的堆栈数
"batchImportQuertz_Worker-9" J9VMThread:0x0000000032E9AE00, j9thread_t:0x000000012BAB1FA0, java/lang/Thread:0x0000000719D73DA8, state:CW, prio=5
(native thread ID:0x68B0065, native priority:0x5, native policy:UNKNOWN)
Java callstack:
at com/app/xxx/JobMonitorCommonService.triggerComplete(JobMonitorCommonService.java:328(Compiled Code))
at com/app/xxx/XXX.executeInternal(XXX.java:37)
at org/springframework/scheduling/xxx/XXX.execute(QuartzJobBean.java:86)
at org/xxx/core/JobRunShell.run(JobRunShell.java:216)
at org/quartz/simpl/SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549(Compiled Code))
Native callstack:
_event_wait+0x2b8 (0x0900000000A9E9BC [libpthreads.a+0x169bc])
_cond_wait_local+0x4e4 (0x0900000000AAC768 [libpthreads.a+0x24768])
_cond_wait+0xbc (0x0900000000AACD40 [libpthreads.a+0x24d40])
pthread_cond_wait+0x1a8 (0x0900000000AAD9AC [libpthreads.a+0x259ac])
(0x0900000002A5B17C [libj9thr24.so+0x417c])
(0x0900000002A5AF40 [libj9thr24.so+0x3f40])
(0x0900000002A5AEE0 [libj9thr24.so+0x3ee0])
(0x09000000029DDB6C [libj9vm24.so+0x10b6c])
(0x09000000029E5AE8 [libj9vm24.so+0x18ae8])
(0x090000000305C2C8 [libj9jit24.so+0x54d2c8])
(0x09000000029D8E10 [libj9vm24.so+0xbe10])
(0x0900000002A6CF94 [libj9prt24.so+0x1f94])
(0x09000000029D8D30 [libj9vm24.so+0xbd30])
(0x0900000002A58C70 [libj9thr24.so+0x1c70])
_pthread_body+0xf0 (0x0900000000A8BD54 [libpthreads.a+0x3d54])
分享到:
相关推荐
标题中的“WebSphere CPU高分析工具”指的是针对IBM WebSphere Application Server(简称WAS)的一种性能监控和诊断工具,主要用于解决服务器CPU使用率过高的问题。WebSphere是IBM提供的一个企业级Java应用服务器,...
这涉及到对操作系统层面的数据收集、线程分析以及使用调试工具如dbx进行详细诊断。 【标签】:Websphere 【正文】: 在Websphere Application Server (WAS)中遇到高CPU占用率问题时,可能是由多种因素引起的,...
### 压力测试及性能数据分析 #### 一、压力测试概述与环境配置 压力测试是一种软件测试方法,主要用于评估系统在高负载条件下的表现,包括系统的稳定性、响应时间、资源利用率等关键性能指标。本研究针对一个基于...
通过监控CPU使用率、内存消耗、线程状态等指标,可以定位性能瓶颈。 七、更新和补丁 确保WAS版本是最新的,并安装了所有必要的补丁。IBM经常发布更新来修复已知问题和提高性能,忽略这些更新可能导致问题持续存在。...
通过PMI,管理员可以获取到关于CPU使用率、内存使用情况、线程活动等关键指标的数据。 - **特点**:PMI的外部化特性使得收集到的数据可以被其他工具或系统进一步处理和分析,而不会对正在运行的应用服务器造成额外...
- **内存使用**:当应用服务器的 CPU 占用率持续在 90% 以上时,可能是内存管理问题。可以使用工具(如 pslist 和 process explorer)查看 Java 进程的详细信息,找出占用 CPU 用户时间过多的线程。通过 jconsole ...
应用程序中的不适当编程实践可能导致CPU使用率过高。例如,无限循环、计算密集型算法、无必要的同步块或者过度使用反射可能导致CPU资源的浪费。对代码进行审查和优化,以减少不必要的计算和资源消耗,是减轻CPU压力...
- 数据收集与分析:收集响应时间、吞吐量、错误率等数据,对测试结果进行统计和分析。 - 脚本支持:可能提供脚本编写功能,以便自定义复杂的用户交互场景。 - 可视化报告:生成易于理解的图表和报告,直观展示...
2. **性能指标**:使用WAS可以收集如响应时间、吞吐量、错误率等关键性能指标,这些数据有助于分析系统的瓶颈和性能问题。 3. **测试脚本**:WAS可能支持创建和编辑测试脚本,这些脚本可以模拟用户的各种交互行为,...
- **监控性能**:在测试过程中,WAS会收集关于服务器和应用的各项性能数据,如CPU使用率、内存占用、请求数量、响应时间等。 4. **分析测试结果** - **性能指标**:查看各项性能指标,评估系统的响应速度、吞吐量...
3. **性能监控**:在测试过程中,WAS会收集关于CPU使用率、内存占用、网络带宽消耗等关键性能指标。这些数据可以帮助分析资源瓶颈,优化系统配置。 4. **错误检测**:当测试过程中出现错误或异常时,WAS会记录下来...
- **性能问题**:如CPU使用率高、响应时间长等。 - **内存泄漏**:通过分析堆内存使用情况,定位内存泄漏的原因。 - **线程死锁**:利用工具检测线程状态,识别死锁的情况。 - **处理方法**: - **调整配置**:...
学生不仅需要理解WAS的工作原理,还需要掌握性能测试工具和方法,例如Apache JMeter或者LoadRunner,通过编写和执行测试脚本来模拟高并发情况,记录和分析服务器的CPU使用率、内存占用、响应时间等关键指标。...
利用Nagios WAS插件收集的数据,可以进行性能分析和故障排查。例如,如果发现某个应用程序响应时间持续增长,可能需要检查代码效率、数据库查询速度或服务器硬件性能。 总的来说,Nagios WAS插件是保障IBM ...
为了更好地进行性能分析,可以将这些文本数据导入到DB2表中,并使用SQL查询来获取更有价值的信息,例如执行时间最长的语句、不同语句的执行频度等。 #### 五、转换工具源代码示例 下面提供了一个简单的C语言程序...
4.3 PerfCounters:展示性能计数器收集的数据,如CPU使用率、内存消耗等。 4.4 ScriptsSettings:提供每个测试脚本的配置细节。 4.5 TestClients:统计各测试客户端的性能表现。 4.6 PageSummary:汇总各页面的性能...