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

2018-12-05  本文已影响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

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

上一篇下一篇

猜你喜欢

热点阅读