Rancher Desktop(WSL)中SQL Server容器关联VS Code时vmmem占满崩溃求助
可能的原因及排查方向
WSL未配置资源上限
默认WSL不对CPU和内存做限制,SQL Server本身资源消耗大,加上VS Code连接容器时的文件同步、日志读取等操作,会让vmmem直接拉满资源,导致容器崩溃。可以修改%USERPROFILE%\.wslconfig文件设置配额:[wsl2] memory=4GB processors=2改完执行
wsl --shutdown重启WSL生效。Rancher Desktop资源分配不足
Rancher Desktop默认的资源配额可能撑不住SQL Server+VS Code连接的负载。去Rancher Desktop的设置里调高CPU、内存分配,至少给4GB内存和2核CPU,留足余量。VS Code容器扩展的额外消耗
Remote - Containers这类扩展在连接容器时,会自动同步文件、加载容器环境,甚至启动辅助进程,这些操作叠加SQL Server的资源占用,直接把vmmem打满。试试禁用扩展的自动同步功能,或者只在需要时连接,不要一直保持连接状态。SQL Server容器未做资源限制
启动容器时没加--memory、--cpus这类参数的话,SQL Server会无限制占用WSL资源。启动时加上资源限制:docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPassw0rd" --memory 3GB --cpus 2 -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2022-latestWSL内核或系统兼容问题
哪怕升级了Rancher Desktop,WSL内核本身可能有资源管理的bug。试试执行wsl --update更新内核,或者临时切换到WSL1(注意WSL1对容器支持有限,需要在Rancher Desktop里调整运行时)测试是否还会崩溃。
内容的提问来源于stack exchange,提问作者Arbind Chandra
相关产品推荐
相关产品推荐

