Ollama 在WSL2或原生Windows上运行:如何选择 ?
在 Windows 下,运行 Ollama 有两种方式:使用原生 .exe 安装程序,或在 WSL2 中进行 Linux 安装。选择在 WSL2 中运行 Ollama 还是使用 Windows 原生版本,不只是个人偏好的问题——还涉及 GPU 性能、文件访问以及对 AMD 的支持。本指南根据具体数据和实际使用场景给出选择建议,帮助您一开始就选对配置。
#核心挑战:在单台机器上运行两个 Ollama
自 Ollama 提供原生 Windows 安装程序以来,关于「Ollama 使用 WSL2 还是原生模式?」的问题便反复出现。两种方式实际上运行完全相同的守护进程,默认监听在 http://localhost:11434,并提供相同的 GGUF 模型。差异体现在其他方面:GPU 的暴露方式、文件存储位置,以及您所使用的工具生态。
总的来说,Windows 原生运行方式在安装简便性和桌面集成方面更有优势,而 WSL2 更契合 Linux/开发工作流,也更兼容仅在 Unix 环境下提供的工具。两者没有绝对的优劣之分——合适的选择取决于您如何使用 LLM。
- Windows 原生版 Ollama
- 一个.exe文件,系统托盘中的图标,Windows开机时自动启动守护进程。无需管理任何Linux层。
- Ollama 在WSL2下运行
- 一个Linux发行版(通常为Ubuntu),您像在服务器上一样安装Ollama。如果您现有的技术栈已经是Linux,则非常合适。
- 共同点
- 两者都在 11434 端口提供相同的 API,使用相同的模型和命令。此外,Windows 客户端可以与 WSL2 服务器通信,反过来也可以。
#先决条件
只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。
- 在线空间,终身可用
- PDF + 文件
- 终身更新
要诚实地比较两者,必须确保GPU在每个环境中都能得到正确支持。大多数失望都源于此。
- Windows 11(或较新版本的 Windows 10)
- 使用 GPU 加速的 WSL2(WSLg)需要 Windows 11,或已安装最新更新的较新 Windows 10 构建版本。
- Windows端GPU驱动程序为最新版本
- 在 WSL2 中,Windows 驱动程序通过 /dev/dxg 将 GPU 提供给 Linux 使用。请安装最新的 NVIDIA(Game Ready 或 Studio)或 AMD Adrenalin 驱动程序,不要在 Linux 发行版中安装 Linux 驱动程序。
- WSL2 已启用
- 在以管理员身份运行的 PowerShell 中执行命令「wsl --install」,会安装 WSL2,并默认安装 Ubuntu。
- 足够的VRAM
- 两个环境下的 Q4_K_M 内存需求参考值相同:7B ≈ 5 GB,14B ≈ 9 GB,32B ≈ 19 GB,70B ≈ 40 GB。WSL2 不会改变这些需求。
#在 WSL2 中正确安装 Ollama
在WSL2中的安装与在Linux服务器上的安装完全相同:官方脚本会检测WSLg暴露的GPU并自动配置加速。
- 01启用 WSL2在管理员 PowerShell 中执行:「wsl --install」。若提示则重启。随后使用「wsl -l -v」确认您的发行版版本为 VERSION 2。
- 02更新发行版打开 Ubuntu,然后执行「sudo apt update && sudo apt upgrade -y」。保持系统更新可避免与 GPU 运行时的兼容性问题。
- 03安装 Ollama运行官方脚本:「curl -fsSL https://ollama.com/install.sh | sh」。该脚本会检测 NVIDIA(通过 WSLg 暴露的 CUDA)或 AMD(ROCm)并将其记录在日志中。
- 04检查 GPU加载一个小型模型后查看「ollama ps」:PROCESSOR 列应显示为 GPU,而非 CPU。若显示为 CPU,则加速功能未启用。
- 05测试一个模型执行「ollama run qwen3.5:9b」,然后提出一个问题。这个 2026 年模型(Q4 量化后为 6.6 GB,256k 上下文,支持视觉)是配备 8 GB 显存的显卡上的默认选择。添加 --verbose 可查看实际的每秒 token 数。
#GPU 性能:原生环境与 WSL2 的数据对比
这正是本指南要回答的核心问题。好消息是:在 NVIDIA GPU 上进行 LLM 推理时,原生运行 Ollama 与通过 WSL2 运行之间的差距很小。一旦模型加载到显存中,两种情况下的计算都由 GPU 完成,而 WSL2 对 token 生成本身几乎不会增加额外开销。
实际使用中,在同一张显卡上(例如 RTX 4070 12 GB 搭配 Q4_K_M 量化的 8B 模型),观察到的生成速度非常接近——差异通常只有几个百分点,往往被测量波动掩盖。WSL2 可能带来少量开销的地方,是首次从磁盘加载模型:WSL2 的文件系统在其 ext4 虚拟磁盘上很快,但访问存放在 Windows 一侧的文件(通过 /mnt/c)则明显更慢。
- 令牌生成(GPU)
- 原生环境与WSL2几乎无差异,均在NVIDIA上运行。GPU在两种情况下均承担计算工作;WSL2层对计算过程是透明的。
- 模型加载
- 如果模型存放在 WSL2 的原生 Linux 文件系统中,加载速度就快。如果 Ollama 从 /mnt/c/... 读取其 blobs,则加载较慢(需要经过与 Windows 之间的桥接层)。
- 首个 token 延迟
- 首个 token 的延迟相近,前提是模型已缓存在显存中。首次冷加载是需要特别注意的环节。
- CPU开销
- 推理时可忽略。WSL2 是真正的轻量级虚拟机,而非模拟环境;GPU 负载下虚拟化开销不明显。
单看性能,结论是:如果您使用 NVIDIA 显卡,选择 Windows 原生环境还是 WSL2,不应以生成速度为依据。请根据工作流程选择。性能只有在两种情况下才重新成为考量因素:模型存储(在 WSL2 下应放在 Linux 一侧),以及 AMD 支持;接下来我们就讨论这两点。
#AMD 的情况:WSL2 下的 ROCm
在 AMD GPU 上,情况有所不同且更为复杂。Ollama 使用 ROCm 来加速兼容的 Radeon 显卡。然而,ROCm 长期以来在 Windows 系统上存在诸多问题,而 WSL2 的出现改变了这一局面——对某些显卡而言,这种改变并不总是有利的。
- AMD 在原生 Windows 环境下运行
- Ollama 内置了适用于 Windows 的 ROCm 库。在官方支持的显卡(较新的 RX 7000 系列、部分 RX 6000 系列)上,无需 WSL2 即可使用加速。这通常是 AMD 台式机最简单的方案。
- WSL2 下的 AMD
- ROCm 提供 WSL2 版本,但支持的 GPU 范围更小,配置也更复杂。如果您需要 Linux 工具,可能有必要采用这种方案,但它本身并不会更快。
- 不支持的显卡
- 许多较老的 Radeon 显卡或 APU 并未列入 ROCm 官方支持列表。使用这些硬件时,Ollama 在这两种环境中都可能回退到 CPU 上运行。
- HSA 变通方案
- HSA_OVERRIDE_GFX_VERSION 变量有时可以强制识别与受支持型号相近的 GPU。仅供有经验的用户使用,不作任何保证。
#文件访问与VS Code集成
除了性能之外,文件访问往往才是决定因素。两个文件系统(Windows 的 NTFS 和 WSL2 中 Linux 的 ext4)都可以从另一侧访问,但跨越两者之间的桥接会带来性能开销,而且路径规则也不同。
- 从 WSL2 访问 Windows
- Windows磁盘挂载在 /mnt/c、/mnt/d 等路径下,便于读取文档文件夹,但频繁访问时(如加载大模型、RAG索引)性能较慢。
- 从 Windows 访问 WSL2
- 在文件资源管理器中,可通过网络路径 \\wsl$\Ubuntu\ 访问 Linux 文件系统。这个路径便于放入文件,但应避免让 Windows 工具在其中进行密集操作。
- 黄金法则
- 将每项工作负载保留在其原生文件系统中。Linux 开发项目 → 放在 WSL2 中。办公文档 → 放在 Windows 端。这样就能避开缓慢的跨系统文件访问。
在 VS Code 中,WSL 的集成非常出色,因此对于开发用途,WSL2 具有明显优势。官方扩展“WSL”可直接在 Linux 发行版中打开项目:VS Code 服务器运行在 Linux 端,集成终端使用 Linux shell,而您调用 Ollama API 的代码也在与守护进程相同的环境中执行。
#根据您的使用场景推荐的配置
以下是实用总结。请根据您的主要使用需求来选择,而不是依据每秒 token 数的细微差异。
- 桌面端/大众用户使用(NVIDIA)
- Windows 原生版 Ollama。一键安装,随用户登录启动,无需维护 Linux 层。搭配 LM Studio 或 Open WebUI 作为界面非常合适。
- Linux 开发者 / Unix 技术栈
- Ollama 在 WSL2 下运行。您可以在与守护进程相同的环境中访问工具(bash 脚本、Docker、Python venv),并享受出色的 VS Code 集成。
- 面向大众市场的AMD GPU
- 先测试 Windows 原生版本:借助其自带的 ROCm,这通常是最容易运行起来的方式。只有当您的工作流确实需要 WSL2,且您的显卡受支持时,才切换过去。
- 服务器/网络共享
- WSL2 更接近常规的 Linux 服务器部署,也更便于复现(使用与生产环境相同的命令)。如需对外提供访问,请记得设置 OLLAMA_HOST。
#故障排除
- 「ollama ps」命令显示的是CPU而非GPU
- 在 WSL2 中,请确保「nvidia-smi」可响应。若不可响应,请更新 Windows 侧驱动程序,并且不要在发行版中安装任何 Linux 驱动程序。
- 模型加载极慢
- 您的模型可能存储在 /mnt/c 目录下。请将其移动到Linux文件系统(~/.ollama)中,以恢复运行速度。
- 11434 端口出现“address already in use”错误
- 原生 Ollama 和 WSL2 中的 Ollama 同时运行。请停止其中一个,或使用 OLLAMA_HOST=127.0.0.1:11435 更改另一个的端口。
- AMD GPU 被忽略
- 显卡不在 ROCm 支持列表中。请检查兼容性,必要时可尝试 HSA_OVERRIDE_GFX_VERSION,或改用 Windows 原生环境。
- Windows 客户端无法连接 WSL2 守护进程
- 请使用 http://localhost:11434(WSL2 的端口转发会处理两端的连接),并确保只有一个守护进程在监听该端口。
#深入了解
选定运行环境后,这些指南将帮助您充分利用它:
- 在 Windows 11 上安装 Ollama
- 如果您选择 Windows 原生方案,这份原生安装程序的分步教程可作为本篇对比的补充。
- 排查 Ollama 故障:GPU 未检测到、运行缓慢、内存错误
- 进一步了解GPU故障排查,相关内容既适用于原生环境,也适用于WSL2。
- 选择量化方案(Q4、Q5、Q8、FP16)
- 根据您的显卡确定合适的显存占用,不受运行环境影响。
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。