首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tomcat占用CPU过高解决方法

问题描述 在工作中经常遇到Tomcat占用CPU居高不下,top显示结果超过200%,请求无法响应,针对这种情况有以下处理办法进行排查。请求无法响应。...命令可以快速查出jvm进程 jps pid 2、查看jstack信息 jstack pid 3、将十进制pid转换为16进制 将十进制转换成16进制 # printf "%x\n" 19713-->将第2步查到占用较高...CPU的线程号转换为16进制,以便于jstack查看 4d01 #jstack pid | grep 0x4d01--> 0x4d01为第3步19713转换为16进制后的数字,因为jstack显示的线程号是以...占用量 简单点儿的方法则是,查出进程id后,通过如下命令查看该进程中每个线程的资源使用情况 top -H -p pid  -H用于显示某个进程的所有线程 从这里获取pid(线程id),转换为16进制,然后去...通过上述方法,查出tomcat进程对应的线程cpu占用率累积之和约80%,远小于top给出的200%+ 说明并不存在长期占用cpu的线程,应该是属于有许多短暂性的cpu密集计算。

2.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

Tomcat进程占用CPU过高怎么办?

CPU经常会成为系统性能的瓶颈,可能: 内存泄露导致频繁GC,进而引起CPU使用率过高 代码Bug创建了大量的线程,导致CPU频繁上下文切换 通常所说的CPU使用率过高,隐含着一个用来比较高与低的基准值...如果没有找到个别线程的CPU使用率特别高,考虑是否线程上下文切换导致了CPU使用率过高。...用更精细化的top命令查看这个Java进程中各线程使用CPU的情况: #top -H -p 55790 可见,有个叫“scheduling-1”的线程占用了较多的CPU,达到了42.5%。...但对于该案例:Java进程占用CPU是961.6%, 而“scheduling-1”线程只占用了42.5%的CPU,那其它CPU被谁占用了?...总结 遇到CPU过高,首先定位哪个进程导致的,之后可以通过top -H -p pid命令定位到具体的线程。

2K10

CPU占用过高排查

一.简介 最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 1.使用top 定位到占用CPU高的进程PID top...2.通过ps aux | grep PID命令 获取线程信息,并找到占用CPU高的线程 ps -mp pid -o THREAD,tid,time | sort -rn 3.将需要的线程ID转换为16...printf "%x\n" tid 4.打印线程的堆栈信息 到了这一步具体看堆栈的日志来定位问题了 jstack pid |grep tid -A 30 二.例子 1.top 可以看出PID 733进程 的占用...CPU 172% 2.查找进程733下的线程 可以看到TID 线程775占用了96%且持有了很长时间 其实到这一步基本上能猜测到应该是 肯定是那段代码发生了死循环 ps -mp 733 -o THREAD

3.6K30

cpu占用过高排查

简介 最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 # 1.使用top 定位到占用CPU高的进程PID...top # 2.通过ps aux | grep PID命令 获取线程信息,并找到占用CPU高的线程 ps -mp pid -o THREAD,tid,time | sort -rn # 3.将需要的线程...printf "%x\n" tid # 4.打印线程的堆栈信息 到了这一步具体看堆栈的日志来定位问题了 jstack pid |grep tid -A 30 案例 1.top可以看到PID733进程的占用...显然是 SmsQueueServiceImpl 中的produceMissSms 和 consumeMissSms 方法有问题 最后注释掉那段循环代码,cpu占用就正常了,也有可能是因为频繁GC导致CPU...占用过高

2.4K51

​高频面试题:Java程序占用 CPU 过高怎么排查

线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅能解决面试官,还能解决问题。...当我们真碰到这个问题的时候应该怎么排查呢? 模拟一个高 CPU 场景 先用一段程序创建几个线程,将其中一个线程设置成高 CPU 使用率的。...如果是在面试场景中,这个问题可能不需要确认,毕竟 Java 面试,面试官可能直接就告诉你是 Java 占用CPU 过高。...可以看到占用 CPU 最高的那个线程 PID 为 13756。...怎么样,现在一目了然了,线程名称、线程状态、以及哪行代码消耗了最多的 CPU 都很清楚了。 点赞、在看、分享走一波? ?

1.2K30

w3wp占用CPU过高

就可以看到占用内存或者 cpu 最高的进程 pid ! 2 在命令提示符下运行 iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。...解决方法: 1 尝试删除系统路径\System32\Logfiles\W3SVC1 下当天的错误日志文件,如:ex060904.log,然后重新启动IIS,等待一段时间,看看有没有问题。...注:方法是先停止IIS,再删除当天的网站日志(系统路径\System32\Logfiles\对应的网站目录下),然后开启IIS,等待CPU占用的出现,这时在1分钟内打开新建的日志文件,按出现时间,对应检查里面所罗列出现的文件...注:有些写得不好的 ASP 程序,在访问数据库无法做到容错性,所以有些时候数据库损坏或者 ODBC 传送数据不正常,都有可能造成多次强制查询,从而体现为 w3wp.exe 高 CPU 占用。...---------------------------- 以上才是真正的解决手段和方法,网上流传的资料,不是很让人满意。

1.6K20

解决Ubuntu18.04中启动kworker等占用系统cpu过高问题

提要 这个问题困扰我好久,真的很烦人,一般网上的解决方式也不是特别好用。...后来说一下我的解决方案 正文 刚装的Ubuntu18.04出现硬盘短时间内被占满,通过查询可以看出在/var/log/下出现两个超级打的日志kern.log和syslog我的盘符分了100G一晚上就占用满了...0.849725] pcieport 0000:00:ac.4: [ 0] Receiver Error (First) 并且在关机时该错误也依然会存在,与此同时top查看发现kworker进程占用...如下图所示 经过一番查找,并没有发现有比较好的解决方案。有的甚至于写了通过定时任务定期去清理这两个文件。这个解决方案太扯淡了。...acpi/interrupts/查看具体时那个因为有的同学时gpe13 可参考如下链接:https://askubuntu.com/questions/176565/why-does-kworker-cpu-usage-get-so-high

2.1K10
领券