Linux 服务器 gpu 风扇控制,无桌面
创始人
2024-09-26 00:52:13

linux 服务器因为没有安装桌面,gpu 风扇转速控制一直失败,搞了几天终于成功了,记录一下。

1、使用 nvidia-settings 需要开启一个 X server 才能使用

#开启一个X server X :1 &\  # 要关闭的话,用ps查找id, 手动kill  ps -fC Xorg sudo kill pid 

2、 然后更改 GPU 状态和风扇转速

nvidia-settings --display :1.0 -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=60" #或者 nvidia-settings --display :1.0 -a "[gpu:1]/GPUFanControlState=1" -a "[fan:1]/GPUTargetFanSpeed=60"  

修改之前
image.png
修改后
image.png

3、写一个自动控制的脚本时刻监测温度,并修改风扇转速

sudo mkdir /opt/cool_gpus/ sudo vim /opt/cool_gpus/cool_gpus.sh 
#!/bin/bash cd $(dirname $0) X :1 &\ # 检查是否有无限运行的参数 run_forever=1   # 设置日期格式 date_format="+%Y-%m-%d %H:%M:%S"  # 定义日志文件,文件名包含当前日期 log_file="gpu_fan_log_$(date "+%Y%m%d").txt"  # 循环直到脚本被告知停止 while : ; do     # 获取所有NVIDIA GPU的数量     gpu_count=$(nvidia-smi -L | wc -l)      # 为每个GPU设置风扇速度     for (( gpuid=0; gpuidgpuid})          # 根据温度确定目标风扇速度         if [ "$temp" -lt 30 ]; then             target=20         elif [ "$temp" -lt 40 ]; then             target=30         elif [ "$temp" -lt 50 ]; then             target=40         elif [ "$temp" -lt 60 ]; then             target=50         elif [ "$temp" -lt 70 ]; then             target=60         elif [ "$temp" -lt 75 ]; then             target=70         elif [ "$temp" -lt 80 ]; then             target=80         elif [ "$temp" -lt 85 ]; then             target=95         else             target=99         fi          # 输出当前温度和目标风扇速度,并将输出重定向到日志文件         echo "$(date "$date_format") - GPU ${gpuid}: Current temperature is ${temp} C. Setting fan speed to ${target}%." >> $log_file          # 设置当前GPU的风扇速度         nvidia-settings --display :1.0 -a "[gpu:${gpuid}]/GPUFanControlState=1" -a "[fan-${gpuid}]/GPUTargetFanSpeed=${target}"     done     # 检查是否设置为无限运行     if [ "${run_forever}" -ne 1 ]; then         break     fi      # 等待一定时间再次检查     sleep 15 done 

4、 添加权限

sudo chmod +x /opt/cool_gpus/cool_gpus.sh 

5、设置开机自启

首先,创建一个新的systemd服务文件。这个文件通常位于/etc/systemd/system目录下,文件名以.service结尾。我们创建一个名为gpu_fan_control.service的文件:

sudo vim /etc/systemd/system/gpu_fan_control.service 

输入下面的内容

[Unit] Description=GPU Fan Control Script  [Service] ExecStart=/opt/cool_gpus/cool_gpus.sh  [Install] WantedBy=multi-user.target 

保存后关闭文件,加在配置文件

sudo systemctl daemon-reload 

开机启动

sudo systemctl enable gpu_fan_control 

立即启动

sudo systemctl start gpu_fan_control 

检查状态

sudo systemctl status gpu_fan_control 

相关内容

热门资讯

原创 中... 在阅读文章前,辛苦您点下“关注”,方便讨论和分享。作者定会不负众望,按时按量创作出更优质的内容 文...
影石创新遭巨头“密集攻击”?刘... 来源:市场资讯 (来源:达摩财经) 影石创新日前正式发布全球首款全景无人机“影翎Antigravi...
欧盟调查谷歌利用网络内容支持A... 新华社布鲁塞尔12月9日电(记者丁英华 张兆卿)欧盟委员会9日宣布,对美国谷歌公司利用网络内容为其人...
圣奥化学公布新型绿色防老剂SA... 来源:市场资讯 (来源:中国化工信息周刊) 关键词 | 圣奥化学SA6000开发进展 共 1064字...
人工智能也有“真香定律”!从科... 潮新闻客户端 记者 谢春晖 通讯员 姜慧君 方临明 人工智能浪潮奔涌。从率先布局抢占赛道先机,到...