在本地部署大模型时,很多用户会遇到C盘空间不足的困扰。以ollama为例,一个7B参数的模型文件通常需要12-15GB存储空间,而更大的70B模型可能占用超过200GB。系统盘空间紧张会导致:
我最近帮客户部署Llama 2时,就遇到C盘只剩3GB却需要加载13GB模型的情况。将模型库迁移到其他分区后,不仅解决了空间问题,还意外发现模型加载速度提升了20%(可能是目标磁盘的读写性能更好)。
建议部署前检查:
我的实测数据显示,将模型放在不同存储介质上时:
建议优先选择NVMe固态硬盘作为模型存储位置。
Windows系统通过修改环境变量实现:
powershell复制# 先卸载已有版本
winget uninstall ollama
# 设置新安装路径(示例使用D盘)
$env:OLLAMA_MODELS = "D:\AI_Models"
[Environment]::SetEnvironmentVariable("OLLAMA_MODELS", $env:OLLAMA_MODELS, "Machine")
# 重新安装
winget install ollama
bash复制# 设置模型存储路径
export OLLAMA_MODELS=/mnt/nvme/ollama_models
# 使配置永久生效
echo 'export OLLAMA_MODELS=/mnt/nvme/ollama_models' >> ~/.bashrc
bash复制ollama pull llama2 --path $OLLAMA_MODELS
Windows查看:
powershell复制Get-ChildItem $env:OLLAMA_MODELS
Linux/macOS检查:
bash复制ls -lh $OLLAMA_MODELS
当出现"permission denied"错误时:
bash复制sudo chown -R $(whoami) $OLLAMA_MODELS
sudo chmod -R 755 $OLLAMA_MODELS
创建自动检查脚本(保存为check_space.sh):
bash复制#!/bin/bash
THRESHOLD=90
CURRENT=$(df -h $OLLAMA_MODELS | awk 'NR==2{print $5}' | tr -d '%')
if [ $CURRENT -ge $THRESHOLD ]; then
echo "警告:模型磁盘使用率已达${CURRENT}%"
du -h $OLLAMA_MODELS | sort -rh | head -5
fi
当有多个物理磁盘时,可以:
bash复制ln -s /disk1/models/llama2 $OLLAMA_MODELS/llama2
ln -s /disk2/models/mistral $OLLAMA_MODELS/mistral
Linux系统可使用ramdisk:
bash复制sudo mkdir /mnt/model_cache
sudo mount -t tmpfs -o size=20G tmpfs /mnt/model_cache
对于NAS用户,建议:
bash复制# /etc/fstab示例
nas:/models /mnt/nas_models nfs rw,noatime 0 0
设置模型自动清理规则(每周日凌晨2点):
bash复制0 2 * * 0 find $OLLAMA_MODELS -name "*.tmp" -mtime +7 -exec rm {} \;
在实际部署中,我发现将模型存储在独立分区后,不仅解决了空间问题,还便于备份和迁移。最近一次系统重装时,因为模型存储在D盘,重装后只需重新设置环境变量就恢复了所有模型,节省了大量下载时间。