Dell服务器根据GPU温度调整风扇转速

4 篇文章 0 订阅
2 篇文章 0 订阅

前言

dell服务器自动风扇是根据CPU温度来调速的,我跑AI的时候cpu温度不高但是GPU温度很高导致显卡卡死PVE虚拟机直接挂起无法运行,我看了下也没有基于显卡温度调速的脚本,于是我就自己写了一个

先看看我显卡温度的范围

chen@chen:~$ nvidia-smi -q -i 0,1 -d TEMPERATURE

==============NVSMI LOG==============

Timestamp                                 : Sun Jun 16 11:12:04 2024
Driver Version                            : 470.82.01
CUDA Version                              : 11.4

Attached GPUs                             : 2
GPU 00000000:01:00.0
    Temperature
        GPU Current Temp                  : 57 C
        GPU Shutdown Temp                 : 93 C
        GPU Slowdown Temp                 : 88 C
        GPU Max Operating Temp            : N/A
        GPU Target Temperature            : N/A
        Memory Current Temp               : N/A
        Memory Max Operating Temp         : N/A

GPU 00000000:02:00.0
    Temperature
        GPU Current Temp                  : 44 C
        GPU Shutdown Temp                 : 93 C
        GPU Slowdown Temp                 : 88 C
        GPU Max Operating Temp            : N/A
        GPU Target Temperature            : N/A
        Memory Current Temp               : N/A
        Memory Max Operating Temp         : N/A

因为我是双核心的显卡,所以我指定了0和1的核心

从输出中,“GPU Shutdown Temp”指的是GPU的自动关机温度阈值。当GPU温度达到或超过这个阈值时,系统会自动将GPU关机以防止过热损坏硬件。GPU的自动关机温度阈值是93摄氏度

基于ipmi工具 乌班图等linux先安装ipmi

apt install -y ipmitool

然后到idrac远程管理中的网络选项中打开 IPMI 设置

基础 

#关闭自动调速
ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x01 0x00 

ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x23

#80%转速
ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x50

最后的0x50是80的十六进制,也就是设置转速为80%

请注意要手动调速请先关闭自动调速,不然不会生效

自动脚本

下面是我写的自动脚本,写的比较差凑合用 (修改ipmi的参数为自己服务器的)

#!/bin/bash
# GPU个数
gpu_count=2
current_time=$(date "+%Y-%m-%d %H:%M")
users="chen"
max_temperature=0  # 用于记录最高的GPU温度
max_temperature_gpu=0  # 用于记录最高温度的GPU编号

# 遍历每个GPU,获取温度并记录最高温度的GPU编号和温度值
for ((i=0; i<gpu_count; i++))
do
    # 获取第i个GPU的温度
    temperature=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | sed -n "${i+1}p")

    if [ $temperature -gt $max_temperature ]; then
        max_temperature=$temperature
        max_temperature_gpu=$i
    fi
done
# 根据最高温度的GPU进行对应的调速操作
if [ $max_temperature -gt 85 ]; then
    # 设置风扇速度为100%
    ipmitool -I lanplus -U root -P xxx -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x64 && echo "$current_time - GPU $max_temperature_gpu 温度$max_temperature 过高 风扇转速已调整为100%" >> /home/$users/ipmi.log
elif [ $max_temperature -gt 72 ]; then
    # 设置风扇速度为80%
    ipmitool -I lanplus -U root -P xxx -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x50 && echo "$current_time - GPU $max_temperature_gpu 温度$max_temperature 过高 风扇转速已调整为80%" >> /home/$users/ipmi.log
else
    # 设置风扇速度为50%
    ipmitool -I lanplus -U root -P xxx -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x32 && echo "$current_time - GPU $max_temperature_gpu 温度$max_temperature过高 风扇转速已调整为50%" >> /home/$users/ipmi.log
fi

crontab 设置10秒运行一次

* * * * * sleep 10; /home/chen/ipmi-gpu.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java-superchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值