kswapd0 cpu负载过高的解决方法

2023-10-21 11:01:02 浏览数 (2)

我一台1核1G内存的VPS,最近总是出现CPU满载的情况,重启后恢复正常,过几个小时后又会满载,导致在上面运行的一些自动任务执行失败。

使用top命令查看,发现是kswaod0进程占用了大量CPU资源。这个进程是和虚拟内存相关的,在网上查到的资料:

kswapd0占用过高是因为物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。 解决办法: 01、禁止swap 02、扩大内存

但是我这台机器根本没有开启swap,所以我怀疑应该是物理内存不够,系统想调用swap内存而调用不到。我尝试开启swap虚拟内存:

代码语言:javascript复制
[root@do-sp ~]# dd if=/dev/zero of=/home/swap bs=1MB count=1024
1024 0 records in
1024 0 records out
1024000000 bytes (1.0 GB) copied, 4.40974 s, 232 MB/s
[root@do-sp ~]# mkswap /home/swap
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=c1c88cea-1832-4fef-ae18-3eee2d7314dd
[root@do-sp ~]# chmod 600 /home/swap
[root@do-sp ~]# swapon /home/swap

然后运行top,看到负载马上就降低了。

看来kswapd0负载过高,还有一种可能性是因为没有开启swap虚拟内存,而物理内存不够使用。所以小内存的VPS还是尽量开启swap内存吧。

0 人点赞