关于使用vscode_remote-ssh连接低配内存ecs致卡死的解决策略
2025 06 02
长话短说。新购一台阿里云2v1g30g的香港ecs用以写博客,terminal连接ssh时一切正常。vscode_remote-ssh连接即掉线、nginx服务停止、原本terminal中ssh卡死甚至不能输入exit以退回本地,须得通过阿里云控制台重启/强制重启。轮回数次后发现症结所在:内存太小!
检查
-
检查发现虚拟内存没在用
free -h total used free shared buff/cache available Mem: 890Mi 448Mi 62Mi 3.0Mi 379Mi 291Mi Swap: 1.0Gi 0B 1.0Gi
-
先临时修改
#2.1.swappiness范围:0 ≤ swappiness ≤ 100 #2.2.swappiness越小越倾向用ram,越大越倾向于用swap。我认为该场景中还是要减少换页 #2.3.建议设为10-90再视情况调整 sysctl -w vm.swappiness=10 #2.4.[以下可选] 修改/etc/sysctl.conf内核参数配置文件,增加 vm.swappiness = 10 #如vim /etc/sysctl.conf __ v __ shift+g __ i __ vm.swappiness = 10 __ esc __ :wq回车 #2.5.需执行永久生效 sysctl -p
-
修改后尝试使用vscode连接 command + shift + p,connect-host,选择~.ssh/config中先前添加的host,成功。open folder了/root/blog,成功。
-
使用vscode的terminal再次执行free -h
free -h total used free shared buff/cache available Mem: 890Mi 695Mi 64Mi 1.0Mi 130Mi 61Mi Swap: 1.0Gi 355Mi 669Mi ps aux --sort=-%mem | head -n 5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 7287 5.9 43.1 54924836 393564 ? Sl 13:32 0:12 /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/node --dns-result-order=ipv4first /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/out/bootstrap-fork --type=extensionHost --transformURIs --useHostProxy=false root 7647 0.0 3.7 43600 34292 ? R 13:35 0:00 /www/server/panel/pyenv/bin/python /www/server/panel/script/push_msg.py root 2954 0.1 3.4 1313868 31332 ? Sl 11:57 0:10 /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/node /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/out/server-main.js --connection-token=remotessh --accept-server-license-terms --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-87a5129d-dc80-49b7-bece-c0e1432284b1 root 3000 0.1 3.2 1407888 30060 ? Sl 11:57 0:07 /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/node /root/.vscode-server/cli/servers/Stable-848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server/out/bootstrap-fork --type=ptyHost --logsPath /root/.vscode-server/data/logs/20250603T115744
总结:稳妥起见就只使用sysctl -w vm.swappiness=10,若长期稳定运行则不需其他操作。不过说到底vscode还是挺能吃的。
其他策略
#创建新swap
fallocate -l 1G /swapfile2
#仅root可读写
chmod 600 /swapfile2
#格式化为swap
mkswap /swapfile2
#启用该配置
swapon /swapfile2
#开机挂载
echo '/swapfile2 none swap sw 0 0' >> /etc/fstab
# /swapfile2 创建的文件名
# none 无需挂载路径
# swap 作设备挂载
# sw mkswap&&swapon
# 0 0 dump=0,fsck=0无需备份与检查
发表回复
要发表评论,您必须先登录。