解决vscode remote-ssh连接小内存服务器卡死的问题
问题描述
使用vscode远程开发功能,小水管(小内存)服务器总是抗不住,4GB的内存开两个项目,都不用运行就占满内存,死机了。
Swap File
利用系统的虚拟内存技术,在无法扩展物理内存的情况下,提供超出物理内存的可用内存。
Swap实际上有Swap Partition和Swap File,对应交换分区和交换文件,这里我们通过Swap File快速完成我们想要的。
-
创建Swap文件
shellsudo fallocate -l 4G /swapfile
注意,4G是后面我们可用的虚拟内存大小,按实际调整,下面是GPT给的建议:
物理内存(RAM) 推荐Swap大小 < 2GB RAM的 2 倍 2GB - 8GB RAM 大小 8GB - 32GB 4GB - 8GB > 32GB 4GB 或更少(可选) -
授权
shellsudo chmod 600 /swapfile
-
格式化
shellsudo mkswap /swapfile
-
启用
shellsudo swapon /swapfile
要永久生效的话,像下面这样做:
shellecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
-
关闭
shellsudo swapoff -a
通过free -h
指令就可以查看到物理内存和虚拟内存的情况了(一直观察命令watch free -h
,默认每2秒刷新一次, 添加-n 1
修改为每间隔1秒),swappiness的值决定了使用Swap的时机,可选值在 0 - 100 之间,默认值是 30,越高代表越优先使用虚拟内存。
-
查看swappiness设定(当前已用的,而非永久生效的值)
shellcat /proc/sys/vm/swappiness
-
临时修改
shellecho 40 | sudo tee /proc/sys/vm/swappiness
-
永久生效(重启后)
shellecho "vm.swappiness=40" | sudo tee -a /etc/sysctl.conf
提示
本文内容仅在centos中测试!