出现错误:Linux 卡顿,kswapd0 进程 CPU 占用过高

事因

购买(快云科技)VPS(香港服务器)进行翻墙

上面,当初为了翻墙使用而已,买了 1G内存,1核的CPU。
现在在上面跑了一个简单 SpringBoot 服务,再跑一个 Jenkins 就内存不够用了。

分析过程

1
2
3
4
5
6
7
8
9
10
11
12
13
# top 命令查看 cpu,查看到 kswapd0 进程 CPU 占用过高
top

# 查看内存情况,本地已经近乎于占满
free -h


# 拓展 1、查看磁盘用量
df -h

# 拓展 2、查看文件夹占用空间(查看当前目录,查看指定目录)
du -sh
du -sh /root

解决方案

1、(推荐)选择服务器升级,改为 2G 内存即可。
2、还有一种说法是,“kswapd0 进程 CPU 占用过高” 是因为 swap 分区导致,把 swap 禁用就好了。

1
2
3
4
5
# 临时关闭
swapoff -a

# 永久关闭(注释掉 swap 那一行)
vi /etc/fstab