- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《WebLogic_Server_CPU占用率过高解决办法》.pdf
WebLogic Server CPU 占用率过高解决办法
本文由《weblogic中文爱好者论坛》 整理发布。
1 问题描述
系统管理员或用户注意到 WebLogic Server 进程消耗大量的 CPU 资源,并想要了解是哪个方面消耗
了大量 CPU 资源,以及导致出现这种现象的原因。
2 故障排除
请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。
2.1 为什么发生此问题?
发生此问题有许多原因:WebLogic Server 本身、用户创建的线程、不良编码习惯或第三方软件。遗
憾的是,证明在什么地方发生此问题有时候非常困难。本模式尝试通过利用特定操作命令和收集数据
来帮助排除此问题。
2.2 收集高 CPU 占用率的数据
对于有关收集高 CPU 占用率的数据的特定操作信息,请根据您的操作系统执行以下步骤。
重要说明:
这些操作系统的所有信息都基于 Sun JVM。 目前在 JRockit 中还没有办法将 PID 从说明 CPU 占用率的
操作系统命令(prstat、top、pslist 等等)映射到 Thread Dump 中的正确线程。 从 Jrockit 的
70SP4RP2 和 81SP2RP1 以后的版本起,就可实现此映射。 例如,在 Linux 中,Thread Dump 在以后的
版本中将采用如下形式(PID 显示在 Thread Dump 中):
ExecuteThread: 20 for queue: default id: 0x00000e80 prio: 5 ACTIVE, DAEMON, GCABLE
thread: 0x469b0af0 lastj: 0xac0f19c
pt_thr: 237596 pid: 23166
at COM.jrockit.vm.Classes.defineClass0(Native Method)@0x8b4b798
at COM.jrockit.vm.Classes.defineClass(Unknown Source)@0x8b4b8b1
at java.lang.ClassLoader.defineClass(Unknown Source)@0x8b4b46f
在上例中,PID 是 23166,您可以通过 Linux 或任何所在系统上的 top (或任何您需要在操作系统上使
用的特定命令)输出直接关联该 PID。
转换为十六进制号码
备注:为协助您计算在本模式中讨论的十六进制值,您可以在 Shell 脚本中使用下列行将十进制号码转
换为十六进制号码。如果您使用 Unix 操作系统,那么转换会很方便。
dec2hex.sh:
printf dec - hex: %d = %x \n ${1} ${1}
用法:
$ sh dec2hex.sh 755
dec - hex: 755 = 2f3
Solaris
1. 在 Java 进程中运行 prstat 命令。重复几次这个操作,以便您能够看到一种模式。例如:
prstat -L -p PID 1 1
2. 在 Java 进程中运行 pstack 命令以获得从轻量型进程 (LWP) 到 PID(进程 ID)的映射。
示例:pstack 9499 并将输出结果重定向到一个文件。
如果您使用 Solaris 中的常规线程库(即,在 LD_LIBRARY_PATH 中没有 /usr/lib/lwp),LWP 就
不会直接映射到操作系统线程,因此您必须从进程中执行 pstack (所以检查看您是否正在使用替代线程
库)。
3. 经过一段时间后对服务器进行若干 Thread Dump,确保您执行正确的线程。
您可以通过在 Java 进程中执行 kill -3 PID来达到此目的。
4. 将 LWP ID 映射到 Java 线程 ID。
例如,如果上述的 LWP 为“8”,它可以映射到 Java 线程“76”。然后将 76 换算为十六进制值 0x4c。
5. 检查 Thread Dump,找到匹配“nid= 上述标识符/值”的线程。
在本示例中,您找到匹配“nid=0x4c”的线程,而该线程就是正在消耗 CPU 资源的那个线程。
6. 您将需要:
您可能关注的文档
最近下载
- DELIXI德力西仪表JKL5CV JKL2CV智能无功功率自动补偿控制器使用说明书 物料号:A0463099500.pdf
- 道路亮化工程项目可行性研究报告.docx
- 幼儿园必备《师德师风培训》-2024鲜版.ppt
- 新北师大版四年级数学上册《认识更大的数》练习题.pdf
- 【西南大学】[机考][0087]《计算机网络》 (3)辅导资料.doc VIP
- 四川327省考行测真题及解析.doc
- (冀教版)八年级生物下册全教案.pdf VIP
- 广东省汕头市2022-2023学年高一下学期期末考试历史试题(解析版).docx
- 专题 事件类记叙文(记叙文阅读)(原卷版).doc VIP
- 颜料红177的制备工艺分析-analysis of preparation technology of pigment red 177.docx
文档评论(0)