Linux服务器运行卡顿,使用top命令查看,kswapd0进程占用了较多的cpu,造成整个服务器负载增加,服务器运行缓慢或者拒绝服务。
文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
kswapd0是虚拟内存管理中负责换页的进程,当服务器物理内存不足时,kswapd0会执行换页操作,换页操作会消耗大量的CPU资源。出现该问题可能是系统此时在持续进行换页操作,导致占用大量CPU资源。文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
我们可以通过修改vm.swappiness内核参数来控制交换空间的大小,来解决kswapd0进程占用CPU较高的问题。文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
通过putty等运维工具远程连接Linux实例,查看swappiness参数。文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
cat /proc/sys/vm/swappiness
系统显示类似如下,表示当物理内存低于60%(100-40)时使用swap空间。(swappiness参数越低,表示Linux系统尽量少用swap分区,多用物理内存;swappiness参数值越高,表示使内核更多地去使用swap空间。)文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
为减少kswapd0进行换页操作,我们可以将swappiness参数修改为一个较小的值,修改方式如下:文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
1、打开内核参数配置文件sysctl.conf。文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
vi /etc/sysctl.conf
根据业务需要,修改swappiness参数值,例如修改为10,当物理内存低于10%时使用swap空间。文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
如在sysctl.conf文件中,增加或者修改:文章源自堕落的鱼-https://www.duoluodeyu.com/2836.html
vm.swappiness = 10
按Esc键,输入:wq保存修改。
重新加载sysctl配置文件,使配置生效。
sysctl -p










