服务器跑模型占C盘空间,核心原因是AI框架和数据集默认把缓存、临时文件、虚拟环境写到系统盘,而C盘通常是系统盘。你以为是模型在“跑”,其实是它在把家安在你最不想让它住的地方。
服务器跑模型C盘满了怎么办:先搞懂空间是被谁吃掉的
CPU和GPU在计算时,需要大量的临时文件读写,这里的“临时”不是我们平时说的几兆,而是几十GB规模的模型权重、梯度检查点、日志文件。绝大多数AI框架的默认缓存路径都指向系统盘的用户目录(C:Users用户名 或 /root),很少有开发者会主动修改这些路径,你跑一个7B参数的模型,光权重文件就要占据14GB以上,这还不包括优化器状态和激活值缓存。
训练模型C盘空间不足的常见原因
- Python虚拟环境重复安装:每次新建conda或venv环境,PyTorch和CUDA依赖就会复制一份,动辄5-8GB。
- HuggingFace模型默认下载到用户目录:
~/.cache/huggingface是模型文件的重灾区,几个模型就能塞满100GB。 - pip安装时的临时缓存:pip先把包下载到临时目录再解压安装,安装完不清理,日积月累非常大。
- 交换文件和休眠文件:Windows上的pagefile.sys和hiberfil.sys会随着内存占用膨胀。
- Docker桌面版虚拟磁盘:WSL2的ext4.vhdx文件只增不减,删除镜像后也不会自动缩小。
C盘存储占用与D盘存储占用的本质差异
很多人疑问:我把模型数据放到D盘,为什么C盘空间还是越来越小?行业共识认为,AI框架默认把用户目录和临时目录硬编码在系统分区,举例:你下载一个数据集到D盘训练,但PyTorch的DataLoader还是会往C盘的temp目录写shuffle索引和预取缓存,更隐蔽的是,Windows的文件系统虚拟化(UAC)会把某些写入请求重定向到C盘用户目录下的VirtualStore,你以为写进了D盘,实际还是占了C盘容量。
删除模型后,C盘空间未释放的隐性元凶
这是相当一部分用户搜索“服务器跑模型c盘满了怎么办”却找不到答案的原因,罪魁祸首是分页文件(虚拟内存),跑大模型通常需要特大内存,系统会自动扩充pagefile.sys,训练结束后它不会自动缩小,一个16GB内存的服务器,遇到70B模型推理时,pagefile.sys可能膨胀到40GB以上。
内行人指出,将pagefile.sys固定大小并迁移到D盘,是立竿见影的释放手段。

页面文件之外,还有几个隐藏很深的数据。
深度学习C盘被占满后的清理步骤
第一步:定位“现实中的空间去向”
- Windows上使用WizTree或SpaceSniffer扫描C盘。
- Linux上用
ncdu /查看目录大小排序。
按经验,扫描结果的前三名通常被这些路径占据:C:Users用户名.cache、C:Users用户名AppDataLocalTemp、C:Users用户名AppDataLocalProgramsPython。
第二步:清理pip和conda的缓存
# 清理pip缓存 pip cache purge # 清理conda缓存的安装包文件 conda clean --all # 清理浏览器下载的权重文件残留 rm -rf ~/Downloads/.bin
第三步:转移HuggingFace默认缓存目录(这是解决“训练模型C盘空间不足”最重要的操作)
# 先把现有缓存移动到D盘 mv ~/.cache/huggingface /d/data/huggingface # 创建软链接,让程序自动寻找新路径 ln -s /d/data/huggingface ~/.cache/huggingface
Windows环境下,用mklink /J C:Users用户名.cachehuggingface D:datahuggingface实现目录联接,效果等同软链接,移动完成后,C盘会一次性腾出几十GB。
第四步:全面卸载AI框架,而非使用删除快捷方式的“伪卸载”
C盘空间被占满后,卸载采用“保留代码”的框架残留较多,用pip uninstall torch torchvision torchaudio会留下大量共享依赖库,正确顺序是:先卸载所有依赖包,再手动删除C:Users用户名AppDataLocalProgramsPythonPython312Libsite-packages中的残留文件夹,最后用Disk Cleanup清除Windows更新缓存。
服务器跑模型的场景差异:Windows和Linux谁更吃C盘
在Windows服务器上跑模型的用户,基本都会遇到C盘空间被“不知不觉地”填满,这是因为Windows的DLL依赖机制和注册表项要求AI框架必须把核心库写入系统目录,PyTorch的CUDA运行库会在C:WindowsSystem32下植入部分NVML动态链接库,这也是为什么一个框架卸载干净特别困难。
至于Linux服务器,则相对没那么容易出现“C盘满”的典型问题(Linux叫根分区),Docker和K8s默认数据存放在/var/lib/docker,如果当时没有做根分区扩容,就会频繁触发磁盘写满导致容器全部退出其表现形式近似于“C盘被占满”。
| 占用位置 | Windows系统 | Linux系统 |
|---|---|---|
| 临时文件 | C:WindowsTemp | /tmp |
| 模型默认缓存 | C:Users用户名.cache | /root/.cache |
| 依赖安装残留 | C:Users用户名AppDataLocalpip | ~/.cache/pip |
| 容器数据 | C:Users用户名AppDataLocalDocker | /var/lib/docker |
| 验证框架 | 模型权重存储量 | 容器镜像分层数 |
设置了环境变量TMPDIR,仍然跑模型C盘爆满的原因
只修改TMPDIR环境变量远远不够,CUDA的context缓存与TensorRT的engine缓存默认写在系统盘目录,这与常规临时文件路径是独立的,具体路径映射:
Windows CUDA缓存:C:Users用户名AppDataLocalNVIDIAComputeCache
Linux CUDA缓存:~/.nv/ComputeCache
TensorRT缓存目录:~/.tensorrt
环境变量是显式指定的,但有些底层缓存不受环境变量控制,章节中提到的路径需要逐一手动迁移,不可依赖单个变量覆盖全部场景。
预防AI训练占用C盘空间的系统化设置
减少跑模型时对C盘造成的压力,最难的是养成习惯,当你新建项目的第一件事就是规划活动数据包的去向,C盘基本不会再出现红色警告。
更改pip和conda默认安装位置
不要再用pip install默认方式安装大型库,在C:Users用户名下新建pip文件夹并创建pip.ini:
[global] target = D:pythonsite-packages cache-dir = D:pythonpip-cache
对应conda环境,用conda config --set pkgs_dirs D:condapkgs修改安装包缓存路径,用conda env create -p D:envstorch -f environment.yml将虚拟环境建到D盘分区。
定期清理“重启后自动重建”的临时文件
Docker在Windows上的默认vhd虚拟磁盘文件只增不减,定期清理步骤:
- 停止WSL:
wsl --shutdown - 使用diskpart命令compact vdiskfile压缩WSL2的虚拟磁盘
- 清理
C:Users用户名AppDataLocalDockerwsl下的docker_data.vhdx
Linux服务器则可以使用docker system prune一次性清理悬空镜像与构建缓存,据多家云服务商年度存储报告显示,此类操作可为根分区释放30%以上的占用空间。
服务器跑模型占C盘空间具体场景分析
用服务器本地推理私有化部署
在英伟达GPU服务器部署ChatGLM或Llama这类开源大模型时,模型文件权重动辄几十GB,部署模型需要先将权重下载至磁盘再加载至显存,而默认下载路径就在C盘。

若权重文件同时留存了多个微调变体,磁盘空间条会以肉眼可见的速度变红,实际操作中,下载权重的目录和HuggingFace缓存目录要迁移走,之后给加载模型的进程设置PYTHONUSERBASE,确保模型运行产生的日志写入D盘。
服务器作为训练节点持续运行
持续训练生成对抗网络和扩散模型时,模型检查点会按epoch周期写入磁盘,默认配置下,每轮保留的checkpoint文件都覆盖在C盘用户目录,跑一个100轮的任务,400GB且呈线性增长是很常见的,可以调大save_interval时间,或只保留最好的权重和最近的检查点,训练任务较重时,checkpoint写入能占C盘写入带宽的90%以上。
多用户共用一台服务器的空间分配问题
多人共用服务器时,每个人默认的Python环境与缓存都会塞入根分区,一位用户运行torch.hub.load下载一个预训练模型,就会在~/.cache/torch/hub下生成几GB数据,多用纯代码时,用配额限制工具给不同用户设置磁盘配额,或用--cache-dir参数指定用户的额外空间。
Q&A:有关AI模型运行占用C盘空间的解答
Q1:为什么C盘空间满了以后,模型训练速度会明显变慢?
训练速度下降与内存映射垫满、虚拟内存交换有关。当C盘剩余空间逼近极限时,操作系统会频繁进行页面合并和缓存回写,尤其对大文件映射(内存映射权重)影响严重,临时目录无法写入会导致DataLoader直接报错,预留20%以上的C盘空闲容量是维持GPU利用率的基本前提。
Q2:把模型安装在D盘,C盘空间就完全安全了吗?
安装到D盘解决了主权重文件的问题,但临时目录、pip缓存、HuggingFace缓存、CUDA缓存依然留在C盘,必须把上面列举的所有路径逐一使用符号链接转移至D盘,才算把C盘的存储压力完全释放。
Q3:有哪些不需要重装系统就能增加C盘容量的方法?
使用磁盘管理中的“压缩卷”对D盘收缩,将未分配空间扩展到C盘,是多数情况下可行的方案(若D盘数据较少且连续),也可用第三方分区工具移动页面文件和休眠文件,在“系统属性高级性能设置虚拟内存”中把页面文件从C盘迁移至其他分区,对于Windows磁盘末尾有环境保留分区的场景,需要先将该分区删除,再进行C盘空间扩展。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/777484.html

