c++程序 cpu占用过高排查方法
1,执行 top指令 查看当前cpu的整体情况。如下图 31757进程占用cpu最高。
2,执行 top -p 31757 -H 指令,查看当前进程下 各线程占用cpu情况。
3,执行 pstack 31763 指令,查看当前线程的堆栈信息,定位到具体函数。
备注:pstack 是一个shell脚本。
#!/bin/shif test $# -ne 1; thenecho "Usage: `basename $0 .sh` <process-id>" 1>&2exit 1
fiif test ! -r /proc/$1; thenecho "Process $1 not found." 1>&2exit 1
fi# GDB doesn't allow "thread apply all bt" when the process isn't
# threaded; need to peek at the process to determine if that or the
# simpler "bt" should be used.backtrace="bt"
if test -d /proc/$1/task ; then# Newer kernel; has a task/ directory.if test `/bin/ls /proc/$1/task | /usr/bin/wc -l` -gt 1 2>/dev/null ; thenbacktrace="thread apply all bt"fi
elif test -f /proc/$1/maps ; then# Older kernel; go by it loading libpthread.if /bin/grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; thenbacktrace="thread apply all bt"fi
fiGDB=${GDB:-gdb}# Run GDB, strip out unwanted noise.
# --readnever is no longer used since .gdb_index is now in use.
$GDB --quiet -nx $GDBARGS /proc/$1/exe $1 <<EOF 2>&1 |
set width 0
set height 0
set pagination no
$backtrace
EOF
/bin/sed -n \-e 's/^\((gdb) \)*//' \-e '/^#/p' \-e '/^Thread/p'
c++程序 cpu占用过高排查方法相关推荐
- Java代码-CPU占用过高排查思路
Java代码-CPU占用过高排查思路: 1.top 查看占用cpu过高的进程PID 2.top -Hbp 32048|awk '/java/ && $9>50' 查看进程中占用 ...
- cpu 占用过高排查
最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 # 1.使用top 定位到占用CPU高的进程PID top# ...
- linux ubuntu systemd-udevd进程 cpu占用过高 解决方法
ubuntu 18.04 systemd-udevd进程CPU占用特别高,禁用WiFi可以解决,如下: 执行 udevadm monitor ,不断输出如下信息: UDEV [13756.376116 ...
- 【linux】oracle数据库cpu占用过高排查方案
将[%cpu]占用率最高的那条的[PID]复制取出,去数据库执行下面语句,即可查询出是哪条sql语句占导致cpu占用很高 SELECT sql_text FROM v$sqltext a WHERE ...
- Linux排查java程序CPU占用过高问题
项目部署到服务器上之后,偶尔出现CPU被java程序占满的情况. 现在排查问题原因 top 首先查看系统资源占用信息,使用命令 top 发现正在运行的JAVA项目CPU占用率如果很高,那问题肯定出在这 ...
- 线上java程序CPU占用过高问题排查
简要 工作中负责的有一个项目是使用iReport+JasperReport实现的一个打印系统.最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的问题. 最后发现是JasperRep ...
- Linux生产环境CPU占用过高排查步骤
先用top命令找出CPU占比最高的 top CPU占用最高的是java进程,它的 进程ID:3362 ps -ef 或者 jps 进一步定位,得知是怎样的程序 [root@192 ~] ps -ef ...
- Linux系统内存占用过高排查方法
以下以Ubuntu系统为例,内存占用过高可能是因为某个进程或程序占用了过多的内存,您可以按照以下步骤进行排查: 以上是一些基本的排查步骤,它们可以帮助您确定内存占用过高的原因,并采取相应的措施解决问题 ...
- cpu 占用过高排查流程
1.jps 获取Java进程的PID. 2.jstack pid >> java.txt 导出CPU占用高进程的线程栈. 3.top -H -p PID 查看对应进程的哪个线程占用CPU过 ...
最新文章
- SMS2003 SP3+SQL Server2000 SP4部署(下)
- 今晚8点直播 | 详讲NLP的经典应用实践——文本分类
- 谷歌浏览器实现按下按键的脚本_chrome浏览器控制台创建js脚本并执行
- 如何定义中文转语音的语气
- 解决Windows下栈内存过小的问题
- postman post gin 接收不到_golang web开发——gin实战入门
- JavaScript实现继承的方式,不正确的是:
- 刷题总结——xor(ssoj)
- PyQt5 QTableView 全部item居中
- TED演讲:数据科学家最重要的技能是什么
- Python2.7打包的exe文件反编译成py文件
- Java实现网页滑动验证与短信验证码案例精析
- 七巨头如何抵御抖音?
- VM虚拟机局域网组网配置
- R语言之空间数据操作
- [书目20131223]Android、iPhone、Windows Phone手机网页及网站设计:最佳实践与设计精粹 - 张亚飞...
- Informatica 初学日记全
- 三菱FX3U与2台台达温控器modbus通讯案例 功能:三菱FX3U与2台台达温控器进行modbus通讯
- AAPCS(Procedure Call Standard for the ARM Architecture)笔记
- BL2028n,BLE+Wi-Fi双模SOC-物联网iot芯片,上海博通-Matter协议,layou指南