|
本帖最后由 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[0]}(${m[1]},${m[2]},${m[3]},${m[4]}) | BOARD: ${m[5]} | NVME: ${m[6]}`;
- }
- },
- {
- itemId: 'cpumhz',
- colspan: 2,
- printBar: false,
- title: gettext('CPU频率'),
- textField: 'cpure',
- renderer:function(value){
- const m = value.match(/(?<=:\s+)(\d+)/g);
- return `CPUMHZ: ${m[0]} | ${m[1]} | ${m[2]} | ${m[3]}`;
- }
- },
- 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#[0-9]+#360#}}' $pvejs
- sed -n '/widget\.pveNodeStatus/,+5{/height/{p}}' $pvejs
- sed -i -r '/\[logView\]/,+5{/heigh/{s#[0-9]+#460#;}}' $pvejs
- sed -n '/\[logView\]/,+5{/heigh/{p}}' $pvejs
- echo 修改去除订阅弹窗
- sed -r -i '/\/nodes\/localhost\/subscription/,+10{/^\s+if \(res === null /{N;s#.+#\t\t if(false){#}}' $plib
- sed -n '/\/nodes\/localhost\/subscription/,+10p' $plib
- systemctl restart pveproxy
- echo "请刷新浏览器缓存shift+f5"
复制代码
最后Shift+F5刷新一下网页
教程结束。
肯定会有很多细心的同学发现,负载不高的时候,这CPU频率怎么也一直最高频率,
接下来我们就来处理这个问题
首先我来安装一下CPU驱动
- apt-get install cpufrequtils #安装CPU驱动
复制代码 查询cpu状态
一般到这一步就能看到cpu频率会根据负载再不断调整变化
再这基础上我们也可以手动修改CPU的运行模式,如上图pve默认为ondemand模式,
我们可选的模式有conservative, ondemand, userspace, powersave, performance, schedutil
- conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。
- ondemand:系统默认的超频模式,按需调节,内核提供的功能,一般官方内核默认的方式都是ondemand。
- userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序。
- powersave 省电模式,通常以最低频率运行。
- performance:性能模式,只有最高频率,从来不考虑消耗的电量。
- schedutil:一个新的交互模式,听说很牛,简单理解为interactive的升级版。
复制代码
修改配置文件
文件位置/etc/init.d/cpufrequtils
也可以控制台进行修改
- nano /etc/init.d/cpufrequtils
- #
- ENABLE="true"
- GOVERNOR="conservative" #运行模式,依照需求调整
- MAX_SPEED="0" #自定义模式下设置cpu频率上限 ,非自定义模式不要填写,否则导致频率锁死最低频率
- MIN_SPEED="0" #下限
- #
复制代码 重启服务
- systemctl daemon-reload
- /etc/init.d/cpufrequtils restart
复制代码
觉得教程受益,可以点赞支持一下哟~
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|