虚拟机CPU占用100%问题记录

这篇具有很好参考价值的文章主要介绍了虚拟机CPU占用100%问题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景

kswapd0占用CPU过高,严重影响服务器及虚拟机的使用。
虚拟机CPU占用100%问题记录

原因分析

kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。

系统物理内存不足时,kswapd0 会频繁的进行换页操作(使用swap分区与内存换页操作交换数据),而换页操作非常消耗 CPU 资源,所以导致该进程持续占用 CPU 资源过高。

在linux的内存分配机制中,优先使用物理内存,当物理内存有空闲时,不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

解决方案

可以通过调整 vm.swappiness 内核参数来控制交换空间的大小。

大多数发行版本的默认值为60

设置vm.swappiness=0 ,告诉内核尽量少用到swap分区,但不代表禁用swap分区;
设置vm.swappiness=100的话,则表示尽量使用swap分区。

分配过多Swap空间会浪费磁盘空间,而太少,又会使系统发生错误。若系统物理内存用光,系统会运行得很慢,但仍能运行;若Swap空间用光了,那么系统就会发生错误(如:服务进程无法启动或服务进程的死锁等)。

临时调整swappiness的方法

查看命令

cat /proc/sys/vm/swappiness

临时调整swappiness

sysctl vm.swappiness=0
cat /proc/sys/vm/swappiness

杀死 kswapd0进程

ps -ef|grep kswapd0
kill -9 pid

永久调整的方法

编辑配置文件

vi /etc/sysctl.conf
#最后一行加上
vm.swappiness=0

重新载入配置文件

sysctl -p

建议

访问交换内存比直接访问物理内存要慢得多,swappiness参数的较低值很可能会提高整体系统性能,对于常规桌面安装,建议值为10,对于大多数数据库服务器,建议使用swappiness值为0或1。文章来源地址https://www.toymoban.com/news/detail-444765.html

到了这里,关于虚拟机CPU占用100%问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php7.4生产环境压力测试CPU占用100%解决方案

        最近开发了一个项目,客户要求压力测试,测试时发现并发量大时php-fpm占用cpu一直100%,调整了php的最大进程数pm.max_children,优化了程序效果不明显。后面使用了opcache,cpu使用率一下降到20%左右。 什么是opcache?下面是百度: Opcache 的前生是  Optimizer+  ,它是PHP的官方公司

    2024年02月10日
    浏览(53)
  • 【Linux】Linux突然发现CPU占用100%该怎么办?如何排查进程(带你一文解决)

    目录 Linux的CPU发现占用率100%,一般会由什么情况引起? 1、进程负载过高: 2、错误配置的服务或应用程序: 3、恶意软件或病毒: 4、不良硬件或驱动程序: 5、系统内核问题: 6、CPU过热: 对于排查CPU占用率过高的原因,可以采取以下步骤和工具: 一、top/htop方法 1、使用

    2024年02月08日
    浏览(45)
  • Docker 修改默认存储路径,解决系统盘占用100%问题

    一、查看存储路径是否在系统盘 输出结果: 二、迁移并修改配置  

    2024年02月15日
    浏览(44)
  • 记录恶意SQL注入引发的RDS只读数据库CPU飚100%

    前言 : 在广州这座城市下着小雨的晚上,我正在厨房洗着碗,突然手机有来电,脱下手套,一看是来自阿里云的告警电话。打开飞书查看告警内容,发现某个业务的RDS只读实例CPU飚到100%,下意识觉得是不是有慢查询导致,想着不会有啥问题,上去kill慢查就好了,结果发现是

    2024年03月19日
    浏览(47)
  • 【面试】线上 CPU 100% 问题排查

    回答套路一般为:线上服务器没有排查过,线上服务器只有运维才有操作权限。在平时开发的时候,在测试服务器上排查过。 2.1、将代码打包成 jar 包 参考: 点我 2.2、传到服务并运行 运行好的效果如下 3.1、拿到进程 id 通过 top 命令,就可以看到让 cpu 100% 的进程 id,pid 就是

    2024年02月11日
    浏览(49)
  • 常见内存溢出与CPU 100%问题

    SQL in 过多 https://mp.weixin.qq.com/s/g5Y47cQ25KbVjzHhZcjN7g 面对 OOM 问题如果代码不是有明显的问题,下面几个JVM参数相当有用,尤其是在容器化之后。 另外提一个参数也很有用,正常来说如果程序出现 OOM 之后,就是有代码存在内存泄漏的风险,这个时候即使能对外提供服务,其实也

    2024年02月01日
    浏览(37)
  • Linux显示磁盘空间不足,/tmp文件夹占用100%问题分析和解决方案

            系统运行过程中发现无法上传文件,第一反应是磁盘空间不足导致,登录服务器后查看文件存放的空间充足,但是无法上传文件且命令行的tab键自动补充也提示空间不足。最后经过搜索和分析发现是/tmp 文件夹占用100%导致。以下记录分析和解决流程。         服

    2024年02月05日
    浏览(69)
  • 服务器bash进程占用cpu过多疑似中挖矿病毒记录

    因为我有使用conky的习惯,也就是在桌面上会显示cpu和内存的占用情况,由于服务器不止我一个人使用,最近发现好几次我同学的账户下的bash进程占用特别多,问了他之后,他也说他几次都是没有使用过bash相关服务,之前一直以为可能是某个软件bug之类的,这次想着好好查一

    2024年01月18日
    浏览(44)
  • Java 开发,当cpu占用率100%,window和Linux分别如何定位问题

    导言 Java服务,有时候会遇到CPU 100%的问题,对于这样的问题,我们如何快速定位并解决呢?一般会有如下三个步骤: 找到最耗CPU的进程 找到这个进程中最耗CPU的线程 使用jdk自带工具jstack 查看堆栈信息,定位线程的什么操作消耗了大量CPU,定位对应代码 Java程序CPU占用过高

    2024年02月04日
    浏览(35)
  • Java应用CPU占用过高问题排查

    测试环境CPU突然升高,日志查询无异常,可以通过使用jvm的调试工具定位问题。 1.定位java服务进程 2.定位java线程 3.定位代码块 1.定位进程 获取cpu占用高的进程pid 2.定位线程 转16进制 3.定位代码 目的:将当前堆栈信息保存为文件,通过16进制的TID查找问题所在的代码块;

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包