近期,deepseek不仅在互联网上非常火爆,单位/个人进行本地部署也非常火爆。本人的笔记本虽然配置很差,也想部署一个来学习一下。但由于ollama可以部署在win11宿主机,也可以部署在wsl2的docker中。两者性能差距如何?显卡使用如何?没有经过实践测试无法得出结论。 同时,由于windows和wsl2可以跨文件系统访问,也想测试一下跨文件系统访问是否会有性能损失。
下面是测试环境和样例:
1、测试环境
硬件环境:自有笔记本
- CPU:intel酷睿I5-1135G7;
- 内存: 40G DDR4 3200MHz;
- 显卡:nvidia mx450,2G专用显存;
- 硬盘:512G SSD;
软件环境:
- OS:win11 家庭版;
- cuda:v12.8 目前最新版;
- wsl2分发版:ubuntu(当前为Ubuntu 24.04.2 LTS)
- 容器:docker v28.0.0
2、测试实例
在安装好ollma以及配置好gpu加速后进行2次提问测试:
- Q1:我是一个中小企业,我改如何使用deepseek落地本地知识库?(此语句中的“改”,是故意敲错给大模型的)
- Q2:我是一个IT工程师,如何用ollama+anythingllm来部署实现本地知识库?
3、win11宿主机的性能测试
一、部署软件:
- ollama:win11宿主机部署ollama很简单,只需要在ollama官网下载程序安装即可。
- cuda:安装最新的显卡驱动,并安装对应的cuda版本,我的笔记本安装了最新12.8.同时,按照官方教程配置环境变量。
- 强制GPU加速:配置以下环境变量:
OLLAMA_GPU_LAYER:cuda
CUDA_VISIBLE_DEVICES:显卡id
二、运行ollama测试:
- 拉取模型:在windows终端中输入以下命令拉取模型
ollama pull deepseek-r1:7b
- 运行模型:在windows终端中输入以下命令运行模型
ollama run deepseek-r1:7b --verbose
三、测试结果
测试结果 | Q1 | Q2 |
CPU | 85-95% | 85-95% |
GPU | 11-16% | 11-16% |
内存 | 13.6/39.8G | 13.6/39.8G |
专用显存 | 0.9/2.0G | 1.0G/2.0G |
共享GPU内存 | 4/19.9G | 4/19.9G |
total duration | 5m19.3631901s | 8m43.0925297s |
load duration | 30.3408ms | 20.6889ms |
prompt eval count | 18 token(s) | 1257 token(s) |
prompt eval duration | 1.455s | 17.098s |
prompt eval rate | 12.37 tokens/s | 73.52 tokens/s |
eval count | 1218 token(s) | 1811 token(s) |
eval duration | 5m17.875s | 8m25.671s |
eval rate | 3.83 tokens/s | 3.58 tokens/s |
4、win11+wsl2+docker测试
一、部署软件
- wsl2安装:控制面板》程序和功能》添加“虚拟机平台、hyper-v、linux子系统”安装即可;
- 分发版安装:运行以下命令安装
PS C:\Users\user1> wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install ' 安装。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
PS C:\Users\user1> wsl --install ubuntu
正在安装: Ubuntu
已安装 Ubuntu。
正在启动 Ubuntu...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
- docker安装:运行以下命令安装
apt update
apt install docker-ce
- gpu加速:参照developer.nvidia.com上的说明安装wsl下的cuda。然后按照英伟达说明安装nvidia-docker2
二、运行ollama测试
- 进入wsl2:在windows终端输入wsl 进入默认的发行版,也就是ubuntu。如果你安装有有多个发行版,那就用 wsl -d ubuntu命令。
- 创建容器:建议使用docker compose文件来启动ollama,注意需要加GPU配置选项支持。
- 运行容器:用docker-comopse up -d 来启动容器。容器启动后,ollama自动进入serve状态。
- 运行ollama:采用以下命令进入并运行
#wsl2中运行
docker exec -it ollama /bin/bash
#容器内运行
ollama run deepseek-r1:7b --verbose
三、测试结果
测试结果 | Q1 | Q2 |
CPU | 60-62% | 60-62% |
GPU | 13% | 14% |
内存 | 20.7/39.8G | 19.9/39.8G |
专用显存 | 0.9/2.0G | 0.9/2.0G |
共享GPU内存 | 0.1/19.9G | 0.1/19.9G |
total duration | 4m51.309780447s | 7m7.611298769s |
load duration | 14.383767ms | 15.75587ms |
prompt eval count | 18 token(s) | 1264 token(s) |
prompt eval duration | 1.847s | 4.791s |
prompt eval rate | 9.75 tokens/s | 263.83 tokens/s |
eval count | 1225 token(s) | 1706 token(s) |
eval duration | 4m49.446s | 7m2.257s |
eval rate | 4.23 tokens/s | 4.04 tokens/s |
5、测试结论
经过测试数据对比,可以得出以下结论:
- 在windows下部署ollama的总体性能不如wsl2+docker下部署;由此推测在linux下直接部署docker性能会更佳;
注意:
wsl2+docker如果将模型文件放置在windows文件系统下,加载模型进内存的过程会慢非常多(测试过程忽略)。 强烈建议不要跨文件系统的访问!!!