问题
由于我是一个2g内存的轻量服务器,经常才刚刚连上服务器,导致内存占用过高,经常时服务器崩溃
减少不必要的插件
删除类似
1
2
3
4
5
6
7
8
9
| Python
Pylance
ESLint
Docker
GitLens
Jupyter
Copilot
C++
Java
|
这些不必要的插件
只留下如:git, ssh, 等基础插件,占用内存较小
查看当前运行的所有插件
1
2
| ctrl + shift + p
向里输入Remote: Show Running Extensions
|


设置vscode插件
在本地 VSCode:
打开:
加入:
1
2
3
4
5
| "remote.extensionKind": {
"ms-python.python": ["ui"],
"ms-toolsai.jupyter": ["ui"],
"ms-vscode.cpptools": ["ui"]
}
|
优化前
1
2
3
4
| deploy@iZuf6j10uvy5ilxu10oisgZ:~/blog-source$ free -h
total used free shared buff/cache available
Mem: 1.6Gi 1.0Gi 134Mi 2.6Mi 622Mi 604Mi
Swap: 0B 0B 0B
|
优化后
1
2
3
4
| deploy@iZuf6j10uvy5ilxu10oisgZ:~/blog-source$ free -h
total used free shared buff/cache available
Mem: 1.6Gi 572Mi 708Mi 2.8Mi 485Mi 1.0Gi
Swap: 0B 0B 0B
|
可以说是显著优化了
更保险的加入swap
由于我服务器内存太小了,防止爆掉,加入2g的swap内存,类似Windows的虚拟内存,把硬盘暂时当内存使用
只需要两步
1
2
3
4
| sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
|
使swap永久生效:
1
| echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
1
2
3
4
| deploy@iZuf6j10uvy5ilxu10oisgZ:~/blog-source$ free -h
total used free shared buff/cache available
Mem: 1.6Gi 591Mi 685Mi 2.8Mi 490Mi 1.0Gi
Swap: 2.0Gi 0B 2.0Gi
|
还可以再做一个优化
调整 swap 使用策略:
查看:
1
| cat /proc/sys/vm/swappiness
|
我这边是10,阿里云比较保守
1
2
| 0 → 几乎不用 swap
100 → 很积极用 swap
|
1
2
| 除非 RAM 完全用完
否则不用 swap
|
结果就是:内存接近满:不会提前交换然后突然OOM killer,触发直接杀进程。对远程开发来说:这是不好的。
ChatGPT给我建议修改为10
1
2
| sudo sysctl vm.swappiness=10
cat /proc/sys/vm/swappiness
|
永久化
1
| echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
|
应用