解决vscode remote-ssh连接小内存服务器卡死的问题

356#m7y4rvd80ttutzxrjk3g

解决vscode remote-ssh连接2GB,4GB等小内存服务器卡死的问题。用了到内存交换文件 Swap File

问题描述

使用vscode远程开发功能,小水管(小内存)服务器总是抗不住,4GB的内存开两个项目,都不用运行就占满内存,死机了。

Swap File

利用系统的虚拟内存技术,在无法扩展物理内存的情况下,提供超出物理内存的可用内存。

Swap实际上有Swap PartitionSwap File,对应交换分区交换文件,这里我们通过Swap File快速完成我们想要的。

  • 创建Swap文件

    shell 复制代码
    sudo fallocate -l 4G /swapfile

    注意,4G是后面我们可用的虚拟内存大小,按实际调整,下面是GPT给的建议:

    物理内存(RAM) 推荐Swap大小
    < 2GB RAM的 2 倍
    2GB - 8GB RAM 大小
    8GB - 32GB 4GB - 8GB
    > 32GB 4GB 或更少(可选)
  • 授权

    shell 复制代码
    sudo chmod 600 /swapfile
  • 格式化

    shell 复制代码
    sudo mkswap /swapfile
  • 启用

    shell 复制代码
    sudo swapon /swapfile

    要永久生效的话,像下面这样做:

    shell 复制代码
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • 关闭

    shell 复制代码
    sudo swapoff -a

通过free -h指令就可以查看到物理内存和虚拟内存的情况了(一直观察命令watch free -h,默认每2秒刷新一次, 添加-n 1修改为每间隔1秒),swappiness的值决定了使用Swap的时机,可选值在 0 - 100 之间,默认值是 30,越高代表越优先使用虚拟内存。

  • 查看swappiness设定(当前已用的,而非永久生效的值)

    shell 复制代码
    cat /proc/sys/vm/swappiness
  • 临时修改

    shell 复制代码
    echo 40 | sudo tee /proc/sys/vm/swappiness
  • 永久生效(重启后)

    shell 复制代码
    echo "vm.swappiness=40" | sudo tee -a /etc/sysctl.conf

提示

本文内容仅在centos中测试!

参与本文讨论

请先登录 GitHub 后留言

0/500

本文留言

0

这篇文章还没有留言,来写第一条吧。

1 / 1