如何查看函数级的CPU资源CPU占用过高细节

性能指标之资源指标-谁占用了CPU-函数级-CoreDump
本节介绍如何利用CoreDump文件分析哪个函数占用CPU多。听起来有些离奇,CoreDump是系统出现问题时自动产生的CoreDump文件,可以分析出现问题时候的函数调用栈,怎么就可以分析哪个函数占用CPU多呢?
思路:人为产生CoreDump文件(kill -3那个占用CPU最多的Java线程,kill -3 pid表示发送信号3也就是SIGQUIT给进程pid。kill -9 就是发信号9也就是SIGKILL),分析那个时刻,线程执行到了哪个函数。然后,隔一段时间产生一次CoreDump文件(因为CoreDump文件很大,产生CoreDump文件需要消耗时间、CPU、IO资源,因此需要隔一段时间),产生N个CoreDump后,分析他们都停到了哪个函数。如果10个CoreDump里,有4-5个都停到了同一个函数,从统计的角度可以说明,至少40-50%的CPU时间片是被这个函数占用的。
对于java程序,nmon中可以看到的函数级最低就是java,占用CPU最多的就是java进程。至于java里面什么函数占用CPU多并不清楚,此时CoreDump文件就要大展身手了。
对于C程序,也可以产生CoreDump,并采用dbx分析,但需要用源程序的配合。
本节重点介绍Java程序的分析方法。
1、 产生Core文件
Topas 找到占cpu最大的进程(比如5046286),ps -mp 5046286 -o THREAD 以查找当前进程中占用 CPU较高的线程信息,记录线程号
kill -3 5046286 产生core dump文件,重复做1~3步 半分钟一次,执行多次
找到javacore和heapdump
find / -name javacore..*
查看javacore.xxx.xxx.xxx.txt文件,取上面找到的CPU高的线程号,转换为16进制的数据,转换16进制值为0x25E00E9,可以使用windows的“计算器”工具,先输入10进制数值,然后切换到16进制。
找0x25E00E9在javacore.602.3.txt中对象的日志:
多个core文件,按照上述方法,一一分析。
2、Core文件分析
在8个时间点的core文件中,有5个core的最大的线程是同一个,且线程中正在执行的函数是同一个, TableOutput.run(TableOutput.java:43(Compiled Code)),这个函数占了整个CPU的53~90%。
3、问题分析
应用在保存数据时,如果查询的条数不超过1000条,则一直不保存,这种情况下,一直在进行循环。这个是比较浪费CPU的。
4、问题解决
在不满足条件时,加入sleep,问题解决
性能指标之资源指标-CPU-谁占用了CPU-函数级-tProf
性能指标之资源指标-CPU-谁占用了CPU-函数级-truss
性能指标之资源指标-CPU-谁占用了CPU-进程级
性能指标之资源指标-CPU-谁占用了CPU-函数级-curt
没有更多推荐了,扫一扫体验手机阅读
linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具
<span type="1" blog_id="1587165" userid='
244篇文章,76W+人气,10粉丝
容器私有云平台实践之路
¥51.0086人订阅
掌握VMware超融合技术
¥51.0050人订阅
高并发架构之路
¥51.00150人订阅
前百度高级工程师的架构高可用实战
¥51.00237人订阅
<span type="1" blog_id="1587165" userid='1、想降低CPU的使用率,最直接简便的方法就是删除不必要的减少开机启动项,点击-开始-,运行CMD命令,敲入msccnfig,点击-启动-,删除不需要的启动项重启后即可。
2、CPU使用率占用过高的话应查看“svchcst”进程寻找问题所在。svchcst.exe是WXP系统的一个核心进程。svchcst.exe不只出现在WXP中,在使用NT内核的Windows系统中都会有svchcst.exe的存在.
3、鼠标的右键也能造成CPU占用100%:在-资源管理器-内右键点任一文件或目录,当快捷菜单显示时CPU占用率将会增至100%,而关闭快捷菜单的时又会达到正常水平。
4、关闭-为菜单和工具提示使用过渡效果-即可。点击-开始-控制面板-,在-控制面板-内双击-显示-,在-显示-属性内点击-外观-标签页,在-外观-标 签页内点击-效果-,在-效果-对话框内清除-为菜单和工具提示使用过渡效果-,然后再将前面的复选框连续点击2次-确定-按钮。
5、默认系统安装完成后系统会自动开启许多服务项,当然不可避免的会有不少用户不需要或者暂时不需要的,无疑造成了对运行速度的阻碍。禁止相关操作可腾出内存和大量系统资源.在 -开始-的 -运行- 中 输入: servioes.msc 。百度题库旨在为考生提供高效的智能备考服务,全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效服务,助您不断前行!
京ICP证号&&
京网文[3号&&
Copyright (C) 2018 Baidu

我要回帖

更多关于 CPU占用率100 的文章

 

随机推荐