Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行;

CPU利用率。根据经验来看,用户空间进程占用CPU比例在 65-70%之间,内核(系统)CPU比例在30%-35%之间,空闲比例在0%-5%之间。一般不能超过这个比例,超过这个比例,系统性能就会降低,平均负载升高,这点将会在下面的测试中看到。

进程上下文切换。上下文切换和CPU利用率应该联系起来,如果CPU利用率低,那么上下文切换稍高点也能接受。上下文切换也是需要消耗CPU资源的,频繁的切换必将使得CPU利用率升高。

运行队列中等待运行的进程数。每个CPU核心中等待处理的进程数不应该超过3个线程/进程。如4核心的机器,那么队列的最大值应该不超过12个。

对于CPU过载问题通常使用以下两种方式即可快速定位(不能涵盖所有特殊情况,请作为其中的参考排查思路):

一、排查分析

方法一(针对JAVA应用):

第一步:使用

top命令,然后按shift+p按照CPU排序

找到占用CPU过高的进程的pid

第二步:使用

top -H -p [进程id]

找到进程中消耗资源最高的线程的id

第三步:使用

echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]

将线程id转换为16进制(字母要小写)

bc是linux的计算器命令

第四步(此步骤可以和相对应的java开发进行一起排查):执行

jstack [进程id] |grep -A 10 [线程id的16进制]”

查看线程状态信息

二、kswapd0 进程占用 CPU 较高

操作系统都用分页机制来管理物理内存,操作系统将磁盘的一部分划出来作为虚拟内存,由于内存的速度要比磁盘快得多,所以操作系统要按照某种换页机制将不需要的页面换到磁盘中,将需要的页面调到内存中,由于内存持续不足,这个换页动作持续进行,kswapd0 是虚拟内存管理中负责换页的,当服务器内存不足的时候 kswapd0 会执行换页操作,这个换页操作是十分消耗主机 CPU 资源的。如果通过 top 发现该进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。

问题描述:

kswapd0 进程占用了系统大量 CPU 资源。

处理办法:

Linux 系统通过分页机制管理内存的同时,将磁盘的一部分划出来作为虚拟内存。而 kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。当系统内存不足时,kswapd0 会频繁的进行换页操作。而由于换页操作非常消耗 CPU 资源,所以会导致该进程持续占用较高 CPU 资源。

如果通过 top 等监控发现 kswapd0 进程持续处于非睡眠状态,且运行时间较长并持续占用较高 CPU 资源,则通常是由于系统在持续的进行换页操作所致。则可以通过 free 、ps 等指令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。

三、案例分析

linux 使cpu使用率升高_Linux系统中CPU占用率较高问题排查思路与解决方法相关推荐

  1. cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法

    前言 作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失. 很多运维的同学 ...

  2. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  3. Linux 系统 CPU 占用率较高问题排查思路

    CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 https://blog.csdn.net/lufeisan/article/details/531 ...

  4. EasyCVR播放时cpu占用率较高的原因分析及解决方法

    TSINGSEE青犀视频开发的视频平台都具备Windows和Linux的运行版本,可以根据需求自由选择.当遇到项目现场有流量较大的情况,大多数用户都比较担心对CPU的占用,这种情况可以通过开启按需播放 ...

  5. 【性能定位】cpu占用率过高问题排查

    问题:公司一个系统在测试单个功能登录上,并发才5个用户时,CPU使用率就瞬间飙升到100% 排查过程: 1.首先查看系统资源占用信息,使用top命令,查看那个进程占用CPU高 发现正在运行的JAVA项 ...

  6. linux 使cpu使用率升高_Linux程序性能优化:CPU的上下文切换

      linux操作系统是将CPU轮流分配给任务,分时执行的.而每次执行任务时,CPU需要知道CPU寄存器(CPU内置的内存)和程序计数器PC(CPU正在执行指令和下一条指令的位置)值,这些值是CPU执 ...

  7. linux 使cpu使用率升高_linux命令总结(二)

    每天不断完善和更新自己的认知是件让人很愉悦的事情!!! MOMO:linux命令总结(一)​zhuanlan.zhihu.com MOMO:linux命令总结(二)​zhuanlan.zhihu.co ...

  8. linux 使cpu使用率升高_Linux CPU使用率超过100%的原因

    今天在服务器上部署流媒体做推流的时候使用top命令发现CPU占用率竟高达270% 在top模式下按1可看见CPU的数量是4 百度了一番发现原来top命令是按CPU总使用率来显示的,4核理论上最高可达4 ...

  9. Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的解决方法

    报错说明 /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source code 而有不同的结果出来如: /usr/bin/ld: cannot find - ...

最新文章

  1. SQL Server中的分页查询
  2. java的高级特性_java的高级特性_for
  3. c++连连看游戏_用Python玩连连看是什么效果?
  4. docker实战百度云
  5. oracle 容器切换,oracle12c 多租户管理四(容器连接切换)
  6. Python next 函数 - Python零基础入门教程
  7. 设计原则 里氏替换原则
  8. ffplay拿不到rtp流_苇名城都亡了,还跟我讲科学?- 苇名无心流秘籍解析
  9. thinkphp实现文章访问量计数器
  10. Linux上安装GCC编译器过程实录
  11. 数据连接池的工作原理
  12. 汉字风格迁移篇---用于汉字多字体生成的多样性正则化StarGAN
  13. Python实现阶跃函数、sigmoid函数、ReLU函数
  14. Base64在线转换工具
  15. 如何让使用小博通蓝牙BK3432的鲁哇客智能挪车号码牌,一节钮扣电池工作一年
  16. echarts南丁格尔玫瑰图每块单独设置颜色
  17. 德国奇葩经历之护照丢失
  18. System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 1628
  19. druid连接池监控
  20. 像李云迪那样爱 IT界那些“情”

热门文章

  1. win10 php mysql_win10 下 apache php mysql 开发环境安装
  2. Matlab问题汇总!
  3. python读取图片属性信息
  4. python给列表中的字典按照字典中的某个键值进行排序
  5. 11.15日工作总结(补)
  6. let 和 var 区别
  7. 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...
  8. 2.1 帮助命令、用户管理、压缩
  9. [Eclipse] - Eclipse空格替换tab
  10. http2-stream-optima-prioritation