Windows 11 装了 WSL2 Ubuntu,Ollama 装在 WSL 里,nvidia-smi 能看到显卡,但 ollama ps 显示 100% CPU,7B 模型每秒只有 3 个 token,风扇都不怎么转。
一开始怀疑是「WSL 缺少容器相关的 NVIDIA 库」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。WSL 里的 CUDA 来自 Windows 侧驱动 版本不匹配。少数情况下是装成了纯 CPU 版本。
少数情况下是显存被 Windows 侧另一个 Ollama 服务占着。
上来先在 WSL 里确认 CUDA 是否可用
nvidia-smi; python -c "import torch;print(torch.cuda.is_available())"
然后看服务日志里的 GPU 探测结果
journalctl -u ollama -n 100 --no-pager | Select-String -Pattern 'gpu|cuda'
再往下用官方脚本重装并重启服务
curl -fsSL https://ollama.com/install.sh | sh; systemctl restart ollama
等前面都确认过,再停掉 Windows 侧服务避免抢显存
Get-Process ollama* | Stop-Process -Force
同事提醒我看一下最近一次发布,时间点确实对得上。
命令输出我都留了记录,免得改完记不清原来的值。
改之前先确认了最近有没有人动过配置,避免白查一遍。
恢复的判定其实很直接。ollama ps 里显示走 GPU,7B 模型生成速度回到每秒 30 token 以上。
WSL 的 GPU 能力由 Windows 驱动透传,驱动太旧时 nvidia-smi 能用但 CUDA 初始化失败,先升驱动再重装。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
