📌 适用范围:本文档目前适用于 20 号服务器(Server20),其他服务器的配置可能存在差异,请以实际情况为准。
服务器管理员:Gavin Sun(gavinsun0921@foxmail.com),账号申请、权限问题、软件安装需求等请联系管理员。
首次使用前请重点阅读 第 2、3 章节,了解目录配额和环境管理规则,避免踩坑。
⚠️ 数据安全声明
服务器不提供任何数据备份服务。 所有数据均由用户自行管理,请务必对重要数据(代码、模型、实验结果等)做好异地备份(如 Git、移动硬盘、云存储等)。因磁盘故障、误删等原因导致的数据丢失,服务器管理员不承担责任。
1. SSH 连接服务器
1.1 基本连接方式
在终端中使用以下命令连接服务器:
ssh -p <port> username@server_ip
⚠️ 注意:服务器未使用默认的 22 端口,具体端口号请向管理员获取。
例如(假设端口号为 <port>):
ssh -p <port> zhangsan@192.168.1.11
首次连接时会提示确认指纹信息,输入 yes 后输入密码即可登录。
1.2 配置 SSH 免密登录
为了避免每次输入密码,可以配置 SSH 密钥登录:
# 1. 在本地机器生成密钥(如果还没有的话)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 2. 将公钥复制到服务器(需指定端口)
ssh-copy-id -p <port> username@server_ip
之后即可免密登录。
1.3 SSH 配置文件(推荐)
在本地 ~/.ssh/config 中添加以下配置,可以简化连接命令:
Host gpu20
HostName 192.168.1.100
User zhangsan
Port <port>
配置完成后,直接使用以下命令即可连接:
ssh gpu20
1.4 账号管理(NIS)
服务器采用 NIS(Network Information Service) 集中管理用户账号,因此部分操作命令与常规 Linux 系统不同:
| 操作 | 常规命令 | NIS 环境命令 |
|---|---|---|
| 修改密码 | passwd | yppasswd |
| 修改默认 Shell | chsh | ypchsh |
⚠️ 注意:使用
passwd和chsh在 NIS 环境下不会生效,请务必使用yppasswd和ypchsh。
2. 用户目录与存储管理
2.1 Home 目录与工作目录的关系
每个用户的 Home 目录位于 /home/username,通过 user quota 进行限额管理(软限制 30GB,硬限制 35GB)。
为了确保 Home 目录不被撑满,服务器已将以下两个大目录软链接到工作存储:
~/.cache -> /data/local_userdata/<username>/cache/
~/.conda -> /data/local_userdata/<username>/conda/
其中 /data/local_userdata/<username>/ 本身也是一个指向 /data1/local_userdata/<username>/ 的软链接,最终挂载在大容量数据盘上。
这意味着 Conda 环境和 Pip 缓存默认就已经存储在工作目录中,不会占用 Home 的配额(30GB / 35GB)。
你可以通过以下命令确认软链接是否已设置:
ls -la ~ | grep -E '\.cache|\.conda'
2.2 工作目录(/data/local_userdata)
主要的工作数据应存放在 /data/local_userdata/<username>/ 下。
系统已配置的目录(自动存在,无需手动创建)
| 目录 | 说明 |
|---|---|
cache/ | 对应 ~/.cache 的软链接目标,Pip 等工具的缓存放这里 |
conda/ | 对应 ~/.conda 的软链接目标,Conda 环境放这里 |
推荐用户自行创建的目录
/data/local_userdata/<username>/
├── datasets/ # 数据集
├── checkpoints/ # 模型权重
├── projects/ # 项目代码
├── experiments/ # 实验结果与日志
└── tmp/ # 临时文件
首次使用时按需创建:
mkdir -p /data/local_userdata/$USER/{datasets,checkpoints,projects,experiments,tmp}
2.3 注意事项
- Home 目录仅用于存放轻量配置文件(如
.bashrc、.ssh等),不要在 Home 下手动存放数据集、模型权重等大文件。 - 定期清理临时文件和不再使用的实验结果,存储空间是共享资源。
- 不要在
/tmp或系统目录下存放个人数据,系统重启后可能会被清除。
2.4 禁止事项
以下行为会影响服务器稳定性或其他用户的正常使用,请严格遵守:
- ❌ 不要修改系统级配置文件(
/etc/下的内容) - ❌ 不要使用
sudo或尝试获取 root 权限(除非经管理员授权) - ❌ 不要在服务器上运行与科研无关的高负载任务(如挖矿、游戏服务器等)
- ❌ 不要私自在系统层面安装软件(使用 Conda 在个人环境中安装即可)
- ❌ 不要长期空占 GPU 资源,训练完成后请及时释放
3. Conda 环境管理
3.1 系统 Conda 信息
服务器已预装 Miniforge,安装路径为:
/opt/miniforge/bin/conda
初始化脚本已配置在 /etc/profile.d/miniforge.sh,用户登录时会自动加载 Conda 环境变量,无需手动配置。
登录后验证 Conda 是否可用:
conda --version
3.2 创建个人环境
由于 ~/.conda 已被软链接到 /data/local_userdata/<username>/conda/,直接使用 -n 创建环境即可,环境会自动存储在工作目录中:
conda create -n myenv python=3.10 -y
激活环境:
conda activate myenv
3.3 环境管理常用命令
# 列出所有环境
conda env list
# 激活环境
conda activate myenv
# 退出当前环境
conda deactivate
# 导出环境配置
conda env export > environment.yml
# 从配置文件创建环境
conda env create -n newenv -f environment.yml
# 删除环境
conda env remove -n myenv
3.4 Pip 配置
同样,由于 ~/.cache 已被软链接到工作目录,Pip 的缓存默认不会占用 Home 配额,无需额外配置。
3.5 CUDA Toolkit 与 cuDNN 管理
⚠️ 重要:日常所说的"安装 CUDA 11.8"、“安装 CUDA 12.4"等,实际指的是 CUDA Toolkit(编译工具包),而非 CUDA Driver(驱动)。这是两个不同的东西。
- CUDA Driver:由服务器管理员维护,当前版本为 595.58.03,支持的最高 CUDA Toolkit 版本可通过
nvidia-smi查看。用户无需也不应修改驱动。 - CUDA Toolkit:包含
nvcc、libcudart、libcublas等编译和运行时库,服务器未在/usr/local下预装,用户需要在各自的 Conda 环境中自行安装。
创建带指定 CUDA Toolkit 的环境
# 创建环境并安装 CUDA Toolkit 12.4 及对应版本的 cuDNN
conda create -n myenv python=3.10 cuda-toolkit=12.4 cudnn -c nvidia -y
或在已有环境中安装:
conda activate myenv
conda install cuda-toolkit=12.4 cudnn -c nvidia -y
验证安装
# 检查 nvcc 版本
nvcc --version
💡 提示:如果你使用 PyTorch 等深度学习框架,它们通常自带预编译的 CUDA 运行时库,不需要单独安装 CUDA Toolkit。只有在需要从源码编译 CUDA 代码(如自定义算子)时才需要安装。
与已有教程的关联
如果你需要在无 ROOT 权限下手动安装 CUDA Toolkit(不通过 Conda),可参考本博客的另一篇文章:无ROOT权限在服务器安装CUDA和CUDNN教程。
4. GPU 使用规范
4.1 查看 GPU 状态
推荐使用 gpustat 查看 GPU 占用情况,输出更简洁直观:
gpustat
# 实时监控(每秒刷新)
gpustat -i 1
如需更详细的信息,可使用 nvidia-smi。
4.2 指定 GPU 运行程序
使用 CUDA_VISIBLE_DEVICES 环境变量指定使用哪张 GPU:
# 使用 0 号 GPU
CUDA_VISIBLE_DEVICES=0 python train.py
# 使用 0 和 1 号 GPU
CUDA_VISIBLE_DEVICES=0,1 python train.py
4.3 使用规范
- 训练前先用
gpustat查看 GPU 占用情况,避免与他人冲突。 - 长时间训练任务建议使用
tmux或screen保持会话,避免 SSH 断开导致任务中断。 - 训练完成后及时释放 GPU 资源,不要空占 GPU。
- 如需占用多张 GPU 或长时间运行,请提前在实验室群内告知。
5. 常见问题
Q: 提示 disk quota exceeded 怎么办?
A: Home 目录配额已满(软限制 30GB,硬限制 35GB),请检查 ~/.local、~/.npm 等未被软链接的隐藏目录,将其中的大文件迁移到 /data/local_userdata/$USER/ 下。可通过 quota -s 查看当前使用情况。
Q: SSH 连接断开后任务中断了怎么办?
A: 请使用 tmux 保持会话。tmux 可以让你的远程会话在 SSH 断开后继续运行。推荐以下教程学习:
Q: 多人同时使用 GPU 时如何协调?
A: 先用 gpustat 查看空闲 GPU,优先使用空闲卡;如需长时间占用多卡,请提前在群内沟通。
如有其他问题,请联系服务器管理员:gavinsun0921@foxmail.com。