猛牛哥
记录网络点滴生活

kswapd0 cpu负载过高的解决方法

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

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

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

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

[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内存吧。

赞(1) 打赏
猛牛哥原创:猛牛哥的博客 » kswapd0 cpu负载过高的解决方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏