找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 24658|回复: 217

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

 火... [复制链接]
本帖最后由 岁月的牵绊 于 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
侵权删!



本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
我来试试水,楼主,你这个固件可以写入emmc 吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主,你是一个大好人!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

。。。为啥提取码跟我经常用的用户名或者昵称一样
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个我参考着也写了,但是作者这个开机启动服务是不对的,我自己优化了一下

本帖子中包含更多资源

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

×

点评

你好,请问是哪里出错了,到时候改一下。但我的玩客云这样设置能正常开机启动,不太清楚其他人的  详情 回复 发表于 2021-11-12 00:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

armbian是直刷包吗?  试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

自启动有错误?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

你好,请问是哪里出错了,到时候改一下。但我的玩客云这样设置能正常开机启动,不太清楚其他人的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

看看      
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


学习一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

测试一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 17:33

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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