排查tomcat服务器CPU占用率过高的问题

摘要:
对于jstack和jmap工具,oracle JDK和openJDK之间存在一些差异。本文使用oracle JDK。

1、执行top命令,看具体是哪个进程导致CPU 100%,复制问题进程的PID。

2、执行命令:top -p PID -H      查看指定进程里面的线程状态,定位到CPU太高的线程,开头的PID实际就是线程ID(TID)。

3、执行命令:printf "%x\n" TID     把TID转换为十六进制。

4、执行命令:jstack PID | grep TID -A 30     显示指定进程的栈信息,看是否有锁,或者其它耗时操作。

5、执行命令:jmap -heap PID    查看堆信息。

对于jstack和jmap工具,oracle JDK和open JDK存在一些差异,本文用的是oracle JDK。

这篇写得更详细:

https://www.cnblogs.com/wuchanming/p/7766994.html

免责声明:文章转载自《排查tomcat服务器CPU占用率过高的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WebView2简单试用(八)—— 右键菜单ubuntu jdk1.8 安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PID控制器开发笔记之十一:专家PID控制器的实现

  前面我们讨论了经典的数字PID控制算法及其常见的改进与补偿算法,基本已经覆盖了无模型和简单模型PID控制经典算法的大部。再接下来的我们将讨论智能PID控制,智能PID控制不同于常规意义下的智能控制,是智能算法与PID控制算法的结合,是基于PID控制器的智能化优化。   在本章我们首先来探讨一下专家PID算法。正如前面所说,专家PID算法是专家系统与PI...

Django解除端口占用

Error: That port is already in use.有两个方法可以解决(假设8000端口被占用):1.使用python manage.py runserver 8001 开一个新的端口。2.kill掉原来的端口(在root条件下)。2.1 在终端输入lsof -i:8000,列出进程信息。2.2 然后,找到进程的PID号,比如我的PID号...

Android ADB 端口占用问题解决方案

解决ADB端口占用问题 今天准备在准备appium的环境,突然发现自己的adb连接不上模拟机器了,试了好多次也不知道哪里出问题了, 之前用的还好好的,心想有可能是端口被占用了。 5037为adb默认端口,若5037端口被占用 步骤:1. 查看占用端口的进程PID 2. 通过PID查看所有进程 9844 是占用端口的进程的 pid 3. 杀死占用端口的进...

使用zTree插件构建树形菜单

zTree下载:https://github.com/zTree/zTree_v3 目录: 就我看来,zTree较为实用的有以下几点: zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。 支持 JSON 数据 支持静态 和 Ajax 异步加载节点数据 支持任意更换皮肤 / 自...

查看java内存情况的几个常用命令

java 命令简单查看jvm内存使用状况 jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jmap:打印出某个java进程(使...

2.1 Linux中wait、system 分析

wait与waitpid: 当子进程退出的时候,内核会向父进程发送SIGCHID信号,子进程的退出是一个异步事件(子进程可以在父进程运行的任何时刻终止)。 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 父进程查询子进程的退出状态可以用wait/waitpid函数。 当我们用f...