英伟达显卡资源监控shell脚本

编写shell脚本,使用方式 ./GPU.sh 3000 10

#!/bin/bash

# 判断nvidia-smi命令是否存在
/usr/bin/nvidia-smi > /dev/null
if [ $? -eq 0 ]
	then
	echo 'nvidia-smi check pass' `date`
else
	echo 'nvidia-smi not exists'
	exit 1
fi

if [ X$1 = X -o X$2 = X ]; then
	echo "  Error: Missing parameter"
	echo "  usage: ./monitor.sh 采集时长(秒) 采集间隔(秒) "
	echo "example: ./monitor.sh 300 10"
else
while ((i<$1/$2));do
    count=`nvidia-smi -L|wc -l`
	for ((j=0;j<$count;j++))
	do
		#GPU id
		uuid=`nvidia-smi -q -i $j|grep 'UUID'|awk '{print $4}'`
		#显存使用率
		usage=`nvidia-smi -q -d MEMORY -i $j|grep -E 'Total|Used'|head -2|awk '{print $3}'|xargs echo|awk '{print $2/$1}'`
		#内存详细信息
		detail=`nvidia-smi -q -d MEMORY -i $j|grep -E 'Total|Used|Free'|head -3|awk '{print $3}'|xargs echo`
		#GPU使用率
		vol=`nvidia-smi -q -d UTILIZATION -i $j |grep -A 5 "GPU Utilization"|tail -1|awk '{print $3}'`
		#GPU温度
		temp=`nvidia-smi -q -d Temperature -i $j|grep 'GPU Current'|awk '{print $5}'`
		dates=`date +%Y_%m_%d_%H:%m`
		result="GPU:"$uuid"     显存使用率:"$usage"    内存详细信息:"$detail"    GPU使用率:"$vol"    温度:"$temp"    时间:"$dates
		echo $result

		if [[ ! -f "result.txt" ]];then
			touch result.txt
		fi
		
		echo $result >> result.txt
	done
	let i++
	sleep $2
done
fi
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值