一客户环境,docker kubelet定时重启原因排查;
descrieb node 发现hugepages-2Mi开启;
存在一进程:kswapd0 占用大量CPU,kswapd0 占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。
sysctl -a | grep swappiness 可以通过修改 /etc/sys/vm/swappiness 里面的数值来修改swap分区使用与否,默认 60,数值越大表示更多的使用swap分区。这个交换参数控制内核从物理内存移出进程,移到交换空间。该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区
cat /proc/meminfo 确认正在使用的Hugepagesize是哪个类型;如果Hugepagesize 2048kB;
然后将另一个/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages置为0 ;
重启kubelet即可