在GPU服务器上运行大模型(如LLM、扩散模型等)时,为了最大化性能和稳定性,对Ubuntu系统进行合理的优化配置至关重要。以下是针对这类场景的系统级优化建议:
一、系统基础优化
1. 使用合适的Ubuntu版本
- 推荐使用 Ubuntu 20.04 LTS 或 Ubuntu 22.04 LTS
- 长期支持,驱动兼容性好
- CUDA 和 PyTorch/TensorFlow 官方支持充分
2. 更新系统并关闭无关服务
sudo apt update && sudo apt upgrade -y
关闭不必要的服务(如蓝牙、打印、GUI桌面等):
sudo systemctl disable bluetooth.service
sudo systemctl disable cups.service
# 如果是纯服务器,建议安装最小化系统或禁用图形界面
sudo systemctl set-default multi-user.target # 禁用图形启动
3. 调整文件句柄和进程数限制
编辑 /etc/security/limits.conf:
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
root soft nofile 65536
root hard nofile 65536
确保 /etc/pam.d/common-session 包含:
session required pam_limits.so
二、内核与调度优化
1. 使用高性能CPU调度策略
# 设置CPU调度为 performance 模式
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
可安装 cpufrequtils 并设置开机生效。
2. 内核参数调优(/etc/sysctl.conf)
# 提高网络和内存性能
vm.swappiness=10
vm.vfs_cache_pressure=50
vm.dirty_ratio=15
vm.dirty_background_ratio=5
# 增加共享内存(对多进程数据加载重要)
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
# 网络优化(适用于分布式训练)
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
应用配置:
sudo sysctl -p
三、NVIDIA GPU 配置优化
1. 安装最新稳定版 NVIDIA 驱动
推荐使用官方 .run 文件或通过 ubuntu-drivers 自动安装:
sudo ubuntu-drivers autoinstall
验证安装:
nvidia-smi
2. 安装 CUDA Toolkit 和 cuDNN
- 从 NVIDIA官网 下载对应版本
- 推荐使用 CUDA 11.8 或 12.x(根据PyTorch/TensorFlow版本选择)
注意:不要使用系统包管理器安装CUDA,容易版本混乱。
3. 启用 NVIDIA Persistence Mode
防止GPU状态频繁切换,提升响应速度:
sudo nvidia-smi -pm 1
4. 设置 GPU 计算模式(多用户环境)
sudo nvidia-smi -c EXCLUSIVE_PROCESS # 或 DEFAULT
5. 监控与调优工具
安装 nvidia-ml-py, nvtop, gpustat:
pip install gpustat nvitop
四、存储与I/O优化
1. 使用高速存储(NVMe SSD)
- 将数据集、缓存、swap 放在SSD上
- 避免HDD瓶颈
2. 启用 tmpfs 缓存(可选)
对于小数据集,可将临时数据放内存中:
sudo mount -t tmpfs -o size=64G tmpfs /mnt/ramdisk
3. 文件系统选择
- 使用 XFS 或 ext4(推荐 XFS 处理大文件更高效)
- 格式化时启用大文件支持:
mkfs.xfs -f /dev/nvme0n1
4. 数据预取与I/O调度
# 设置 I/O 调度器为 none 或 deadline(NVMe 推荐 none)
echo 'none' | sudo tee /sys/block/nvme0n1/queue/scheduler
五、Python环境与深度学习框架优化
1. 使用 Conda/Mamba 管理环境
# 推荐 mamba 替代 conda,速度快
conda install mamba -n base -c conda-forge
2. 安装正确的 PyTorch/TensorFlow 版本
确保与CUDA版本匹配:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
3. 启用 PyTorch 优化选项
# 在代码中启用
torch.backends.cudnn.benchmark = True
torch.backends.cuda.matmul.allow_tf32 = True # A100等支持TF32
torch.set_float32_matmul_precision('high') # PyTorch 2.0+
4. 使用 DataLoader 优化
- 设置
num_workers > 0 - 使用
pin_memory=True - 考虑使用
torch.utils.data.ChainDataset或IterableDataset流式加载
六、安全与监控
1. 安装监控工具
# GPU + CPU + 内存监控
pip install psutil GPUtil
# 或部署 Prometheus + Grafana + Node Exporter + DCGM
2. 日志与告警
- 记录训练日志到独立磁盘
- 设置OOM Killer监控:
dmesg -T | grep -i "killed process"
3. 定期备份关键数据
- 模型权重、配置文件、日志
七、其他建议
| 项目 | 建议 |
|---|---|
| Swap空间 | 设置为RAM的10%~20%,避免OOM |
| 时间同步 | 使用 chrony 或 ntpd |
| SSH安全 | 修改端口、禁用root登录、使用密钥认证 |
| 分布式训练 | 配置RDMA(InfiniBand)、NCCL优化 |
总结:关键检查清单
✅ Ubuntu LTS 版本
✅ 最新NVIDIA驱动 + 匹配CUDA
✅ 关闭不必要的系统服务
✅ 调整内核参数(swappiness, shmmax)
✅ 使用高性能CPU/GPU调度
✅ NVMe存储 + 合理文件系统
✅ 正确配置PyTorch/CUDA环境
✅ 启用cuDNN、TF32、AMP等提速特性
✅ 部署监控与日志系统
通过以上配置,可以显著提升大模型训练/推理的效率和稳定性。实际配置需根据硬件(如A100/H100集群)、模型规模(7B/70B)和任务类型(训练/推理)进一步微调。
CDNK博客