在多个GPU服务器上运行相同命令是常见需求。比如批量更新系统、部署训练环境或检查状态。如果开多个终端窗口逐个操作,效率很低。
广播输入功能
最近发现Termius的广播输入(Broadcast Input)功能可以将我的键盘输入同时发送到多个终端。在分屏视图中打开多个 SSH 连接,启用广播输入后,输入一次命令就能在所有服务器上同时执行,并显示运行结果。
实际应用
批量环境部署
# 在8台服务器上同时安装深度学习环境
conda create -n expname python=3.9 -y
conda activate expname
pip install torch==2.0.1 transformers datasets
批量状态检查
# 同时查看所有服务器的GPU使用情况
nvidia-smi
# 持续检测系统信息
dool -cdngyltm --disk-util --disk-tps --fs 1
文件操作
# 批量创建实验目录
mkdir -p runs/qwen_$(date +%Y%m%d)
# 批量清理日志
rm -rf runs/*/logs/*.log
一些细节
单个视图最多支持 16 个终端
可以随时开关广播功能
可以通过Focus mode切换到单终端操作
注意事项
每个终端处理速度不同,要等所有终端都完成上一个命令,再输入下一个
注意不同服务器的配置可能有差异(CUDA版本、路径等)
其他选择
pssh: 适合脚本化的批量操作
tmux synchronize-panes: 终端化的替代方案
ansible: 复杂的配置管理
总结
图形化操作的Termius终端广播输入,配置和管理几台服务器还挺方便的。