找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 25759|回复: 228

对玩客云docker版armbian系统进行降频保温,动态调整主频。完美解决高温死机现象。

 火... [复制链接]
发表于 2021-11-10 20:26 | 显示全部楼层 |阅读模式
本帖最后由 岁月的牵绊 于 2022-2-24 07:00 编辑

【此帖已更新】玩客云在运行docker过程中时不时出现假死现象。每次都要去插拔电源,很繁琐!

通过调整CPU的的命令 cpufreq-set ,写个脚本每6秒钟看下温度,高于46就降频,低于42就升频【具体的值可根据自己的需求调整】
完美解决死机问题!稳定运行。但是会影响下载速度,时快时慢!介意者勿用!

贴上我现在使用的docker版armbian系统,玩客云1.0的主板。

附带编译者的下载地址:
链接:https://pan.baidu.com/s/132mbd05DE9wqYoRiw4dA4Q
提取码:5wxi
我仅把docker_armbian镜像文件搬到了阿里云盘,需要的回复自取。
阿里云盘链接:
https://www.aliyundrive.com/s/t4SdthKB5KU请下载完后把文件后缀名【.exe】删除,正确的文件后缀名应该为【.img】
提醒:
该方法仅适用已经安装好了cpufrequtils软件包的Linux系统使用,如armbian系统,目前openwrt系统不适用!

一、准备工作
1、查看系统是否已安装cpufrequtils
  1. cpufreq-set -h
复制代码
如果出现错误提示:cpufreq-set:command not found
请自行查找安装cpufrequtils的方法,本帖不提供安装教程!!!
2、查看cpu信息,确认cpu的可用频率范围。
  1. cpufreq-info
复制代码

3、查看CPU支持的调频机制,确定是否支持ondemand。上面的命令也可以查看。
  1. cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
复制代码
备注:
1.powersave 是无论如何都只会保持最低频率的所谓“省电”模式;
2.userspace 是自定义频率时的模式,这个是当你设定特定频率时自动转变的;
3.ondemand 默认模式。一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;
4.conservative 保守模式,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;
5.performance 只注重效率,无论如何一直保持以最大频率运行。
6.schedutil 基于调度程序调整 CPU 频率。

4、查看当前CPU调频机制是否为ondemand
  1. cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
复制代码
#如果不是请设置cpu调频机制为ondemand
  1. cpufreq-set -g ondemand
复制代码

二、编写cpu-control.sh动态调整主频脚本【也可以本地编辑好再用ftp上传到sbin文件夹】
  1. vi /usr/sbin/cpu-control.sh
复制代码
复制下面带灰底的代码:
#可根据脚本自行调整温度和频率值
------------------------------------------

#!/bin/sh
#脚本功能:每过6秒检测一次,当cpu温度低于42℃时,调整cpu频率为400MHz-1540MHz之间;高于46℃时,调整cpu频率为400MHz-800MHz之间。
#引入i、j变量,防止重复执行调频命令。
i=1 #低温提高主频
j=0 #高温降低主频
while true
do
   
set -- $(cat /sys/class/thermal/thermal_zone0/temp \
             /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
    TEMP=$1
    GOVERNOR=$2
    if [ "$TEMP" -le 42000 ] && [ "$GOVERNOR" = "ondemand" ] && [ $i -eq 1 ]; then
        cpufreq-set -d 400MHz -u 1540MHz
        echo "已升频"
        i=0
        j=0
    fi
   
    if [ "$TEMP" -ge 46000 ] && [ "$GOVERNOR" = "ondemand" ] && [ $j -eq 0 ]; then
        cpufreq-set -d 400MHz -u 800MHz
        echo "已降频"
        i=1
        j=1
    fi
   
    echo "当前cpu温度:" $(($TEMP / 1000))"℃"
    echo $i $j "【提示:1 1处于降频状态;0 0处于升频状态;1 0处于初始状态】"
   
sleep 6
done


----------------------------
vi使用提示
进入编辑:按字母i
退出保存:按Esc键,再输入:wq
不保存退出:按Esc键,输入:q!
上面的冒号不能少!!!

三、测试脚本是否运行正常

进入sbin文件夹
  1. cd /usr/sbin/
复制代码
给cpu-control.sh文件添加可执行权限
  1. sudo chmod -R 755 cpu-control.sh
复制代码
运行cpu-control.sh,按住ctrl+c退出运行
  1. ./cpu-control.sh
复制代码

另再开两个ssh窗口连接设备,对cpu进行压力测试以及监控cpu使用率
  1. cat /dev/urandom | md5sum
复制代码
在另一个窗口中执行命令,动态查看cpu温度和主频
  1. armbianmonitor -m
复制代码
如下图测试效果:

ctrl+c退出运行,结束测试。

四、设置cpu-control.sh为开机自启动
  1. vi /lib/systemd/system/cpu-control.service
复制代码
复制下面的代码:

[Unit]
#服务描述
Description=CPU Governor Control by Temperature

[Service]

#执行命令
Type=simple
ExecStart=/bin/sh /usr/sbin/cpu-control.sh

[Install]
WantedBy=multi-user.target




重载服务
  1. systemctl daemon-reload
复制代码
使用systemctl命令来控制cpu-control.service
#启动
  1. sudo systemctl start cpu-control.service
复制代码
#关闭
  1. sudo systemctl stop cpu-control.service
复制代码
#重启
  1. sudo systemctl restart cpu-control.service
复制代码
#查看状态
  1. sudo systemctl status cpu-control.service
复制代码

#如上图:说明服务正常。
#设置开机自动启动

  1. sudo systemctl enable cpu-control.service
复制代码
关闭开机自动启动
  1. sudo systemctl disable cpu-control.service
复制代码
查看服务是否开机启动
  1. sudo systemctl is-enabled cpu-control.service
复制代码
查看cpu-control进程
  1. ps aux|grep cpu-control| grep -v grep
复制代码
结束cpu-control进程
  1. kill -9 12345(显示的进程号pid,第一个就是)
复制代码
欢迎大家试水!!!体验一次不死机的玩客云。

参考地址:https://blog.csdn.net/wangrui1573/article/details/118577968
侵权删!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-11 08:58 | 显示全部楼层
我来试试水,楼主,你这个固件可以写入emmc 吗?
回复 支持 反对

使用道具 举报

发表于 2021-11-11 09:22 | 显示全部楼层
楼主,你是一个大好人!!
回复 支持 反对

使用道具 举报

发表于 2021-11-11 09:39 | 显示全部楼层
。。。为啥提取码跟我经常用的用户名或者昵称一样
回复 支持 反对

使用道具 举报

发表于 2021-11-11 10:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2021-11-11 12:16 | 显示全部楼层
这个我参考着也写了,但是作者这个开机启动服务是不对的,我自己优化了一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

你好,请问是哪里出错了,到时候改一下。但我的玩客云这样设置能正常开机启动,不太清楚其他人的  详情 回复 发表于 2021-11-12 00:31
回复 支持 反对

使用道具 举报

发表于 2021-11-11 13:46 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2021-11-11 16:16 | 显示全部楼层
armbian是直刷包吗?  试试
回复 支持 反对

使用道具 举报

发表于 2021-11-11 19:21 | 显示全部楼层
自启动有错误?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-12 00:31 | 显示全部楼层
58285474 发表于 2021-11-11 12:16
这个我参考着也写了,但是作者这个开机启动服务是不对的,我自己优化了一下

你好,请问是哪里出错了,到时候改一下。但我的玩客云这样设置能正常开机启动,不太清楚其他人的
回复 支持 反对

使用道具 举报

发表于 2021-11-12 03:00 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2021-11-12 03:17 | 显示全部楼层
看看      
回复 支持 反对

使用道具 举报

发表于 2021-11-12 08:03 | 显示全部楼层
思考一下。
回复 支持 反对

使用道具 举报

发表于 2021-11-12 09:14 | 显示全部楼层

思考一下。
回复 支持 反对

使用道具 举报

发表于 2021-11-12 12:27 | 显示全部楼层
测试一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-7-3 07:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表