
Ollama 双 RTX4090 运行 DeepSeek-R1:32B 速度极慢问题排查与解决问题现象服务器配置CPUAMD/Intel 多核处理器GPURTX 4090 × 224GB × 2系统LinuxOllama0.3.x 及以上版本模型deepseek-r1:32b运行模型后发现ollama run deepseek-r1:32b模型能够正常加载但推理速度非常慢。表现为每秒只能输出 1~2 个汉字GPU 显存占用接近满载双卡均被使用7B 模型运行正常且速度很快查看状态ollamaps输出类似NAME SIZE PROCESSOR deepseek-r1:32b 55 GB 16%/84% CPU/GPU说明16% 层在 CPU 84% 层在 GPU模型并没有完全加载到 GPU。初步排查查看 GPU 使用情况nvidia-smi发现GPU0 ≈ 22.5GB GPU1 ≈ 22.8GB双卡均已被使用。因此可以排除GPU 未识别双卡未启用CUDA 安装异常查看模型信息ollama show deepseek-r1:32b输出architecture qwen2 parameters 32.8B context length 131072 quantization Q4_K_M此时注意到context length 131072即默认上下文长度为131K关键排查查看 Ollama 日志journalctl-uollama-n300--no-pager|grep-Eimemory|offload|layer|cuda发现关键内容load_tensors: offloaded 55/65 layers to GPU llama_kv_cache: CUDA0 KV buffer size 13824.00 MiB CUDA1 KV buffer size 13824.00 MiB llama_kv_cache: size 32768.00 MiB (131072 cells)重点KV Cache 占用了 32768 MiB也就是32GB 显存全部被上下文缓存吃掉了。原因分析DeepSeek-R1:32B 默认Context Length 131072Ollama 在模型加载时直接按照131072 tokens分配 KV Cache。计算结果KV Cache ≈ 32GB双 RTX4090 总显存24GB × 2 48GB其中32GB已经被 KV Cache 占用。剩余显存48GB - 32GB 16GB不足以放下全部模型层。因此 Ollama 被迫55 层放 GPU 10 层放 CPU最终表现为16% CPU / 84% GPU推理速度急剧下降。错误尝试很多人会尝试/set parameter num_ctx8192但是没有效果。原因是模型已经加载完成。KV Cache 已经按照131072创建完成。此时修改参数不会重新分配显存。正确解决方案修改 Ollama 服务配置。编辑sudosystemctl edit ollama或修改已有 Override 配置[Service] EnvironmentOLLAMA_ORIGINShttps://你的IP:8989 EnvironmentOLLAMA_HOST0.0.0.0 EnvironmentOLLAMA_MODELS/usr/share/ollama/.ollama/models EnvironmentOLLAMA_SCHED_SPREAD1 EnvironmentOLLAMA_GPU_OVERHEAD0 # 关键配置 EnvironmentOLLAMA_CONTEXT_LENGTH8192保存后执行sudosystemctl daemon-reloadsudosystemctl restart ollama验证是否生效查看环境变量systemctl show ollama|grepCONTEXT应看到OLLAMA_CONTEXT_LENGTH8192重新运行模型ollama run deepseek-r1:32b然后查看日志journalctl-uollama-n100--no-pager|grepKV buffer如果成功KV Cache 会显著降低。最终效果修改前Context Length 131072 KV Cache ≈ 32GB CPU/GPU 16% / 84% 推理速度 每秒约 1~2 个汉字修改后Context Length 8192 KV Cache 大幅降低 模型可全部加载到 GPU 推理速度显著提升总结当双 RTX4090 运行 DeepSeek-R1:32B 出现以下情况显存占满 双卡均正常识别 7B 模型速度正常 32B 模型极慢 ollama ps 显示 16% CPU / 84% GPU不要急着怀疑CUDA驱动双卡配置Ollama 多卡支持首先检查ollama show deepseek-r1:32b是否存在context length 131072然后通过EnvironmentOLLAMA_CONTEXT_LENGTH8192限制默认上下文长度。对于双 RTX4090 用户这是最有效、最直接的解决方案。