发现服务器的cpu使用率特别高

排查思路:

-使用top或者mpstat查看cpu的使用情况

mpstat -P ALL 2 1

Linux 2.6.32-358.el6.x86_64 (linux—host) 01/05/2016 _x8664 (24 CPU)

04:41:13 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:41:15 PM all 0.56 0.00 0.25 0.00 0.00 0.04 0.00 0.00 99.14
04:41:15 PM 0 3.08 0.00 1.03 0.00 0.00 0.51 0.00 0.00 95.38
04:41:15 PM 1 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00
04:41:15 PM 2 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00
04:41:15 PM 3 1.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.51
04:41:15 PM 4 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 5 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00
04:41:15 PM 6 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00
04:41:15 PM 7 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 8 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00
04:41:15 PM 9 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 11 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 12 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00
04:41:15 PM 13 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00
04:41:15 PM 14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 16 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 17 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 18 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 19 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
04:41:15 PM 20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:41:15 PM 23 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50

-top找出占用高的进程ID

-查看进程占用线程数量,如java:

ps -eLf|grep java|wc -l

1065

解决CPU使用不均或者使用过高的问题

taskset

taskset是LINUX提供的一个命令(ubuntu系统可能需要自行安装,schedutils package)。他可以让某个程序运行在某个(或)某些CPU上。

1)显示进程运行的CPU

taskset -p 3495

pid 3495's current affinity mask: ffffffff

注:显示结果的ffffffff实际上是二进制32个低位均为1的bitmask,每个1对应于1个CPU,表示该进程在32个CPU上运行

2)指定进程运行在某个特定的CPU上

taskset -pc 3 3495

显示结果:

pid 3495's current affinity list: 0-31
pid 3495's new affinity list: 3

注:3表示CPU将只会运行在第4个CPU上(从0开始计数)

3)进程启动时指定CPU

taskset -c 1 ./redis-server ../redis.conf

系统CPU负载过高、CPU使用率不高的问题

(1)、问题

    线上Tomcat服务器CPU的负载非常高,但是CPU使用率正常,如图:图片.png

(2)、问题排查

    1、首先查看是哪些进程的CPU占用率最高(如下可以看到详细的路径)ps -aux --sort -pcpu | more# 定位有问题的线程可以用如下命令ps -mp pid -o THREAD,tid,time | more2、查看JAVA进程的每个线程的CPU占用率ps -Lp 5798 cu | more        # 5798是查出来进程PID3、追踪线程,查看负载过高的原因,使用JDK下的一个工具jstack 5798                        # 5798是PIDjstack -J-d64 -m 5798       # -j-d64指定64为系统jstack 查出来的线程ID是16进制,可以把输出追加到文件,导出用记事本打开,再根据系统中的线程ID去搜索查看该ID的线程运行内容,可以和开发一起排查。

(3)、常见的处理办法

    网站相关进程导致负载高处理办法:1、直接把网站php或http或tomcat等网站服务重启,很多时候负载就降下来了2、也可能是网站代码漏洞导致的,需要反馈开发一起查找原因和处理3、把重复的tomcat kill全部掉重新启动mysql进程导致的负载高处理办法:1、常见的就是mysql慢查询导致,可以在mysql慢查询日志找到相关sql语句,这需要对sql进行优化2、还可以进入mysql,用show full processlist\G;查看那个mysql进程执行时间比较久的慢查询。如果是内部后台使用的语句,可以先kill掉,优化后再执行。3、mysql读写太频繁,如果是读写频繁可以在%wa等待输入输出看的出来占用cpu百分比很大。也可以通过命令iostat查看系统读写情况。还有可能是网络原因,系统硬件原因等

转载于:https://blog.51cto.com/13120271/2334538

服务器CPU使用率过高排查与解决思路相关推荐

  1. linux服务器 cpu使用率过高,服务器CPU使用率过高排查与解决思路

    发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况 mpstat -P ALL 2 1 Linux 2.6.32-358.el6.x86_64 (linux- ...

  2. window服务器cpu过高的排查_服务器CPU使用率过高排查与解决思路

    发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况 mpstat -P ALL 2 1 Linux 2.6.32-358.el6.x86_64 (linux- ...

  3. Linux服务器CPU使用率过高排查与解决思路

    日常工作中有时候会遇到Linux服务器上出现CPU负载过高的情况,影响程序的运行,一般的排除思路如下: 方法一: 使用top命令 然后按shift+p按照CPU排序,找到占用CPU过高的进程的pid ...

  4. linux tomcat cpu占用高,排查tomcat服务器CPU使用率过高

    tomcat要运行依赖于JDK,tomcat服务器的CPU使用率过高,大多都是由于部署的web程序的问题. 一.征象形貌 在一次线上环境,前台接见页面的速率越来越慢,从浏览器F12中看到发出的请求都是 ...

  5. Java应用CPU使用率过高排查

    1.使用top命令查看使用CPU过高的进程 top top - 14:16:06 up 27 min, 3 users, load average: 0.00, 0.01, 0.02 Tasks: 8 ...

  6. 线上告警CPU使用率过高排查分析

    本文主要列举了如下几种可能造成CPU过高的场景进行排查分析. 1.代码死循环 启动了两个线程(线程一定要起一个合适的名称,出了问题时方便排查),一个线程空循环,一个线程每500ms循环一次. publ ...

  7. Linux服务器CPU使用率过高

    前言 服务器使用率过高,导致,请求报错 分析 通过阿里云分析: 通过Linux命令查看原因 top 通过 top -Hp 进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID): top -H ...

  8. cpu占用过高排查分析解决,简单方便

    要想遇到个CPU过高也不是件容易的事啊,先模拟下吧 @GetMapping("/letCpuBuisy")public void letCpuBuisy(){int i=0;whi ...

  9. CPU使用率过高排查

    1. 通过top找到占用率高的进程 2. 通过top -Hp pid找到占用CPU高的线程ID 3. 再把线程ID转化为16进制 4. 通过命令jstack 进程id | grep 线程id -C5 ...

  10. Java项目引起服务器cpu负载过高排查

    top命令 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 18057 root 20 0 8635812 2.697g 15040 S 3 ...

最新文章

  1. 自然水体辐射特性与数值模拟 pdf_【技术·航天】定量评估贡献 精准决策未来 ——气象卫星数据在数值预报系统中贡献的定量评估...
  2. python上海培训哪里比较好-上海哪个python培训机构好
  3. 自动化测试8大元素定位之xpath语法
  4. python深度优先算法 八皇后_八皇后问题——DFS(深度优先搜索)
  5. Python第三方库的安装,升级以及版本查看
  6. shell脚本while read line的使用
  7. Qt中绑定信号槽之后,信号槽无效
  8. v-html可能导致的问题
  9. sysbench mysql 测试_sysbench MySQL测试例子
  10. NLP情感分析笔记(四):卷积情感分析
  11. hdu1558计算几何加并查集
  12. 区块链:Casper 机制的历史起源-第五篇
  13. 网易云创建添加推荐歌谱和删除操作
  14. 机器学习处理信号分离_机器学习和深度学习现如今能应用在雷达信号处理,或者信号处理的哪些方面?...
  15. php speex,将微信jssdk录制的speex高清音频转换为wav/mp3
  16. 小米笔记本bios版本大全_分享BIOS设置IDE兼容模式的方法大全,轻松解决重装系统蓝屏!...
  17. scroll-view
  18. 疯狂java  进行回顾
  19. 病毒木马入侵招数大曝光
  20. java二面_快手Java面试题分享,一二面(面经面试题附部分答案)

热门文章

  1. 数据分析实战项目--链家租房数据可视化分析
  2. tbody css 高度,html – CSS:无法为%滚动设置tbody height
  3. SuperView和View的区别
  4. 深度学习笔记-吴恩达
  5. 未来十年公务员、事业单位职员以及国企人员的前景?
  6. 大学英语综合教程二 Unit 1 到Unit 8 课文内容英译中 中英翻译
  7. java包装类string_Java学习之String类与包装类
  8. matlab 超分辨率,matlab超分辨率
  9. codeforces 1293 A. ConneR and the A.R.C. Markland-N(思维)
  10. 前端性能优化-图片优化