收起左侧

休眠问题排查攻略

9
回复
657
查看
[ 复制链接 ]
2025-7-1 17:41:23 显示全部楼层 阅读模式

自系统版本 v0.9.10 起,飞牛系统新增支持设置硬盘自动唤醒偏好。当开启了硬盘休眠后,可选择硬盘唤醒的策略:

  1. 按需唤醒:仅在对存储空间读写数据时。 选择此选项后,系统只在读写数据时唤醒硬盘,不被读写到硬盘仍将保持休眠状态。
  2. 响应更快:有用户登录即唤醒。 选择此选项后,除了读写数据会唤醒硬盘外,有用户登录网页端、App时,系统也将自动唤醒全部硬盘,以提升读写操作时的响应速度,使用体验更丝滑。

为了实现以上功能,我们采用了更准确的休眠检测方式,也做了一些休眠日志展示策略的调整,引发了大家对不同版本休眠日志情况变化的关注。

因此,我们根据近期收集了无法休眠的案例,结合系统休眠机制,总结了不休眠的原因与自助排查方法,遇到疑似休眠异常的朋友可以按照以下各种情况排查系统不休眠的原因。

第一种情况,本身有文件读写行为,导致无法休眠

常见会唤醒硬盘的读写操作有:

  1. 存储空间任意的文件读写
    1. 通过任意方式访问文件管理
    2. 硬盘所在的存储空间上有正在执行的文件任务,包括上传、下载、移动、复制等;
    3. 其他设备通过各类远程挂载的方式在访问飞牛的文件
  2. 某个程序进程运行
    1. 应用或 Docker 安装在硬盘所在的存储空间上,且正在运行产生传输;
    2. 应用或 Docker 正在访问存储空间上的文件,包括影视刮削播放、相册查看和 AI 识别等;
    3. 下载类应用或 Docker 容器中有任务正在下载或做种。
    4. 其他一些自己手动安装的基于debian环境的应用**(容易被忽视,因为不被系统监控)**
  3. 获取硬盘运行状态
    1. APP或者web访问 系统设置 > 存储空间管理硬盘信息 页面时,由于需要查询存储相关信息,也会唤醒已被用于存储空间的所有硬盘。如不希望唤醒,可通过 资源监控 查看硬盘状态和信息。

排查方法:

重启一下设备,关闭所有可能影响休眠的相关服务

  1. 关闭docker服务,避免服务自动运行

  1. 关闭所有共享协议,包括SMB\WebDAV\FTP\NFS\DLNA,避免其他设备自动访问飞牛

  1. 在应用中心,停用所有应用,避免应用自动运行

  1. 停用非本人使用账号,修改当前账号密码,避免其他用户在你不知情情况下访问

  1. 暂停所有下载进程

在完成以上五点之后,设置休眠时间为5分钟,退出登录,过一段时间之后再观察, 如果没有异常唤醒行为,则是由于应用或者读写导致的唤醒,并非BUG。可以逐步开启相关服务,看是由于那个服务引起的唤醒。

第二种情况,APM错误导致无法休眠

硬盘中的 APMAdvanced Power Management(高级电源管理) 的缩写。

因为一部分硬盘或者盘柜有内置的APM休眠策略,与系统通过hdparm发送休眠指令的行为有冲突,导致休眠失败,或者反复唤醒的情况。

需要手动配置APM为255,保障休眠服务正常。

一、APM 的作用:

APM 是一种节能机制,允许操作系统或硬盘固件根据当前的使用情况动态调整硬盘的功耗状态,以降低能耗和噪音,延长硬盘寿命。

具体来说,APM 会在空闲时:

  • 降低马达转速
  • 提前让硬盘进入休眠或低功耗状态
  • 减少磁头寻道频率

二、APM 的设置值含义:

APM 的数值通常是 0~255 之间的一个值,表示电源管理的激进程度。不同厂家的解释略有差异,但大致如下:

APM 数值 行为 特点
0 关闭 APM 不节能,性能优先,硬盘一直运行
1–127 激进节能 快速降速、快速待机,噪音低,可能增加磁头起停次数(影响寿命)
128–254 适中节能 平衡性能与能耗
255 最大性能 几乎无电源管理,硬盘保持高速运行,适合服务器/NAS

部分硬盘厂商(如 Western Digital)在低值时(例如 128 以下)会频繁地“停头”以省电,但这会导致 Load/Unload Cycle(装载/卸载磁头次数) 非常高,可能影响寿命。

三、APM的查询与配置

# 进入高级管理员模式
sudo -i
  1. 在日志里面找到盘符,sda sdb sdc等,为盘符标识

  1. 查询对应盘符的APM, sdX请改为你的具体盘符,例如sda sdb sdc等
hdparm -I /dev/sdX | grep -i 'Advanced power management'

如果正常运行,你可以看到以下内容,level后面就是内容

[你的用户名]@feiniu:~$ sudo hdparm -I /dev/sda | grep -i 'Advanced power management'
        Advanced power management level: 254
           *    Advanced Power Management feature set

  1. 修改APM数值为255

查询到的值如果不是255或者display 就运行以下指令

sdX请改为你的具体盘符,例如sda sdb sdc等

hdparm -B 255 /dev/sdX

第三种情况,固态硬盘不休眠

升级后,可能会遇到固态硬盘在日志里面没有显示休眠的情况,这个是设计如此。

固态硬盘实际没有休眠这个状态的, 过去大家会把低功耗模式作为广义的休眠,但是这个东西还比较新,实际上不同厂家会有不同的休眠标准。

系统新版本更新了对硬盘休眠的准确检测方式,上线了针对HDD机械硬盘更精准的休眠策略,但是与此同时,不同厂家的低功耗模式,很难准确的识别与控制,所以新版本之后,日志不会识别跟展示固态硬盘进入低功耗模式的状态。

第四种情况,主板、转接卡、硬盘或者硬盘柜的固件本身不支持hdparm休眠

因为系统让硬盘休眠的时候,会通过hdparm发送指令,但是部分设备的芯片会无视或者过滤系统发送的休眠指令,导致休眠失败。

这种类型的休眠失败,需要硬件厂家升级固件来解决

例如已知有希捷的部分设备,例如Seagate BarraCuda 3.5(CMR)不支持hdparm

验证此情况,可以手动发送hdparm休眠指令,看看硬盘是否会正常休眠,

sdX请改为你的具体盘符,例如sda sdb sdc等

hdparm -y /dev/sdX

输入指令之后,可以进入web端,可以看到休眠信息,则不是该原因导致。如果看到报错或者未执行,则代表可能存在硬件兼容问题。

第五种情况,不支持SMART检测的硬盘,无法正确返回休眠信息

如果你的硬盘柜本身不支持smart检测,即使休眠了,也不会返回休眠的信息给系统,所以不会有休眠的日志。

实际硬盘可能会按照自己的逻辑进行休眠


遇到不确定硬盘无法正常休眠的原因,可以根据上面步骤排查一下。如果以上情况均排除,可以再联系我们定位问题。

收藏
送赞
分享

本帖子中包含更多资源

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

x

0

主题

21

回帖

0

牛值

江湖小虾

2025-7-3 20:16:47 显示全部楼层
请解释一下 什么都不改变,同样的硬件,同样的硬盘,安装同样的应用,只有影视和相册, 0.98以后从不休眠, 现在重装回0.92就能够休眠
以前的休眠是模糊检测,系统发了休眠指令就认为休眠了,实际设备的休眠情况并不会去主动识别。 自定义休眠逻辑更新后,会靠smart信息准确判断休眠,判断不了日志就不会不展示休眠,包括不支持SMART检测的硬件,也不  详情 回复
2025-7-4 12:07

0

主题

6

回帖

0

牛值

江湖小虾

2025-7-4 02:08:37 显示全部楼层

1、设备信息:物理机、系统版本0.9.12,硬盘做RAID5

2、硬件信息:

Snipaste_2025-07-04_01-48-41.png

3、已按照方法进行排查,但硬盘仍无法休眠

(1)已停用应用

Snipaste_2025-07-04_01-31-34.png

(2)已关闭docker服务

Snipaste_2025-07-04_01-32-36.png

(3)已关闭所有共享协议

Snipaste_2025-07-04_01-40-03.png

Snipaste_2025-07-04_01-40-15.png

Snipaste_2025-07-04_01-40-25.png

Snipaste_2025-07-04_01-40-53.png

Snipaste_2025-07-04_01-40-42.png

(4)没有下载任务

Snipaste_2025-07-04_01-35-27.png

(5)APM已设置255

Snipaste_2025-07-04_01-08-21.png

(6)可以手动休眠

Snipaste_2025-07-04_01-07-13.png

(7)硬盘健康状态正常

Snipaste_2025-07-04_01-33-43.png

(7)升级0.9.9后一直没有休眠日志

Snipaste_2025-07-04_01-42-16.png

这不帮忙排查一下?我看论坛不止一个是这样的情况,升级0.9.9后就不能休眠了

本帖子中包含更多资源

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

x
https://club.fnnas.com/forum.php?mod=viewthread&tid=29488&page=1#pid143223 按照这个老哥帖子的方法解决了 在主板的SATA Operation改成AHCI就可以休眠了,硬盘类型也都变成HDD了  详情 回复
2025-7-4 23:45
加你看一下  详情 回复
2025-7-4 12:09

2

主题

9

回帖

0

牛值

江湖小虾

2025-7-4 08:13:26 显示全部楼层

按照该帖子内容操作了下:
1、关闭了所有应用及共享,排除了应用共享导致不休眠的问题
2、检查了APM,并按照帖子操作修改为255

3、此问题是0.9.12特有的,之前版本并未出现。
以上操作后问题依旧,该硬盘依然不休眠;但是通过ssh发送 hdparm -y /dev/sdC 是可以休眠的。

2

主题

9

回帖

0

牛值

江湖小虾

2025-7-4 08:52:17 显示全部楼层

image.png

通过日志发现一个规律,进入休眠后整1分钟必被唤醒,另外,在群里问了下,出现此问题的都是西数的硬盘。

本帖子中包含更多资源

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

x
可以私信一下联系方式么,加你看一下  详情 回复
2025-7-4 12:11

43

主题

8360

回帖

0

牛值

管理员

2025-7-4 12:07:56 显示全部楼层
petal 发表于 2025-7-3 20:16
请解释一下 什么都不改变,同样的硬件,同样的硬盘,安装同样的应用,只有影视和相册, 0.98以后从不休眠, 现在 ...

以前的休眠是模糊检测,系统发了休眠指令就认为休眠了,实际设备的休眠情况并不会去主动识别。

自定义休眠逻辑更新后,会靠smart信息准确判断休眠,判断不了日志就不会不展示休眠,包括不支持SMART检测的硬件,也不会记录为休眠了,实际硬盘可能会自动休眠。

43

主题

8360

回帖

0

牛值

管理员

2025-7-4 12:09:25 显示全部楼层
fn_001 发表于 2025-7-4 02:08
1、设备信息:物理机、系统版本0.9.12,硬盘做RAID5
2、硬件信息:

加你看一下

43

主题

8360

回帖

0

牛值

管理员

2025-7-4 12:11:27 显示全部楼层
AWing 发表于 2025-7-4 08:52
通过日志发现一个规律,进入休眠后整1分钟必被唤醒,另外,在群里问了下,出现此问题的都是西数的硬盘。
...

可以私信一下联系方式么,加你看一下

0

主题

6

回帖

0

牛值

江湖小虾

2025-7-4 23:45:24 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=142813&ptid=30544][color=#999999]fn_001 发表于 2025-7-4 02:08[/color][/url][/size] 1、设备信息:物理机、系统版本0.9.12,硬盘做RAID5 2、硬件信息: [/quote]

https://club.fnnas.com/forum.php?mod=viewthread&tid=29488&page=1#pid143223

按照这个老哥帖子的方法解决了

在主板的SATA Operation改成AHCI就可以休眠了,硬盘类型也都变成HDD了

Snipaste_2025-07-04_23-23-26.png

image.png

本帖子中包含更多资源

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

x

0

主题

6

回帖

0

牛值

江湖小虾

2025-7-5 10:20:50 显示全部楼层

已按排查方法测试,查询apm返回SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00,输入手动休眠命令日志无休眠记录。0.98版本之前一直休眠正常,更新后这几个版本都不能休眠,前天重装最新系统,问题依旧。

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

本版积分规则