让ubuntu24.04server在特定时间段内休眠并开启系统节能模式

博客 48次浏览 收藏

以前是整个定时电源开关,太暴力了。这次换了新的三件套,也在服务器优化这方面下点功夫。


一、开启睡眠与唤醒

测试硬件是否支持睡眠与唤醒。大多数现代主板的电源管理模式都是支持的。但未了保险还是先测试再配置。

sudo rtcwake -m mem -s 20

提示没有安装 rtcwake 的请 apt 自己安装

参数解释:

-m mem 表示挂起至内存(即标准睡眠),

-s 20表示 20秒后唤醒。

测试结果:如果屏幕黑掉、服务器风扇停转(或低速),并在 20 秒后自动重新亮起并恢复终端,说明硬件完全支持。

sudo vim /usr/local/bin/server-sleep.sh


#!/bin/bash
# 设定服务器需要睡眠的总秒数
# 例如: 凌晨 23:00 到 早上 5:00,共 6 个小时 = 6 * 3600 = 21600 秒
SECONDS_TO_SLEEP=21600
# 执行睡眠并设置唤醒时间
/usr/sbin/rtcwake -m mem -s $SECONDS_TO_SLEEP


执行权限

sudo chmod +x /usr/local/bin/server-sleep.sh

配置定时任务

sudo crontab -e


# 每天凌晨23点05分执行  要注意服务器时间的时区

5 23 * * * /usr/local/bin/server-sleep.sh >> /var/log/server-sleep.log 2>&1


是否需要开始 Wake-On-Lan 如果开启,则有远程访问 会唤醒这几个小时的休眠。 不在主板开启,则 到时间了 系统自主恢复。自己决断。

二、安装 hdparm开启机械硬盘休眠如果没有机械硬盘可以忽略这一步

安装 

sudo apt install hdparm

测试:

设置30分钟无访问后自动停转

lsblk   # 可以看到自己系统上的硬盘 找一个访问量小的试试
sudo hdparm -S 241 /dev/sdb

先查看 硬盘 /dev/sdb 当前状态:

sudo hdparm -C /dev/sdb

如果显示:

/dev/sdb:
 drive state is:  active/idle  #说明目前 在转 ,有访问 或不支持
#如果是
 drive state is:  standby   # 说明无访问


编辑配置文件,让自己休眠停转

sudo vim /etc/hdparm.conf


假如 sdc 和sdd 组成了  /dev/md0  raid 软磁盘阵列 也是两个硬盘分别设置。但据我观察 磁盘阵列 会自动开启硬盘休眠。

## 休眠时间请斟酌,并参考后面的参数
/dev/sdb {
    spindown_time = 120
}

/dev/sdc {
    spindown_time = 240
}

/dev/sdd {
    spindown_time = 241
}


这里需要注意 hdparm -S 的数值比较特殊:

参数休眠时间

12              60 秒
60             5 分钟
120            10 分钟
180            15 分钟
240            20 分钟
241            30 分钟
242            1 小时
243            1.5 小时
244            2 小时
245            2.5 小时
246            3 小时
247            3.5 小时
248            4 小时
249            4.5 小时
250            5 小时
251            5.5 小时



三、开启cpu的节能模式

第一步:检查当前的节能工具

现代 Ubuntu 内核(特别是搭配 Intel 或 AMD 较新的 CPU)默认使用 cpufreq 或 amd-pstate / intel_pstate 驱动。

1. 查看当前所有 CPU 核心的实时频率和正在使用的模式:

cpufreq-info

(如果提示找不到命令,可以通过 sudo apt install cpufrequtils 安装,或者直接看下一步。)

2. 快捷查看当前每个核心生效的模式(Governor):

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

常见的模式有:

    • performance(高性能模式):CPU 经常锁在高频率,功耗高。

    • ondemand 或 schedutil(系统默认):根据负载动态调节,兼顾响应速度和节能。

    • powersave(省电模式):强制 CPU 运行在最低可用频率,最省电。

第二步:将系统切换为 powersave(省电)模式

对于 24 小时挂机且负载不到 90W 的小服务器,建议直接全核开启 powersave 模式。

1. 临时测试开启,所有 CPU 核心为省电模式:

echo "powersave" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

运行后,你可以再次用上面的 cat 命令查看,应该全变成了 powersave。

此时可以观察一下功耗,通常会立刻下降几瓦到十几瓦。

第三步:让省电模式永久生效(重启不失效)

上面使用 echo 的方法在服务器重启后会重置。为了让它永久生效,我们可以使用 cpufrequtils 工具来固化配置。

1. 安装配置工具:

sudo apt update
sudo apt install cpufrequtils

2. 创建或修改配置文件:

sudo vim /etc/default/cpufrequtils

3. 在文件中写入(或修改)以下内容,指定强制使用 powersave:

ENABLE="true"
GOVERNOR="powersave"

4. 重启配置服务使其生效:

sudo systemctl restart cpufrequtils


四、关闭主板上多余的 RGB 灯光:


技嘉 AORUS 主板带有一些信仰灯,长期开着会增加微小的功耗并产生微热。

可以在主板 BIOS 的 Peripherals 或 RGB Fusion 选项中将其设置为 Disabled(关闭)。


其它的以后再补充吧


评论

登录后可以发表评论与回复。

还没有评论,来做第一个发言的人。