【bash脚本】监控gpu内存使用情况

#!/bin/bash

# 日志文件路径
LOG_FILE="/path/to/logfile.log"

while true; do
    # 获取 GPU 设备列表
    GPU_LIST=$(nvidia-smi --query-gpu=index --format=csv,noheader,nounits)

    # 遍历 GPU 设备
    while IFS=',' read -r GPU_INDEX; do
        # 获取 GPU 内存使用情况
        MEMORY_INFO=$(nvidia-smi --id="$GPU_INDEX" --query-gpu=memory.total,memory.used --format=csv,noheader,nounits)

        # 解析内存信息
        TOTAL_MEMORY=$(echo "$MEMORY_INFO" | cut -d ',' -f 1)
        USED_MEMORY=$(echo "$MEMORY_INFO" | cut -d ',' -f 2)

        # 计算内存使用率
        MEMORY_USAGE_PERCENT=$(echo "scale=2; $USED_MEMORY / $TOTAL_MEMORY * 100" | bc)

        # 检查内存使用率是否超过阈值
        if (( $(echo "$MEMORY_USAGE_PERCENT > 75" | bc -l) )); then
            # 写入告警信息到日志文件
            echo "$(date +'%Y-%m-%d %H:%M:%S') - GPU $GPU_INDEX 内存使用率超过 75%: $MEMORY_USAGE_PERCENT%" >> "$LOG_FILE"
        fi
    done <<< "$GPU_LIST"

    # 每隔 5 分钟执行一次检测
    sleep 300
done

你可能感兴趣的:(linux,学习笔记,bash,ubuntu)