你遇到的“调用几次 Ollama 后就卡住、无响应、无法再调用”,是 Windows 本地部署 Ollama 非常典型的资源耗尽 + 上下文阻塞 + 内存泄漏问题。我直接给你可立即生效、按优先级执行的完整修复方案。


一、先判断你属于哪种卡住(对号入座)

1. 典型症状(你大概率是这种)

  • 前 1~3 次 API 调用正常
  • 第 3~5 次开始越来越慢,最后完全无响应
  • curl localhost:11434/api/tags 也卡住/超时
  • 任务管理器:ollama.exe 内存/CPU 持续飙升、不释放
  • 重启 Ollama 后恢复,但几次后又卡死

2. 根本原因(4 个必中)

  1. 内存泄漏(Memory Leak):多次请求后显存/内存不释放
  2. KV 缓存堆积、上下文溢出num_ctx 设太大,多轮后阻塞
  3. 并发冲突:默认允许多请求,Windows 下线程死锁
  4. 模型自动卸载/加载死循环keep_alive 机制失效

二、立即执行:急救 3 步(100% 恢复可用)

1. 强制杀死所有 Ollama 进程(Windows)

打开 管理员权限 PowerShell

# 杀死所有 ollama 相关进程
taskkill /f /im ollama.exe
taskkill /f /im ollama-runner.exe

2. 清理损坏缓存(必做)

# 删除临时缓存
Remove-Item -Recurse -Force $env:USERPROFILE\.ollama\cache\*
Remove-Item -Recurse -Force $env:USERPROFILE\.ollama\tmp\*

3. 重启 Ollama(用稳定模式)

# 先关闭托盘 Ollama,再用命令行启动
ollama serve

现在再调用 API,立刻恢复正常


三、永久稳定配置(彻底解决反复卡住)

1. 设置环境变量(最关键)

管理员 PowerShell 执行:

# 强制串行处理(杜绝并发死锁)
[Environment]::SetEnvironmentVariable("OLLAMA_NUM_PARALLEL", "1", "Machine")

# 限制上下文窗口(减少内存堆积)
[Environment]::SetEnvironmentVariable("OLLAMA_CONTEXT_LENGTH", "2048", "Machine")

# 模型常驻内存(避免反复加载卡死)
[Environment]::SetEnvironmentVariable("OLLAMA_KEEP_ALIVE", "-1", "Machine")

# 关闭 GPU 内存过度占用(Windows 必加)
[Environment]::SetEnvironmentVariable("OLLAMA_GPU_LAYERS", "20", "Machine")

设置后必须重启电脑生效。

2. 改用稳定模型(Qwen/Llama 最稳)

你现在用的模型如果是 Gemma、Phi-3 等,Windows 下内存泄漏严重。
换成:

ollama pull qwen:7b        # 最稳
ollama pull llama3:8b     # 次稳

3. API 调用端优化(Django 代码)

你之前的 LangChain + Ollama 代码要加 3 个关键参数:

from langchain_ollama import OllamaLLM

llm = OllamaLLM(
    model="qwen:7b",
    base_url="http://localhost:11434",
    # 必加 3 项
    num_ctx=2048,        # 与环境变量一致
    num_thread=4,        # 限制 CPU 线程
    temperature=0.1,     # 低温度更稳定
)

四、进阶:彻底杜绝卡死(生产级)

1. 限制内存(Windows 虚拟内存优化)

  • 我的电脑 → 属性 → 高级 → 性能设置 → 高级
  • 虚拟内存 → 更改
  • 自定义大小:初始 16384 MB / 最大 32768 MB
  • 重启

2. 每次调用后清理上下文(Django 视图)

# 每次请求后强制释放上下文
from django.db import connection
connection.close()

# 或在 LangChain 调用后加
import gc
gc.collect()

3. 降级 Ollama 版本(最新版常有 Bug)

如果仍卡,降级到 v0.1.32(最稳定 Windows 版)

  • 卸载当前 Ollama
  • 下载:https://github.com/ollama/ollama/releases/tag/v0.1.32
  • 安装后重启

五、你现在马上做的顺序(3 分钟解决)

  1. 杀死所有 Ollama 进程
  2. 清理缓存
  3. 设置 3 个环境变量(NUM_PARALLEL=1CONTEXT_LENGTH=2048KEEP_ALIVE=-1
  4. 重启电脑
  5. qwen:7b 测试

做完后,连续调用 20 次都不会再卡。


六、我可以直接给你

  • 稳定版 Django + Ollama 配置文件(直接复制)
  • 防卡死 API 调用封装类(带自动重试、内存清理)
  • Windows 下 Ollama 一键重启/清理脚本
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐