当前位置:   article > 正文

Linux 之 排查程序后台占用CPU过高_csdn占用后台

csdn占用后台

java服务器查看CPU占用率过高问题

  1. top 查看异常程序
  2. top -H -p pid 查看异常的线程
  3. printf “%x\n” 线程号 将线程号转化为16进制
  4. 使用jstack 进程号 | grep 16进制异常线程号 -A90 来定位异常代码位置。 举例:jstack 23111 |grep -A 90 a8ea

C++服务器查看后台程序异常

  1. top 查看异常程序
  2. pstack pid 查看可疑的线程,找到对应线程的LWP
    或者使用 top -H -p pid 查找可疑的线程
  3. pstack pid | vim - 查看可疑堆栈
    以上初步定位到问题,如果想具体查看问题位置。
  4. gdb attach pid
  5. thread threadid (threadid可用pstack看到,是当前线程号,不是线程LWP)
  6. bt
  7. frame x
  8. p xxx

MySQL占用CPU高

通过top命令,发现MySQL CPU很高,通过以下步骤定位并解决问题

  1. 登录MySQL,执行 show processlist;找到可以的sql (大多数情况是查询字段无索引,数据量大,索引冲突导致锁死)
  2. 通过kill ID 杀死可疑session,使用top命令继续查看CPU利用率,是否还会飙升。
  3. 如果有大量session连接导致CPU飙升,可以调节MySQL连接数与后台的数据库连接池数量。
  4. 大并发量时,将慢日志关闭。
  5. 如果出现死锁,使用explain优化sql语句

InnnoDB死锁问题定位:
以下介绍了索引什么时候导致上锁
在这里插入图片描述
一个表不要太多索引,尽量少使用单字段索引,多字段索引对单字段也会生效。
要清楚什么时候添加索引,什么时候索引无效。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/637381
推荐阅读
相关标签
  

闽ICP备14008679号