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

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命令定位到具体的线程。

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

    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.9K30

    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

    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密集计算。

    3.1K10

    w3wp占用CPU过高

    就可以看到占用内存或者 cpu 最高的进程 pid ! 2 在命令提示符下运行 iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。...2 设置应用程序池的CPU监视,不超过25%,每分钟刷新,超过限制时自动关闭。 注:此方法只能用来做为测试,在真正的环境下,这个可能会引起网站时好时坏。不推荐长期使用。...注:方法是先停止IIS,再删除当天的网站日志(系统路径\System32\Logfiles\对应的网站目录下),然后开启IIS,等待CPU占用的出现,这时在1分钟内打开新建的日志文件,按出现时间,对应检查里面所罗列出现的文件...注:有些写得不好的 ASP 程序,在访问数据库无法做到容错性,所以有些时候数据库损坏或者 ODBC 传送数据不正常,都有可能造成多次强制查询,从而体现为 w3wp.exe 高 CPU 占用

    1.6K20

    趣味编程故事|java进程占用cpu过高怎么办,别急我来帮你

    小李:xx服务器 现在cpu已经100%了,我刚才查了下是java进程占用的 我:好的,我来看下 我赶紧打开我的电脑,连接上了xx服务器,使用top 命令查了下,确实是java进程占用cpu最高,我大脑飞速旋转想到...:这几天也没有对程序做什么大改动啊,怎么会出现这个问题呢; 于是我把本地代码切换到master分支,在本地跑了下发布到线上的代码,观察了一会,也没看见cpu 占用很高啊,我就很纳闷了,然后又上服务器看了下...,java 进程占用cpu 还是比较高的,这是怎么回事呢?...接下来场面就比较血腥了,前方高能预警,系好安全带 【高能预警】 我拿出了杀手锏,江湖上失传已久的九阴真经(其实就是平时的笔记哈哈),在上面找了一些命令,然后就是接下来的场景了: 【步骤一】找到最耗cpu...的进程 top 得到最占用CPU的进程为:39890 【步骤二】找到39890进程中最消耗cpu的线程 top -d 1 -Hp 39890 在这里插入图片描述 得到最耗CPU的进程为39900

    61800

    Mysql占用过高CPU时的优化手段

    Mysql占用CPU过高的时候,该从哪些方面下手进行优化?...占用CPU过高,可以做如下考虑: 1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引...; 2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。...登陆服务器,发现机器负载有点高,并且mysql占用了很高的CPU资源,如下图: image.png MySQL负载居高不下,如果打开了慢查询日志功能,最好的办法就是针对慢查询日志里执行慢的sql语句进行优化...,如果sql语句用了大量的group by等语句,union联合查询等肯定会将mysql的占用率提高。

    4.7K120
    领券