搭过这套配置的人多半都有同感E3老平台加上一张当年矿场退役的P106计算卡本身都是别人眼里的电子垃圾但放进PVE里做虚拟化之后反而成了一套既能跑AI推理、又能扛网站流量的全能小服务器。这篇教程我会从硬件选型开始一路走到PVE安装、GPU直通、AI环境搭建和建站整合包括我自己踩过的坑和验证过的细节。适合手头正好有旧E3主板、不想再花大价钱换新平台、又想把这台机器变成7x24小时多用途服务器的朋友原文里那些零散参数我尽量整理成能直接照着操作的形式。1. 为什么偏偏是E316GP106这套组合的性价比账本1.1 E3“神U”到底神在哪儿E3系列在DIY圈子里的地位不用多解释。当年它和桌面旗舰共用同一套核心设计但价格便宜得多唯一的代价是通常不能超频、部分型号需要搭配服务器或商用主板。放到今天二手市场里一块带核显或者不带核显的E3价格普遍只有几十到一百多而它依然保有四核八线程支持VT-x和VT-d两组虚拟化指令。对PVE这种虚拟化平台来说VT-d才是真正的关键。没有VT-d后续想把P106直通给虚拟机就会非常痛苦甚至根本插不进去。E3主板大多来自H81、B85、C226这类芯片组虽然年代老但基本都有完整的VT-d选项这比很多消费级新平台把直通功能藏起来要好得多。再加上DDR3内存如今几乎是白菜价四条插槽插满32G也花不了多少钱作为折腾用的宿主平台非常舒服。它的短板同样明显单核性能放到现在只能算入门水平内存带宽受限于DDR3-1600双通道跑需要频繁交换显存的数据时会感到吃力。但AI推理这个场景很有意思很多任务并不依赖单核性能反而更看线程数量和显存容量E3的八线程在这里能发挥出超出预期的表现。1.2 16G内存够不够用16G在今天的标准下确实不算宽裕但在这套配置里是够用的关键看你怎么分。我推荐的大致方案是PVE宿主本身占用大约1G到2GAI虚拟机分10G到12G建站容器分2G到4G剩下的留给缓存和突发。这样分配的前提是AI服务主要用于推理而不是训练训练动辄需要十几G内存缓存数据集16G会非常紧张。如果只跑文本生成、接口服务、中小型网站16G完全能做。如果打算跑图像生成类应用模型权重会占用大量显存显存放不下的部分必然往内存里溢内存不足会导致速度急剧下降甚至进程被杀。这时候我会建议直接把内存升到32G毕竟DDR3内存便宜升级成本几乎可以忽略收益却非常明显。1.3 P106-100为什么适合当AI计算卡P106-100用的是和GTX 1060同款的GP106核心拥有6G GDDR5显存计算能力和当年的甜品卡相当。它被矿场大量采购后如今二手价格跌到了百元级而且因为没有视频输出接口普通用户不愿用反而让它的价格一直上不去。对AI推理来说视频输出接口本来就不需要我们完全可以通过SSH或PVE的VNC控制台来管理虚拟机所以P106这个“残疾”特性根本不是问题。6G显存决定了它能跑的下限常见的7B参数模型用4bit量化后大约需要4G多显存刚好能塞进去2B、3B级别的小模型更是游刃有余。再大的14B或更大模型就得靠内存溢出速度会慢很多。所以在入手P106之前先想清楚自己要跑什么规模的模型6G显存能覆盖的范围是“入门级AI服务器”的天花板。不过矿卡有矿卡的脾气。很多P106被矿场长期高负载摧残过散热器里积灰严重风扇策略也被改得乱七八糟甚至有的被刷过第三方BIOS。拿到手之后建议先清灰、换硅脂然后用软件查看实际温度和功耗再决定要不要限制功耗墙。这一百多块钱花得值不值完全取决于你愿不愿意花半小时做保养。2. PVE底层搭建与直通前置准备2.1 BIOS设置一切虚拟化的前提装PVE之前先进主板BIOS把虚拟化相关选项打开。E3主板普遍有VT-x和VT-d两个开关VT-x是CPU虚拟化VT-d是设备直通功能两者都要开启。有些主板把VT-d藏在“Advanced → System Agent Configuration”或“South Bridge”这类菜单里翻箱倒柜找一下总能看到。另外老主板默认可能是Legacy引导模式。虽然PVE也能在Legacy模式下装但后续维护和恢复不如UEFI方便尤其是4G以上内存映射和PCIe直通空间分配的问题UEFI模式更省心。如果主板支持UEFI优先切到UEFI。还有一项叫做“Above 4G Decoding”或“大于4G地址空间解码”的选项如果主板BIOS里有务必打开这对PCIe设备直通后的地址空间分配影响很大不开启可能会导致直通后虚拟机启动异常。2.2 安装PVE与第一次网络配置下载最新版Proxmox VE的ISO用写盘工具写入U盘开机选择U盘启动进入安装界面。安装过程中会让你选择安装磁盘这里我强烈建议把PVE系统装在一块独立的SSD上至少128G。不要想着系统盘和数据盘共用一块硬盘PVE本身有大量的日志写入和虚拟机快照系统盘分离能省掉很多麻烦。安装时的网络配置要特别留意PVE的管理网口默认是第一个网口通常设置为vmbr0网桥IP地址根据你的局域网网段配置网关和DNS也要填对。安装完成后通过浏览器访问“https://PVE的IP:8006”就能打开管理后台。老浏览器访问这个页面可能会有证书警告直接继续访问即可这是PVE自签名证书的正常现象。装好系统后第一件事是更换软件源。PVE默认的官方源在国内访问速度很慢可以把源替换成自己常用的镜像源具体方法取决于个人网络环境一般就是修改/etc/apt/sources.list和/etc/apt/sources.list.d/pve-no-subscription.list这两个文件。替换完成后执行apt update确保后续安装软件包时不会卡在网络这一步。2.3 开启IOMMU内核参数直通设备的核心是IOMMU。PVE默认不开启IOMMU需要在引导参数里显式加上。修改/etc/default/grub文件在GRUB_CMDLINE_LINUX_DEFAULT一行后面加入intel_iommuon iommuptiommupt表示只在直通场景下启用IOMMU日常性能损耗更小。然后执行update-grub reboot重启之后用下面这条命令确认IOMMU已经生效dmesg | grep -e DMAR -e IOMMU如果能看到类似“DMAR: IOMMU enabled”的日志说明内核已经成功开启。接着检查一下IOMMU分组情况for g in /sys/kernel/iommu_groups/*; do echo IOMMU Group $(basename $g); ls $g/devices; done这个命令会把所有IOMMU分组的设备列出来。为什么要看分组因为PCIe设备直通时同一IOMMU分组里的设备必须一起直通给虚拟机否则会失败。好在P106所在的PCIe插槽通常有独立分组少见需要连带声卡一起直通的情况确认一下总归没坏处。3. P106直通与驱动打通真正的第一道鬼门关3.1 先建一个虚拟机骨架PVE直通P106的第一步是创建一台虚拟机。我建议先装一个Ubuntu Server 22.04 LTS理由后面会讲。创建虚拟机时CPU类型选择“host”这样虚拟机能直接用宿主CPU的完整指令集对后续AI和编译类任务都有好处。核心数可以先给4核内存给10G磁盘给40G以上。显示设备保持PVE默认的VNC不要一开始就设置成无显示设备。为什么因为安装系统的时候你还需要通过控制台看画面等到系统装好、SSH能连上之后再用VNC控制台也不会和P106冲突。P106直通后只是作为计算设备不负责显示输出虚拟机自己的虚拟显卡继续承担控制台画面两者互不干扰。创建完成后在硬件设置里添加PCI设备选择P106那一个设备。如果主板把音频控制器和显卡分在同一组里一般需要一并勾选否则启动时会报错。添加完成后确认启用PCI-Express选项PCI设备使用PCIe模式更稳定。3.2 安装NVIDIA驱动并验证CUDA启动虚拟机安装好Ubuntu Server后第一件事就是安装NVIDIA驱动。直接使用系统自带的驱动源最稳sudo apt update sudo ubuntu-drivers devices sudo ubuntu-drivers autoinstall自动安装会拉取一个相对合适的驱动版本。装完之后重启再执行nvidia-smi如果能看到P106的信息和显存容量说明直通已经成功。这一步是整套配置的分水岭走到这里后面AI环境的搭建就是普通软件层面的工作了。接着安装CUDA工具包。很多人会去官网下载一个巨大的runfile其实在Ubuntu上直接安装发行版自带的工具包最省事sudo apt install nvidia-cuda-toolkit装完之后可以用nvcc --version检查CUDA编译器版本。这里要提醒一句如果你之后要跑需要特定CUDA版本的项目最好先用Docker里的官方镜像不要在这台机器上反复折腾不同版本的CUDA否则很容易把驱动环境搞乱。3.3 无显示输出与矿卡的体质问题P106没有显示输出接口所以就算直通成功你也永远看不到它输出的画面这不代表有问题。第一次测试直通是否成功不要看显示器直接看nvidia-smi的输出。矿卡回来后温度和功耗校验一定要做。执行nvidia-smi -q -d TEMPERATURE nvidia-smi -q -d POWER如果待机温度就超过60度那基本可以判断是散热器积灰或者硅脂干了建议拆开清理。P106的散热器通常很简单清理并不难但注意显存和供电部分的灰尘也要一起处理。清理完重涂硅脂后温度一般能下降十几度。功耗方面P106默认功耗墙大约120W性能释放是够的。如果你对这台的散热没信心或者电源瓦数比较紧可以手动把功耗墙压到100Wsudo nvidia-smi -pl 100再有就是开启持久模式减少驱动加载和唤醒的延迟sudo nvidia-smi -pm 13.4 直通失败的常见现象排查直通失败最常见的有三种表现。第一种是虚拟机启动后控制台黑屏这时候先检查VM的显示设备是不是被设置成了“无显示设备”或者PCI设备有没有被误设成主GPU。排查方法是先移除P106直通用VNC控制台正常启动系统确认系统没问题后再重新添加PCI设备。第二种是Windows系统下驱动报Error 43。这是因为NVIDIA驱动会检测虚拟机状态故意屏蔽显卡。解决办法是在PVE的VM设置里把CPU类型设为host然后在VM的配置文件/etc/pve/qemu-server/xxx.conf中追加隐藏KVM虚拟化特征的参数。Linux系统下基本不会遇到这个问题所以初学者建议直接用Ubuntu难度低很多。第三种是重启主机后虚拟机里的GPU消失。先看PVE里的PCI设备是否还在再看虚拟机是否设置了开机自启动。有时候主板的PCIe枚举顺序会变导致设备编号变化重新添加一次直通设备就能解决。4. AI环境的两种装法用VM还是LXC哪种更省心4.1 虚拟机与容器的选择逻辑PVE里跑AI应用其实有两条路线一是继续用刚才的Ubuntu虚拟机在虚拟机里装Docker跑模型二是新建一个LXC容器通过设备节点方式把GPU挂进容器里。这两条路我实际都试过结论很明确16G内存压力下虚拟机的隔离性更稳LXC确实更省资源但GPU直通的坑更多。虚拟机方案的优点是驱动完全独立你在VM里随便装什么CUDA版本都不会影响PVE宿主。缺点是内存浪费一点Ubuntu Server加Docker大约需要额外占用1G到2G内存。LXC方案的优点是几乎零开销CPU和内存配额可以直接压到很小但GPU设备需要通过cgroup和mount entry手动映射而且容器内驱动和宿主机内核模块必须严格匹配否则设备节点虽然存在但驱动加载不了还是白搭。我自己最后是选择VM Docker的组合。理由很简单AI环境最脆弱模型推理框架、CUDA版本、系统库之间的依赖极其复杂一旦环境被搞坏重新配置的成本远超省下的那点内存。虚拟机把整个环境隔离起来坏了直接回滚快照省心很多。4.2 在虚拟机里安装Docker并让容器使用GPU登录Ubuntu虚拟机安装Dockercurl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh然后安装NVIDIA容器工具包让Docker能够识别GPUsudo apt install nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtimedocker sudo systemctl restart docker配置完成后用官方CUDA镜像验证GPU是否被Docker正确识别sudo docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi如果这段命令能输出P106的信息说明从宿主到虚拟机再到Docker的GPU链路已经全线打通。这个验证步骤非常关键很多机器卡在“宿主动核显正常、虚拟机里nvidia-smi正常、但容器里看不到GPU”这个问题上多半是nvidia-container-runtime没有配置成功重跑一遍nvidia-ctk runtime configure基本能解决。之后跑模型就成了常规操作。6G显存适合跑7B以下的量化模型比如常见的4bit量化版7B模型大约需要4G显存P106可以稳跑。吞吐量虽然不能和RTX 4090比但相比CPU推理依然是数量级的提升日常测试和中小规模并发完全够用。4.3 为什么我不推荐LXC跑AILXC跑AI不是不行而是容易在细节上翻车。要把GPU挂进LXC你需要修改容器配置文件加入类似下面的条目lxc.cgroup2.devices.allow: c 195:* rwm lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,createfile lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,createfile lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,createfile lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,createfile而且宿主机必须预先安装好NVIDIA驱动容器里的驱动版本还必须与宿主机内核模块匹配。PVE宿主本身装NVIDIA驱动这件事就挺折腾还会影响整个宿主系统的稳定性。除非你是LXC老手且内存紧张到必须省那1G否则我不建议在这套配置里选LXC。4.4 模型托管与内存策略跑模型时显存不够的部分会向内存溢出16G内存的压力主要集中在AI虚拟机。我会在Docker启动命令里加上--shm-size4g参数因为PyTorch框架经常用共享内存做数据加载默认的64M很容易不够用。平时不要把AI虚拟机的内存额度设满留出1G左右给宿主和其余容器做缓冲避免OOM把整台PVE弄卡死。5. 建站部分与AI接口整合一台机器干两件事5.1 建站容器的资源规划建站不一定要再开一台完整虚拟机用LXC容器更合适。PVE的LXC模板可以直接下载Debian或Ubuntu的标准模板创建容器时分配2核CPU和2G内存就足够应付中小流量网站。创建并启动容器后进入容器安装Nginx、PHP和MariaDBapt install nginx php-fpm mariadb-server如果只是搭静态站或轻量博客Nginx加PHP就够了。数据库虽然占内存但MariaDB在小内存下可以通过调整performance_schema和缓冲区参数降到100M以内2G内存完全够用。和AI虚拟机不同网站容器追求的是稳定和低占用用LXC放这里是最合适的。5.2 用Nginx做反向代理把AI接口收进内网建好网站后最自然的做法是把AI能力暴露成网站的一个子路径或子域名。比如AI服务在虚拟机里监听8000端口网站这边通过Nginx反向代理统一收口server { listen 80; server_name ai.example.local; location / { proxy_pass http://192.168.1.20:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }这样一来外部访问网站时只看到80和443端口AI后端服务不需要直接暴露公网安全性高很多。如果以后需要HTTPS用Caddy做自动证书管理比Nginx配证书简单得多资源占用也不大可以二选一。5.3 同一块GPU怎么同时服务AI和网站P106毕竟只有一张如果网站本身也要调用AI接口GPU的并发能力是有限的。建议把AI服务封装成一个HTTP接口每次推理请求短小精悍网站前端再把请求转发过来。对于轻量应用比如文章摘要、智能搜索、对话机器人P106完全能同时扛下只要并发控制在个位数每个请求的推理时间在几秒到几十秒量级用户体验尚可。真要面对高并发AI请求这张卡就不够了可以在后续升级时增加并行推理服务或换更高显存的卡。但“网站和AI共用一套资源”这个架构思路是正确的老平台也扛得住。6. 长期运行的资源调度与排坑清单6.1 把CPU频率榨干的设置PVE默认的CPU调频策略是保守模式偏向省电E3这种老CPU很容易跑在低频率上响应变慢还不自知。装一个cpufrequtils工具把策略改成performanceapt install cpufrequtils -y echo GOVERNORperformance /etc/default/cpufrequtils systemctl restart cpufrequtils改完后可以用cpufreq-info确认当前策略。性能模式会让CPU始终工作在最高频率附近带来的代价是功耗和温度略微上升但对AI推理这类突发负载场景体验提升非常明显。6.2 内存防爆与PVE宿主保护16G内存分给多个虚拟机之后宿主本身的内存余量很薄。PVE默认会使用内存Ballooning技术让虚拟机归还未用内存但AI任务的特点是内存波动大Ballooning机制有时反而会造成性能抖动。我建议AI虚拟机把内存设为固定分配不要开Balloon建站LXC可以开因为它内存占用相对稳定。接着在PVE宿主机设置一个最低空闲内存保护值避免宿主内存被虚拟机和缓存吃光后卡死sysctl -w vm.min_free_kbytes65536写入到/etc/sysctl.conf后永久生效。这条配置会让系统提前预留64M内存用于应急分配对整机稳定运行很有帮助。6.3 温度、功耗与日常运维P106要做好长期高温运行的准备。机箱内建议增加一个后排风扇把GPU热量直接抽出去。日常监控可以用watch -n 1 nvidia-smi在PVE宿主上用lm-sensors查CPU温度apt install lm-sensors -y sensors如果发现P106长期在70度以上运行优先做三件事清灰换硅脂、加机箱风道、用nvidia-smi -pl把功耗墙压低一档。这三步做完温度通常能控制在60度上下非常稳妥。6.4 故障速查表故障现象大概率原因解决办法VM控制台黑屏显示设备被设为无VGA用VNC控制台引导SSH登录排查Windows识别不到P106NVIDIA驱动屏蔽虚拟化CPU选host隐藏KVM特征参数容器/VM重启后GPU消失设备重启顺序变化PVE中重新添加PCI设备nvidia-smi找不到设备驱动未装或设备节点缺失重新安装驱动检查/dev/nvidia*内存经常被吃满AI VM Ballooning干扰固定分配内存开启min_free_kbytes网站响应慢Nginx并发配置过小调整worker_processes和keepalive6.5 这套方案还能往哪里走如果后续想把16G内存升级到32G直接插满四条DDR3内存条即可成本低见效快。PVE里可以继续添加更多LXC容器比如监控系统、备份服务、开发测试环境。但GPU方面我不建议加第二张P106老平台PCIe通道有限双卡协作的收益远不如直接换一张高显存卡来得明显。模型规模提升到一定阶段后整套平台的瓶颈会从显存转为CPU和内存带宽那才是考虑更新换代的时候。这套E3加P106的配置我用下来最大的感受是折腾的价值不在于硬件本身有多强而是让你用最小的成本把虚拟化、GPU直通、容器编排、反向代理这一整条现代服务器技术栈完整跑了一遍。初次直通遇到问题时不要急着怀疑硬件绝大多数问题出在BIOS设置和PVE配置上按这个流程一步步走下来稳定运行并不难。