【AutoDL】云服务器配置指南
文章目录
- 0. 引言
- 1. 连接
- 2. 创建user权限用户
- 3. 空间管理
- 3.1. miniconda安装
- 3.2. pip修改cache dir
0. 引言
AutoDL是一个云服务器租赁平台。相较于其他几家云服务器租赁平台,好处主要有以下几点:
- 具备学术资源加速功能
- 有公开数据集可供下载
- 可以随时升降GPU和数据盘的配置
- 提供的数据存储盘(注意是可扩容的数据盘)是SSD,读写快
当然坏处也是有的,但几乎是每个云服务器商都有的问题:
- 按小时租赁的实例在GPU不充足时无法带GPU启动
- 限定了每个实例可以扩容的最大数据盘容量
本文是一个【AutoDL】的简易版入门教程及其踩坑指南,详细版请参考官网教程。主要解决Python用户部署深度学习框架时可能踩的坑,例如频繁输入秘钥登录、使用root用户创建Python环境时频繁收到警告、在系统盘安装conda环境导致系统盘不够用等情况。
1. 连接
官网在创建实例后会提供ssh的端口号和密码,如下图所示:
容器实例入口 | ssh登录 |
---|---|
![]() | ![]() |
但如果每次登录都需要输入密码,非常费时也不安全。这里提供一种公钥登录的方式。
选择【设置密钥登录】,复制本地的公钥,然后上传即可。
本地创建公钥的简易代码如下:
ssh-keygen -t rsa
后面指定公钥-私钥对的名称和密码(可以设为空)
然后将~/..ssh/xxx.pub
文件取出:
cat ~/.ssh/xxx.pub
结果复制到上述的公钥上传入口即可。
公钥配置好之后,可以配置一下VSCODE的Remote-ssh,详见VSCODE官网教程,也可以参考下面的简易版:
首先需要复制下官网提供的ssh命令(登录指令 ssh*****),一般为:
ssh -p xxxx root@connect.xxxx.seetacloud.com
其中-p
后依次为连接的端口号,连接的user@address,address可以是ip地址也可以是域名。对应的VSCODE的Remote-SSH的配置如下。
首先在VSCODE输入Ctrl + P
调出状态栏,输入> remote-ssh
,
Open SSH Configuration File调出配置文件(任意一个即可)。在打开的配置文件添加如下Host:
Host autodl-4090HostName connect.xxxx.seetacloud.com # 主机的域名/IP地址User xxxx # 用户名,AutoDL默认是rootPort xxxxx # 端口号,ssh命令的-pIdentityFile ~/.ssh/xxx # 刚刚配置的私钥文件(没有.pub后缀的那个),不写这行的话不影响使用,只是系统会一一尝试匹配
下次登录的时候只需要在VSCODE输入Ctrl + P
调出状态栏,输入> remote-ssh
,调出Remote-ssh的连接功能即可:
这个时候会弹出之前配置的config名称autodl-4090
,选择即可自动连接。在配置公钥的情况下,不再需要输入密码登录AutoDL云服务器。
具体的Remote-ssh文件的使用过程详见这个文档。
搜不到remote-ssh
命令可能是本地没有在插件商店安装Remote-ssh:
2. 创建user权限用户
【AutoDL】默认给的ssh通道是root账户,而直接使用root账户安装pip包会报root权限的warning,长期使用也存在安全隐患。这里提供一种使用root账户创建新账户的方法:
adduser username
username
是新用户的名称,一般这条命令就会让输入Password
,如果没有出现,可以使用以下命令:
passwd username
如果需要让username可以随时使用root权限(即sudo命令),则需要将新用户添加到sudo组
usermod -aG sudo username
注意,有时候云服务器没有sudo命令,需要安装一个,在root用户权限下:
apt-get update
apt-get install sudo
安装完成之后,即可切到新创建的user用户下:
su - username
注意,如若下次使用user权限用户登录时,在配置Remote-SSH的config文件时,User xxxx
那一栏需要改成设定的username
。
参考链接:Ubuntu系统root创建用户
3. 空间管理
本节适用于conda环境占用空间较大的【AutoDL】用户;如果这些conda环境都安装在系统盘,30G的系统盘很可能会不够用导致环境安装失败。解决方案是修改conda的安装路径和pip的缓存路径,缺陷是需要给user用户开启读写权限(最好在前文添加用户时给了用户sudo权限)。
chmod 755 -R /root/autodl-tmp/
这样就给了用户数据盘读权限,用户如果需要在这一层创建文件夹则需要使用sudo
命令,而不在根目录的子文件夹内则不需要再使用sudo
命令。
对于个人使用的安全环境,也可以使用chmod 777
给数据盘赋全部用户权限。
3.1. miniconda安装
miniconda最好安装在/root/autodl-tmp
目录下,因为这个是数据盘,扩容后有充足的环境装conda环境,否则很可能面临系统盘超额使用。
export CONDA_HOME=/root/autodl-tmp/miniconda3
mkdir -p $CONDA_HOME
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O $CONDA_HOME/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p $CONDA_HOME/miniconda3
rm $CONDA_HOME/miniconda.sh
将conda环境直接装在数据盘的好处是,后面直接使用conda create -n xxx
命令创建的conda环境都在$CONDA_HOME
下,而不再需要conda create -p xxx
进行路径安装。
对于已经conda已经安装在/home/user/
或者/root/
下的情况,仍然可以通过conda create -p xxx
的方式将其他conda环境创建在数据盘。
参考链接:miniconda3官网的installation教程
3.2. pip修改cache dir
在某个conda环境下执行pip install
命令仍然会在系统盘产生存储,原因是安装时的cache目录在系统盘。
如果需要将pip的缓存目录转移到数据盘/root/autodl-tmp/
,则需要通过以下命令修改:
pip config set global.cache-dir "/root/autodl-tmp/.cache/pip"
当然修改后需要保证这个目录是存在的,如果没有可以建一个:
mkdir -p /root/autodl-tmp/.cache/pip
以下是一些常用的pip cache
命令的补充:
pip cache dir
查看pip的缓存空间,一般为/home/xxx/.cache/pip
,如果是root用户,则为/root/.cache/pip
。这两个路径都在系统盘。pip cache info
查看pip使用的cache空间pip cache purge
删除pip的所有缓存。
参考博客:pip修改cache路径