📌 适用范围:本文档目前适用于 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 环境命令
修改密码passwdyppasswd
修改默认 Shellchshypchsh

⚠️ 注意:使用 passwdchsh 在 NIS 环境下不会生效,请务必使用 yppasswdypchsh


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:包含 nvcclibcudartlibcublas 等编译和运行时库,服务器未在 /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 占用情况,避免与他人冲突。
  • 长时间训练任务建议使用 tmuxscreen 保持会话,避免 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