xgeg 发表于 2022-5-14 11:02

【教程】PVE7.0-7.2通用一键CPU温度频率显示以及降低CPU功耗 5月20完善

本帖最后由 xgeg 于 2022-6-3 08:29 编辑

致谢:论坛大佬a904055262 脚本

脚本原地址shell脚本,一键给pve7,增加温度和cpu频率显示-恩山无线论坛 (right.com.cn)
我做了有些归纳总结,补全了一些具体操作步骤,方便像我这样的小白少走些弯路。

先上图

教程如下:
第一步,禁用企业源

第二步,安装必要的传感器驱动(一条一条的单独运行)
apt update
apt-get install lm-sensors
apt-get install nvme-cli
apt-get install hddtemp第三步,利用控制台在home文件夹中创建一个名称为pve的脚本
cd /home/#打开home文件夹
nano pve.sh#新建一个脚本
#将文章下面提供代码粘贴进去
#按 ctrl+X 退出
#按 Y保存
#按回车返回控制台
chmod +x pve.sh   #赋予脚本可执行权限
./pve.sh   #执行脚本需要粘贴的代码


#!/usr/bin/env bash
np="/usr/share/perl5/PVE/API2/Nodes.pm"
pvejs="/usr/share/pve-manager/js/pvemanagerlib.js"
plib="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"


pvever=$(pveversion | awk -F"/" '{print $2}')
echo pve版本$pvever
echo 备份源文件
[ ! -e $np.$pvever.bak ] && cp $np $np.$pvever.bak || { echo 已经修改过,请务重复执行; exit 1;}
[ ! -e $pvejs.$pvever.bak ] && cp $pvejs $pvejs.$pvever.bak
[ ! -e $plib.$pvever.bak ] && cp $plib $plib.$pvever.bak

therm='$res->{thermalstate} = `sensors`;';
cpure='$res->{cpure} = `cat /proc/cpuinfo | grep -i"cpu mhz"`;';

echo 修改node.pm:
sed -i "/PVE::pvecfg::version_text()/a $cpure\n$therm" $np

sed -n "/PVE::pvecfg::version_text()/,+5p"$np


tmpf=tmpfile.temp
touch $tmpf
cat > $tmpf << 'EOF'
      {
                  itemId: 'thermal',
                  colspan: 2,
                  printBar: false,
                  title: gettext('温度'),
                  textField: 'thermalstate',
                  renderer:function(value){
                        const m = value.match(/(?<=:[^\+]+\+)\d+/g)
                        return `CPU: ${m}(${m},${m},${m},${m}) | BOARD: ${m} | NVME: ${m}`;
               }
      },
      {
                  itemId: 'cpumhz',
                  colspan: 2,
                  printBar: false,
                  title: gettext('CPU频率'),
                  textField: 'cpure',
                  renderer:function(value){
                        const m = value.match(/(?<=:\s+)(\d+)/g);
                        return `CPUMHZ: ${m} | ${m} | ${m} | ${m}`;
               }
      },
EOF

#找到关键字pveversion的行号
echo 修改pvemanagerlib.js
ln=$(sed -n '/pveversion/,+10{/},/{=;q}}' $pvejs)
echo "匹配的行号pveversion:" $ln

echo 修改结果:
sed -i "${ln}r $tmpf" $pvejs
sed -n '/pveversion/,+30p' $pvejs

rm $tmpf


echo 修改页面高度
sed -i -r '/widget\.pveNodeStatus/,+5{/height/{s#+#360#}}' $pvejs
sed -n '/widget\.pveNodeStatus/,+5{/height/{p}}' $pvejs
sed -i -r '/\/,+5{/heigh/{s#+#460#;}}' $pvejs
sed -n '/\/,+5{/heigh/{p}}' $pvejs


echo 修改去除订阅弹窗
sed -r -i '/\/nodes\/localhost\/subscription/,+10{/^\s+if \(res === null /{N;s#.+#\t\tif(false){#}}' $plib
sed -n '/\/nodes\/localhost\/subscription/,+10p' $plib

systemctl restart pveproxy

echo "请刷新浏览器缓存shift+f5"



最后Shift+F5刷新一下网页
教程结束。

肯定会有很多细心的同学发现,负载不高的时候,这CPU频率怎么也一直最高频率,
接下来我们就来处理这个问题
**** Hidden Message *****






jy00295017 发表于 2024-8-15 01:42

所以 用conservative模式最均衡吗?又能省电?又能保持性能?属于均衡模式?

陶俊 发表于 2024-8-11 17:12

懒人试下

nd4spd 发表于 2024-4-26 15:05

PVE7.0-7.2通用一键CPU温度频率显示以及降低CPU功耗 5月20完善

liweijun21 发表于 2024-2-20 15:28

楼主厉害了 思考了

zml1985 发表于 2023-11-14 16:19

cpufrequtils更改运行模式并没有什么卵用, 我的j6413 只支持性能模式和省电模式,改成省电模式 ,主频降到0.8,性能模式,主频2.7,插着功耗表, 功耗没有什么变化, 但是0.8,虚拟机速度慢很多

aska2004 发表于 2023-9-13 08:51

思考到了,刚刚思考完EXSI后才发现家用PVE更合适!再次思考吧

zhang623437847 发表于 2023-9-3 15:20

本帖最后由 zhang623437847 于 2023-9-3 15:21 编辑

楼主,你看我这个是什么问题,虚拟机几乎以cpu 最低频率在运行,且一直没有变化;芯片是n100

fkiss 发表于 2023-6-28 21:47

思考了

gfg1000 发表于 2023-6-16 10:48

收藏备用

sqq2500 发表于 2023-3-27 14:27

sensors 不显示风扇转速是什么原因

h8281 发表于 2023-3-26 23:13

好东西,厉害!:hug:

rockroll 发表于 2023-3-15 21:32

厉害厉害支持

caolicong 发表于 2023-3-15 16:44

PVE 7.3_6 版本 CPU频率 CPUMHZ: 3600 | 3600 | 3600 | 3600       还是一直满频率运行,调模式没看出来变化

simonceo 发表于 2023-3-12 15:55

使用了,还是显示这个 温度 CPU: 27(29,31,31,31) | BOARD: undefined | NVME: undefined
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【教程】PVE7.0-7.2通用一键CPU温度频率显示以及降低CPU功耗 5月20完善