案例

客户现场反馈,top的检查结果中,一个CPU的占用一直是100%。实际上现场有4个CPU,而且这个服务器是mysql专属服务器。

我的第一反应是io_thread一类的参数设置有问题,检查以后发现read和write的thread设置都是4,这和CPU数一致,因此可以断定这并不是单颗CPU占用过高的根本原因。
接下来需要确认MySQL究竟有没有利用到多核CPU,这个时候需要的工具叫做pidstat,命令如下:

pidstat -u -t -p 18158

得到的结果如下图所示:

图片.png

可以看出其实mysqld是可以利用到多核CPU的,那么此时可以得到一个推断:

某个CPU上做的事情太占资源了
**
一般这种最占资源的工作一定会在INNODB_TRX里留下一些端倪,因此检查一下:

图片.png

反复的检查,发现mysql在不停的执行这个SQL,只是where条件里的值发生了变化,至此我可以推断出业务应该是写了一个循环来遍历一个list,然后对每个item都执行update操作。

检查这个表并没有索引,给where条件中的列加上索引,再次检查CPU的占用,发现现在的占用已经降低到了16%左右,虽然还是很高,但是已经实际上解决了该问题。

小结

这次首先查io_thread是我的失误,因为这个参数如果没有设置也就是默认情况下也不会把MySQL变成单核的服务。

BTW,DBA是一个综合技能,除了会MySQL,Oracle之外,还得掌握很多Linux的知识,达到一个中级SA的标准。也不是会写SQL就能当DBA的。

服务器cpu 单核过高的影响,一次单核CPU占用过高问题的处理相关推荐

  1. java内存过高_Java应用问题定位系列——内存占用过高

    定位Java程序内存使用过高或者内存泄漏的问题跟CPU也类似,一般可以分为以下3个步骤: 定位进程 定位线程 定位具体方法(代码部分) 一.定位进程 通过top -c(然后按Shift+M按内存排序) ...

  2. Java 线上cpu占用过高分析

    转载于:https://blog.csdn.net/ch999999999999999999/article/details/113151519 感谢作者:ch999999999999999999 J ...

  3. 如何占用计算机内存,电脑内存占用太高怎么办 教你电脑内存不够用解决方法...

    现在很多白领买电脑,都会优先考虑电脑的续航和便捷,因为他们买电脑主要也就办办公,看看电影,又不玩大型游戏,所以高性能对他们来说也没什么必要. 笔记本电脑 但现在市面上续航久,便携性比较高的Intel电 ...

  4. 一次单核CPU占用过高问题的处理

    客户现场反馈,top的检查结果中,一个CPU的占用一直是100%.实际上现场有4个CPU,而且这个服务器是mysql专属服务器. 我的第一反应是io_thread一类的参数设置有问题,检查以后发现re ...

  5. svchost占用内存过高_是什么导致你的Java服务器内存和CPU占用过高呢

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

  6. idea占用cpu过高_生产环境服务器变慢、CPU占用过高,诊断思路和性能评估谈谈?...

    上篇: https://zhuanlan.zhihu.com/p/166162037​zhuanlan.zhihu.com 一.生产环境服务器变慢,诊断思路和性能评估 1.在Linxu准备数据 (1) ...

  7. mysql是单核吗_一次单核CPU占用过高问题的处理

    客户现场反馈,top的检查结果中,一个cpu的占用一直是100%.实际上现场有4个cpu,而且这个服务器是mysql专属服务器. 我的第一反应是io_thread一类的参数设置有问题,检查以后发现re ...

  8. Linux中JAVA服务器CPU占用过高(分析解决方法)

    当发现生产环境CPU使用非常高,并且居高不下,导致服务器报警,需要快速定位,分析是什么地方占用CPU过高,推荐步骤如下: 1. 首先服务器查看占用cpu高的进程是哪一个,查出进程号 top 2.查询该 ...

  9. java 内存很高_Java服务器内存和CPU占用过高的原因

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

最新文章

  1. 一封会笑死人的校园情书
  2. C++实现CString和string的互相转换
  3. 高性能的序列化与反序列化:kryo的简单使用
  4. 【推荐】一款快速预览神器:QuickLook
  5. ArcGis融合小多边形到相邻多边形
  6. Spring-SpringMVC父子容器
  7. 使用JDBCTemplate实现与Spring结合,方法公用 ——Spring配置(applicationContext.xml)
  8. 老牌语言依然强势,GO、Kotlin 等新语言为何不能破局?
  9. SSD1306驱动理解
  10. 怎样用计算机二元一次方程,键入公式在计算机如何键入二元一次方程式公式 – 手机爱问...
  11. stylus 设置全局样式_vue 公共样式处理_全局styl文件
  12. 鸡兔同笼php语言,鸡兔同笼(C语言代码)
  13. uniapp 动画的实现
  14. django-filer中文汉化无效的解决方案
  15. 写开源项目到底究竟有多赚钱?
  16. ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map
  17. 7段均衡器最佳参数_均衡器参数详解(精)
  18. 国信证券学习系列(2)
  19. Kafka的命令行操作
  20. VS2019 MFC 对话框拆分窗格

热门文章

  1. 下载学习通上没有下载权限的文件
  2. 反斜杠,让您的csv文档字符不撞车;让“借”您csv数据的人叫苦不迭。
  3. Prometheus告警实践
  4. 客户需求分析方法:KJ分析法(亲和图法)
  5. C.实验7_3_奇数偶数
  6. 教你检查Mac电池的健康度
  7. 欧拉函数φ(x)相关性质及计算
  8. cdr存成html格式的文件格式,CDR必备!CDR保存与各种格式之间转换!-cdr文件用什么打开...
  9. html ico格式怎么用,ico是什么文件格式?ico文件怎么打开?
  10. val( )函数的用法