Linux监听空闲GPU,定时运行多卡并行python程序

【Linux shell命令】实验室监控空闲GPU,及时运行python代码程序 实验室监控空闲GPU,及时运行python等代码程序。主要是做到GPU及时抢占的功能,方便自己有GPU用。同时设计了一个定时检测GPU空闲状态的shell脚本。 阅读详情

1.介绍

本脚本功能主要用于在linux服务器中检查空闲GPU,定时运行python程序。

2.脚本

2.1环境配置

下载安装gpustat

pip install gpustat

2.2运行程序脚本

train_run.sh这是我们需要运行的多卡程序脚本,其中$1,$2 对应显卡编号

# #!/bin/bash
export PYTHONPATH=$PYTHONPATH:$(pwd)
CUDA_VISIBLE_DEVICES=$1,$2  torchrun --nproc_per_node=2 --master_port=29509 URF/run_test.py --dataroot=./dataset/train/URF --n_ep=1000 --n_ep_decay=800 --resume=./checkpoint/initial_weights_128.pth --stage=RF --batch_size=2 --name=ttt

2.3监听空闲GPU脚本

gpu_monitor.sh是监听脚本

while true
do
  # shellcheck disable=SC1060
  # stat1-stat8 对应显卡数量
  # $09表示gpustat查询到的显卡占用显存
  # '2p-9p' 表示显卡号 '2p' 对应第一张显卡,依此类推
  stat1=$(gpustat | awk '{print $09}' | sed -n '2p')
  stat2=$(gpustat | awk '{print $09}' | sed -n '3p')
  stat3=$(gpustat | awk '{print $09}' | sed -n '4p')
  stat4=$(gpustat | awk '{print $09}' | sed -n '5p')
  stat5=$(gpustat | awk '{print $09}' | sed -n '6p')
  stat6=$(gpustat | awk '{print $09}' | sed -n '7p')
  stat7=$(gpustat | awk '{print $09}' | sed -n '8p')
  stat8=$(gpustat | awk '{print $09}' | sed -n '9p')
  stat_arr=($stat1 $stat2 $stat3 $stat4 $stat5 $stat6 $stat7 $stat8)
  gpu_available=0
  gpu_available_index_arr=()
  # 得到空闲GPU的数量和对应的序号
  for i in ${!stat_arr[@]}
  do
     # 如果显存占用小于阈值(单位M),继续
    if [ "${stat_arr[$i]}" -lt 10000 ]
    then
      gpu_available=$[gpu_available+1]
      gpu_available_index_arr[${#gpu_available_index_arr[@]}]=$i
    fi
  done
  echo '-可用GPU数:'$gpu_available', 第'${gpu_available_index_arr[@]}'块GPU可用'
  # 如果GPU数大于指定数量,取指定数量GPU开始训练
  if [ $gpu_available -ge 2 ]
  then
    echo 'start running the code...'
    # 传值操作,即需要运行的代码脚本
    sh ./train_run.sh ${gpu_available_index_arr[0]} ${gpu_available_index_arr[1]}
    break # 防止下一次循环又重复运行上一行命令
  fi
  sleep 30 # 单位秒
done

运行命令bash gpu_monitor.sh

2.4定时启动脚本

time_run.sh是定时启动脚本

#!/bin/bash
# 2022年9月25日1点0分0秒 阈值时间
date="20220925-010000"

while true
do
 now="$(date "+%Y%m%d-%H%M%S")"
 echo '当前时间:' $now
 if [[ $date > $now ]]; then
    echo "$date > $now"
 elif [[ $date -eq $now ]]; then
    echo "$date == $now"
 else
    echo "$date < $now"
    # 执行GPU监控脚本
    bash gpu_monitor.sh
    break
 fi
 sleep 30
done

参考资料

  1. 【Linux shell命令】实验室监控空闲GPU,及时运行python代码程序
  2. shell中 -eq,-ne,-gt,-lt,-ge,-le数字比较符
16张B200才能跑的Kimi K3,8张AMD显卡就能装下? 大模型部署成本居高不下,参数规模动辄上万亿,传统方案往往依赖多张顶级GPU组成集群。混合专家(MoE)架构通过稀疏激活大幅降低实际计算量,配合量化、多卡流水线并行与显存卸载,让超大模型在更少硬件上运行成为可能。AMD平台凭借ROCm生态和充足显存,正成为高性价比的推理选择。对于本地部署实践者,掌握环境配置、Ollama调用方式和批量任务处理,是高效利用多卡资源的关键。本文从大模型稀疏化原理出发,拆解Kimi K3在8张AMD显卡上的部署逻辑,并给出完整的启动流程、性能观察和踩坑排查清单,帮助你在有限预算内跑 阅读详情

相关推荐

Windows三卡RTX3060部署Qwen3.6-32B-Q4_K_M实战

大语言模型本地推理依赖显存容量与PCIe带宽协同,而Windows平台因WDDM驱动限制、多GPU内存隔离及CUDA兼容性问题,长期难以高效利用多张消费级显卡。Qwen3.6-32B作为支持长上下文的高性能开源模型,需结合量化(如Q4_K_M)与跨卡显存池化技术,才能在单机多卡环境下突破显存碎片与带宽瓶颈。openclaw并非独立框架,而是针对Windows CUDA后端深度定制的调度增强方案,通过GPU分片策略、RoPE编码适配和驱动级内存管理,实现三张RTX 3060(共36GB显存)真正聚合使用。该方

weixin_30522095的博客 436

Python-监视GPU访问的Python脚本

Python脚本,用于在GPU空闲时监视GPU访问并管理外部程序

Python multiprocessing实战:CPU密集任务并行优化全指南

Python的multiprocessing模块是突破CPython全局解释器锁(GIL)限制、实现真正CPU并行的核心机制。其底层原理依赖进程隔离内存空间与跨进程通信(IPC),通过fork/spawn启动方式适配不同操作系统,规避线程共享内存失效问题。技术价值在于将计算密集型任务(如图像处理、数值计算)从单核串行解放至多物理核心并行执行,显著提升吞吐量。典型应用场景包括工业视觉检测、批量数据预处理、模型推理加速等。本文聚焦CPU-bound任务识别、共享内存优化、进程池调优及生产级容错设计,深度融合me

weixin_33889245的博客 544

shell监视gpu使用情况

shell 监视可用显存

iTom's blog 4383

NVIDIA vGPU License服务器及GPU驱动部署配置详解

一、背景 在Horizon Daas环境,因部分桌面虚拟机采用vGPU规格发布,因此环境中需要有GPU License服务器,完成对租户环境的GPU许可。 当配置有vGPU桌面虚拟机发起License授权请求后,授权服务器会根据License中所包含的GRID License版本,加载不同的vGPU驱动(普通驱动和专业Quodra卡驱动)。目前vPC和vApp的License对应加载的都是普通的显示驱动。 二、vGPU License服务器的工作原理 vGPU跟传统的GPU类似,具有固定数量的GPU帧缓冲器

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 5907

基于本地LLM与剪贴板监听,打造私有化AI实时翻译工具TransPaste

在实际跨语言工作流中,频繁切换窗口、复制粘贴到翻译网站再复制结果,是打断深度思考的常见痛点。一个理想的解决方案是:复制即翻译,粘贴即结果,整个过程无需离开当前应用窗口,并且能保证数据隐私,不将敏感内容上传至云端。这正是 TransPaste 这类剪贴板监听翻译工具的核心价值。它通过后台服务监听系统剪贴板变化,自动调用本地运行的大型语言模型进行翻译,并即时替换剪贴板内容,实现“无感”翻译体验。本文将以 TransPaste 为例,带你从零开始,完成环境准备、模型部署、软件配置、运行验证到排错优化的完整流程,让

weixin_30372371的博客 369

Linux——监控GPU集群显存并自动运行python训练脚本

可喜可贺,由于有时候模型的实验时间刚好结束在半夜,同时此时GPU闲置会造成极大的资源浪费,同时会降低实验的效率,因此!在借鉴了网上各路大佬的博文之后,整理了一般更适用于自身情况的shell,并以此分享记录~

Irving.Gao的博客 1885

AI助手成挖矿木马新渠道:GPU加密劫持攻击原理与防御指南

加密劫持是一种恶意利用受害者计算资源进行加密货币挖矿的攻击。其原理在于攻击者通过植入恶意脚本或程序,在用户不知情的情况下占用CPU或GPU进行哈希运算,为攻击者牟利。随着AI技术的普及,攻击手法发生了范式转移,从传统的网页脚本注入转向了更具隐蔽性的供应链投毒。攻击者利用用户对AI助手的高度信任,通过污染训练数据、制作恶意插件或构造诱导性对话,将挖矿木马精准投放到拥有高性能GPU的高价值目标环境中。这种新型攻击的技术价值在于其极高的隐蔽性和针对性,能有效绕过传统安全防护。其应用场景广泛,尤其威胁到数据中心、科

aome1470的博客 397

监控docker容器状态

监控docker容器状态脚本 一、创建监控脚本 二、创建钉钉告警脚本 三、创建服务列表文件 四、运行方式 方法1 方法2 五、查看脚本运行情况

weixin_43674090的博客 1325

GPU间通信原理与实战:从NCCL调优到硬件拓扑诊断

GPU间通信是分布式深度学习的底层基石,其本质是解决多卡协同中的数据同步问题,核心机制包括All-Reduce(梯度聚合)、Broadcast(参数分发)和Point-to-Point(流水线/MoE路由)。它并非简单依赖网卡带宽,而是由GPU显存访问、PCIe/NVLink主机内互联、RDMA网络(InfiniBand/RoCE)及NCCL等通信库四层协同决定。技术价值在于将物理算力真正转化为训练吞吐——实测显示NCCL优化可使All-Reduce延迟降低68%、有效带宽提升3.2倍。典型应用场景涵盖Py

weixin_30247781的博客 426

Rikkahub:无需复杂配置,快速导入AI角色卡并开启对话

AI角色扮演聊天是当前人机交互领域的热门应用,其核心在于通过前端界面加载角色设定,并调用后端大语言模型(LLM)生成符合角色性格的对话。这种架构实现了功能解耦,前端专注于用户体验和角色管理,后端则负责复杂的模型推理,从而降低了用户的使用门槛。对于希望快速体验不同角色、或搭建私有聊天环境的用户而言,一个轻量、易部署的前端工具极具技术价值。Rikkahub正是这样一款工具,它专注于解析和导入流行的“酒馆”格式角色卡(JSON文件),并通过Web界面提供聊天功能。其突出特点是开箱即用和低配置复杂度,用户只需准备好

weixin_34318326的博客 415

Linux中bash脚本监控GPU自启动python程序

bash脚本,监控GPU,自启动py文件

how_ever的博客 2075

开源桌面宠物项目实战:从零部署Python监督鱼到深度定制

桌面宠物应用是一种将图形界面与交互逻辑结合,常驻于操作系统桌面的轻量级程序。其核心原理通常基于事件驱动架构,通过监听用户输入事件(如鼠标、键盘活动)来触发预设的动画或反馈。这类技术的价值在于将抽象的行为(如专注工作)转化为具象、有趣的视觉交互,提升工具的情感化与趣味性。在应用场景上,它常被用于个人效率管理、编程学习练手或作为开源二次开发的入门项目。本文聚焦于一个典型的开源桌宠实例——蓝色监督鱼,它利用Python技术栈实现,具备工作监督逻辑,用户可通过修改源码轻松定制其外观与行为,是学习GUI编程和事件处理

weixin_30843605的博客 376

Linux系统shell脚本、python脚本编写

GPU排队脚本 GPU排队脚本 ---- GPU一旦空闲触发脚本执行程序 参考:GPU排队脚本(python脚本) cmd = 'bash run.sh' 该句设置要执行的python脚本 import os import sys import time cmd = 'bash run.sh' #设置运行的脚本 def gpu_info(): gpu_status = os.popen('nvidia-smi | grep %').read().split('|') gpu_.

jiangchao98的博客 3861

Linux下用Python CLI实现Quick Share文件传输

局域网文件传输是日常办公与开发中的高频需求,传统方式常依赖固定IP、账号或公网中转。Quick Share作为Android和ChromeOS的默认近距离分享协议,提供了一种本地直连的便捷方案,但Linux生态一直缺乏官方客户端。基于Python CLI的极简实现填补了这一空缺,它不依赖图形界面,通过命令行即可完成设备发现、安全握手与文件收发,适合无桌面服务器、树莓派及脚本化场景。本文从协议原理出发,介绍该工具的环境准备、安装部署、功能验证与自动化扩展方法,帮助用户在没有官方支持的Linux环境中,快速接入

weixin_30681615的博客 414

自用_英伟达Tesla V100 4张卡_每张卡32G显存共128G显存_使用ollama部署_并且使用Python编程代理程序实现_4卡并行_多出来的自动排队---AI大模型系统从零开始0040

设备:4 张 V100 32G 显卡,因显卡老旧不兼容新版 vLLM,放弃原生大并发推理; 方案核心:一卡单独启动一个独立 Ollama 进程,独占单卡显存、互不抢占,再用 Python 编写统一代理网关做负载均衡转发,实现 4 卡硬件级真并行,规避单 Ollama 多并发容易显存溢出、自动降级串行的问题。

添柴程序猿的专栏 450

CARLA快速启动包安装全指南:GPU、Python与端口避坑实战

CARLA模拟器作为自动驾驶研发的核心仿真平台,其快速启动包(Pre-compiled Binary)是算法工程师和教学实践者高效入门的关键路径。它基于Unreal Engine构建,依赖GPU渲染、Python客户端绑定和TCP网络通信三大技术支柱。理解其‘二进制分发+客户端-服务器分离’架构原理,可规避90%的环境配置失败;掌握GPU显存与驱动兼容性、Python解释器与pip路径一致性、2000/2001端口网络可达性等硬性门槛,能显著提升部署确定性;在高校课程、强化学习实验及控制算法验证等典型场景中

congmi8078的博客 520

scramble4gpu:抢占显卡-*-

scramble4gpu scramble4gpu是用来在抢占显卡的脚本,主要是在实验室显卡资源紧张且自己亟需使用显卡的情况下,使用该脚本自动抢占一个或多个显卡。 建议将scramble4gpu.py更改为train.py;防止被打... 依赖 numpy torch or tensorflow 使用 git clone https://github.com/ilikewind/scramble4gpu.git cd scramble4gpu python scramble4gpu.py 可选参数 -p --proportion 显卡空闲内存 / 全部内存 的阈值,取值在0-1之间。当p取1的时候,表示仅仅列出完全没有被使用的显卡。默认为0.8。 -n --gpu_nums 需要抢占的GPU数量,建议不要抢太多,容易挨揍。默认是1。 -t --times 抢占显卡之后,自动释放显卡的时间。

上一篇: SpringMVC数据绑定2-自定义类型转换器
记录bug的人
博客等级 码龄9年 1粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值