linux 使cpu使用率升高_Linux系统中CPU占用率较高问题排查思路与解决方法
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占用率较高问题排查思路与解决方法相关推荐
- cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法
前言 作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失. 很多运维的同学 ...
- linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路
本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS ...
- Linux 系统 CPU 占用率较高问题排查思路
CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 https://blog.csdn.net/lufeisan/article/details/531 ...
- EasyCVR播放时cpu占用率较高的原因分析及解决方法
TSINGSEE青犀视频开发的视频平台都具备Windows和Linux的运行版本,可以根据需求自由选择.当遇到项目现场有流量较大的情况,大多数用户都比较担心对CPU的占用,这种情况可以通过开启按需播放 ...
- 【性能定位】cpu占用率过高问题排查
问题:公司一个系统在测试单个功能登录上,并发才5个用户时,CPU使用率就瞬间飙升到100% 排查过程: 1.首先查看系统资源占用信息,使用top命令,查看那个进程占用CPU高 发现正在运行的JAVA项 ...
- linux 使cpu使用率升高_Linux程序性能优化:CPU的上下文切换
linux操作系统是将CPU轮流分配给任务,分时执行的.而每次执行任务时,CPU需要知道CPU寄存器(CPU内置的内存)和程序计数器PC(CPU正在执行指令和下一条指令的位置)值,这些值是CPU执 ...
- linux 使cpu使用率升高_linux命令总结(二)
每天不断完善和更新自己的认知是件让人很愉悦的事情!!! MOMO:linux命令总结(一)zhuanlan.zhihu.com MOMO:linux命令总结(二)zhuanlan.zhihu.co ...
- linux 使cpu使用率升高_Linux CPU使用率超过100%的原因
今天在服务器上部署流媒体做推流的时候使用top命令发现CPU占用率竟高达270% 在top模式下按1可看见CPU的数量是4 百度了一番发现原来top命令是按CPU总使用率来显示的,4核理论上最高可达4 ...
- Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的解决方法
报错说明 /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source code 而有不同的结果出来如: /usr/bin/ld: cannot find - ...
最新文章
- SQL Server中的分页查询
- java的高级特性_java的高级特性_for
- c++连连看游戏_用Python玩连连看是什么效果?
- docker实战百度云
- oracle 容器切换,oracle12c 多租户管理四(容器连接切换)
- Python next 函数 - Python零基础入门教程
- 设计原则 里氏替换原则
- ffplay拿不到rtp流_苇名城都亡了,还跟我讲科学?- 苇名无心流秘籍解析
- thinkphp实现文章访问量计数器
- Linux上安装GCC编译器过程实录
- 数据连接池的工作原理
- 汉字风格迁移篇---用于汉字多字体生成的多样性正则化StarGAN
- Python实现阶跃函数、sigmoid函数、ReLU函数
- Base64在线转换工具
- 如何让使用小博通蓝牙BK3432的鲁哇客智能挪车号码牌,一节钮扣电池工作一年
- echarts南丁格尔玫瑰图每块单独设置颜色
- 德国奇葩经历之护照丢失
- System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 1628
- druid连接池监控
- 像李云迪那样爱 IT界那些“情”
热门文章
- win10 php mysql_win10 下 apache php mysql 开发环境安装
- Matlab问题汇总!
- python读取图片属性信息
- python给列表中的字典按照字典中的某个键值进行排序
- 11.15日工作总结(补)
- let 和 var 区别
- 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...
- 2.1 帮助命令、用户管理、压缩
- [Eclipse] - Eclipse空格替换tab
- http2-stream-optima-prioritation