美文网首页
线上一台centos服务器 CPU飙升至90以上。

线上一台centos服务器 CPU飙升至90以上。

作者: 许俊贤 | 来源:发表于2018-12-05 23:29 被阅读0次

    Swap引起的CPU飙升至90+。

    现象:应用响应速度很慢,以及最直接的影响服务器无法通过SSH连接、SSH连接时响应速度很慢

    排查

    通过top查看进程信息

    image.png image.png

    通过监控进程信息,大概能分析出:

    因java应用程序占用CPU以及内存耗费较高,触发kswadp0进程(管理linux管理内存的进程)因该进程优先级较高,且占用极高得CPU资源,WEB程序故无法得到响应,同时无法通过CRT远程连接上服务器,通过阿里云网页版的远程连接,可连接上,但卡顿无法执行其他操作。

    kswapd0是什么?

    kswapd0进程的作用:它是虚拟内存管理中,负责换页的,操作系统每过一定时间就会唤醒kswapd ,看看内存是否紧张,如果不紧张,则睡眠,在 kswapd 中,有2 个阀值,pages_hige 和 pages_low,当空闲内存页的数量低于 pages_low的时候,kswapd进程就会扫描内存并且每次释放出32 个free pages,直到 free page 的数量到达pages_high。

    physical mem 不足,引起 swap 频繁读写。
    kswapd0 是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒 kswapd0 进程,由 kswapd0 分配磁盘交换空间作缓存,因而占用大量的 CPU 资源。
    查看内存及swap使用率:发现还有空余的内存,但是已经开始用swap了。

    处置方式

    调整内存参数,当内存使用率不足10%(开始是默认值60)时在使用swap,尽量避免使用swap,减少唤醒软中断进程,从而降低ksoftirqd进程对cpu的占用。

    先查看:

    sysctl vm.swappiness
    

    默认应该查看到 vm.swappiness = 0 ;

    设置虚拟内存不足10%时才调用

    sysctl vm.swappiness = 10
    

    备注:个人博客同步至简书。

    相关文章

      网友评论

          本文标题:线上一台centos服务器 CPU飙升至90以上。

          本文链接:https://www.haomeiwen.com/subject/lvigcqtx.html