场景:
需求:使用Ubuntu服务器,在anaconda虚拟环境中跑大模型
anaconda位置:home目录(/dev/sda2磁盘)
问题描述
我用anaconda虚拟环境跑大模型时,代码中有自动下载数据集需求,由于数据集大小大于/dev/sda2磁盘空余空间大小,导致报空间不足错误。
解决历程:
1.原先是以为anaconda在/dev/sda2磁盘中,导致数据集默认下载到相应磁盘,遂将anaconda整体迁移到大磁盘中(/dev/sdb1),但是发现还是默认下载到/dev/sda2磁盘。
注:在下文中,/dev/sda2磁盘统一简称为小磁盘,/dev/sdb1磁盘统一简称为大磁盘
附:anaconda环境迁移方法(参考[1]):
(1).将小磁盘中anaconda的安装包(.sh文件)复制到大磁盘。
(2).使用bash命令安装anaconda
(3).按ENTER键继续
直至出现Please answer ‘yes’ or ‘no’
(4).输入yes
(5).然后会提示是否将Anaconda3安装到家目录下,如果是,输入ENTER,如果需要重新指定目录,则将指定的目录路径输入,这里我们输入想安装到的大磁盘的路径:比如输入:/dachipan/zzz/anaconda3(假设大磁盘挂载点为/dachipan)
注:不要提前创建/dachipan/zzz/anaconda3文件夹
(6).修改~/.bashrc文件
输入指定目录路径还未结束,需要修改 ~/.bashrc文件。
打开bashrc文件:
vim ~/.bashrc
在最后加入:
export PATH="/dachipan/zzz/anaconda3/bin:$PATH"
将原始代码行注释:
# export PATH="/home/xxx/anaconda3/bin:$PATH"
退出 ~/.bashrc 文件后,重新加载bashrc文件:
source ~/.bashrc
2.在调试代码的过程中,发现可能是文件缓存的问题。我发现代码下载的数据集都是先存储到~/.cache,然后就尝试是否可以在大磁盘中新建一个cache文件,修改系统的默认cache文件为新的cache文件。事实证明这个思路是对的!
附:修改cache文件方法(参考[2]):
(1)在大磁盘中新建一个cache_new文件夹
mkdir /dachipan/.cache_new
(2).打开~/.profile,在末尾添加以下行:
export XDG_CACHE_HOME=/dachipan/.cache_new
(3).保存并关闭文件,运行以下命令使更改生效:
source ~/.profile
附:修改pip cache默认路径方法(参考[2],本次调试未用,仅做个记录):
(1).在大磁盘中创建一个新的目录用于存储pip cache文件:
mkdir /dachipan/.pip_cache_new
(2).打开~/.pip/pip.conf文件进行编辑(如果不存在,请创建该文件):
vim ~/.pip/pip.conf
(3).在文件中添加以下行:
[global]
cache-dir = ~/.pip_cache_new
(3)保存并关闭文件。
参考文献:
[1].安装anaconda到指定目录教程(Linux系统)
[2].修改Ubuntu的.cache和pip cache默认路径