kswapd0内存过高排查经历

 操作系统都用分页机制来管理物理内存,操作系统将磁盘的一部分划出来作为虚拟内存,由于内存的速度要比磁盘快得多,所以操作系统要按照某种换页机制将不需要的页面换到磁盘中,将需要的页面调到内存中,由于内存持续不足,这个换页动作持续进行,kswapd0是虚拟内存管理中负责换页的,当服务器内存不足的时候kswapd0会执行换页操作,这个换页操作是十分消耗主机CPU资源的。

通过top发现该进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。

问题描述:kswapd0 进程占用了系统大量 CPU 资源。

处理办法:Linux 系统通过分页机制管理内存的同时,将磁盘的一部分划出来作为虚拟内存。而 kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。
当系统内存不足时,kswapd0 会频繁的进行换页操作。
而由于换页操作非常消耗 CPU 资源,所以会导致该进程持续占用较高 CPU 资源。
通常是由于系统在持续的进行换页操作所致。则可以通过 free 、ps 等指令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。

 

  或者您可通过调整vm.swappiness   这个内核参数控制交换空间的大小。
/proc/sys/vm/swappiness
该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核最大化将数据移出物理内存移到swap缓存中。
您可尝试修改该参数进行核实下。

设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区。

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

#可以看到内存非常高

[root@VM_0_2_centos ~]# top
top - 21:01:16 up 20 days, 11:09,  1 user,  load average: 2.29, 2.55, 2.69
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie
%Cpu(s): 63.1 us,  1.1 sy,  0.0 ni, 35.2 id,  0.1 wa,  0.0 hi,  0.6 si,  0.0 st
KiB Mem :  8009440 total,   149276 free,  4821064 used,  3039100 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2816192 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                           
13415 root      20   0 2432940 263452    752 S 199.7  3.3   8504:44 kswapd0                                           
 4953 root      20   0 6328844  26612   1720 S  50.0  0.3  70:08.88 tsm     

查看参数值:

cat /proc/sys/vm/swappiness

临时调整

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

 永久调整

vim /etc/sysctl.conf 
#最后一行加上
vm.swappiness=0
#然后加载参数
sysctl -p

 

最后:

[root@VM_0_2_centos ~]# kill -9 13415
[root@VM_0_2_centos ~]# 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风水道人

写作不易且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值