linuxGPU空闲时运行代码:
为了抢占稀缺GPU资源,
通过bash代码实时监控,空闲时自动运行程序。
- 新建wg.sh文件
- copy以下代码
- 挂起,运行: nohup bash wg.sh > log_watch_gpu.log 2>&1 &
(第三步注意挂起和bash文件路径要一致)
以下代码是监控当前linux服务器GPU空闲状态,并当空闲时自动运行需要的代码。
需要修改file为你想显卡空闲时运行的文件地址
还需要修改b的值,代表多大空余时运行。我设置的是0.4
res 表示监控显卡现在的占用比例
以下是完整代码
最后一列注释掉的代码是 挂起命令,关闭服务器端口仍然执行监控
更新,之前res没写在循环里 ,没有更新显存大小。
现在将res写入循环
res=$(nvidia-smi | \
grep -E "[0-9]+MiB\s/" | \
sed "s/^|//" | \
awk '{print ($8" "$10)}' | \
sed "s/\([0-9]\{1,\}\)MiB \([0-9]\{1,\}\)MiB/\1 \2/" | \
awk '{print $1/$2}')
echo $res
b=0.4
sta=`expr $res \< $b`
while [ $res>0 ];
do
res=$(nvidia-smi | \
grep -E "[0-9]+MiB\s/" | \
sed "s/^|//" | \
awk '{print ($8" "$10)}' | \
sed "s/\([0-9]\{1,\}\)MiB \([0-9]\{1,\}\)MiB/\1 \2/" | \
awk '{print $1/$2}')
sta=`expr $res \< $b`
if [ $sta -eq 1 ];
then
do
file='xxx.py'
echo '准备运行:'
echo $file
echo '现阶段占用情况:'
echo $res
python $file
break
fi
done
# nohup bash gpu_watch.sh > lwatch_gpu.log 2>&1 &
file 改成文件的绝对地址,file内的代码 文件都需要绝对路径,相对路径要和bash文件一致。
linuxGPU空闲时发送邮件:
Ubuntu系统安装
sudo apt-get install mailutils
安装选择internet site
安装完毕,发送个文件测试一下
echo "hi 测试邮件是否发送成功"$res | mail -s "Subject" xxxx@xxx.com
QQ邮箱收不到。我用163能收到。


- 新建wg.sh文件
- copy以下代码
- 挂起,运行: nohup bash wg.sh > log_watch_gpu.log 2>&1 &
res=$(nvidia-smi | \
grep -E "[0-9]+MiB\s/" | \
sed "s/^|//" | \
awk '{print ($8" "$10)}' | \
sed "s/\([0-9]\{1,\}\)MiB \([0-9]\{1,\}\)MiB/\1 \2/" | \
awk '{print $1/$2}')
echo $res
b=0.2
# 判断显存占用是否大于0.2
while [ $res>0 ];
do
sta=`expr $res \< $b`
res=$(nvidia-smi | \
grep -E "[0-9]+MiB\s/" | \
sed "s/^|//" | \
awk '{print ($8" "$10)}' | \
sed "s/\([0-9]\{1,\}\)MiB \([0-9]\{1,\}\)MiB/\1 \2/" | \
awk '{print $1/$2}')
if [ $sta -eq 1 ];
then
echo "4090显存占用情况"$res | mail -s "Subject" maoo11234@163.com
file='/xxx/绝对路径.py'
echo '准备运行:'
echo $file
echo '现阶段占用情况:'
echo $res
nohup python $file > /xxx/xxx/xxx/log_xxx.log 2>&1 &
echo "4090开始跑xxx"$res | mail -s "Subject" xxxx@xxx.com
break
fi
done
# nohup bash wg.sh > lwatch_gpu.log 2>&1 &
文章讲述了如何在Linux系统中使用bash脚本监控GPU的使用情况,当GPU空闲时自动运行指定的Python脚本,并通过邮件通知占用状态和运行结果。作者提供了详细的步骤和代码示例,包括使用`nvidia-smi`命令获取GPU占用信息,以及通过`mail`命令发送邮件到指定邮箱。
1288

被折叠的 条评论
为什么被折叠?



