KoolShare

 找回密码
 立即注册
搜索
查看: 20005|回复: 28

黑群硬盘休眠问题的一种解决思路(DS916+,DSM 6.1.7)

[复制链接]

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

发表于 2018-10-27 16:53:07 | 显示全部楼层 |阅读模式
楼主最近下决心换掉了之前的 1037U 裸板 + 抽屉机箱的 NAS,用 MS04 和 J4105-ITX 重新组了台像样的,顺便从 DSM 6.0.2 升级到 DSM 6.1.7.

原来的裸板上的风扇非常吵,只能用的时候开,还得戴个降噪耳机;新机器连带机箱风扇一起几乎没有声音,所以我就让它常开不关了。这样就暴露出一个问题:硬盘没法休眠。打开了硬盘休眠日志,结果一天下来完全没有“Internal disks woke up from hibernation”这种日志,根本就是持续运转的……

我一般晚上回家才用到 NAS,白天一天都应该处于休眠。但是白天偶尔也有远程访问需求,所以也不能定时开关机。自己摸索了一下,尝试解决了这个问题。将解决问题的经历记录在这里,希望对大家有所帮助。

1. 打开休眠调试日志

这个选项藏得比较深,在 左上角菜单→技术支持中心→左边技术支持服务→启动系统休眠调试模式,“遇到问题”有两项可以选,我这里选的是“经常唤醒”(虽然最初的问题是无法睡眠…… 以下分析均以“经常唤醒”产生的日志为准)

tech-support-logs.png

2. 等待触发休眠问题

保持 NAS 空闲到设定的时间即可。记得把 NAS 的网页和各种客户端都关掉,不然接下来的日志可能会很长没法分析。我自己是在睡觉之前打开日志,起来分析。睡觉的时候除了 NAS 和路由器就没有其他设备开机了,日志很准确。


3. 分析日志x1

会产生两份日志,分别是 /var/log/hibernation.log 和 /var/log/hibernationFull.log. 后者是原始数据,前者是去除了一些无价值“连锁性”操作的精简版,但它有的时候会精简过头,所以我这里以后者为例来分析。

首先,将脏块写入磁盘的日志手动排除掉。通常内核不会自发进行大量的磁盘操作,大多数 write block 是用户态 dirty block 导致的结果,因此可以把包含 WRITE block 和 sync 的行删除,节省大量的版面。

其次,将非硬盘的写入排除掉。将包含 on tmpfs 或 on proc 的行删除即可,剩下的非硬盘文件系统肉眼忽略。

剩下的条目可以进入分析了。比如我这里在午睡时每段记录都差不多是这个样子:
  1. ***********Clear*********
  2. [140146.388709] btsync(15253): dirtied inode 11404 (sync.log) on md2
  3. [140146.388721] btsync(15253): dirtied inode 11404 (sync.log) on md2
  4. [140146.388723] btsync(15253): dirtied inode 11404 (sync.log) on md2
  5. [140151.820668] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  6. [140151.820682] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  7. [140151.820684] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  8. [140152.332689] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  9. [140152.332696] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  10. [140152.332698] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  11. [140153.783855] btsync(15253): dirtied inode 11404 (sync.log) on md2
  12. [140153.783870] btsync(15253): dirtied inode 11404 (sync.log) on md2
  13. [140153.783872] btsync(15253): dirtied inode 11404 (sync.log) on md2
  14. [140170.602870] synologrotated(4963): dirtied inode 28083 (.SYNOSYSDB-wal) on md0
  15. [140170.602888] synologrotated(4963): dirtied inode 29789 (.SYNOSYSDB-shm) on md0
  16. [140170.603221] synologrotated(4963): dirtied inode 21538 (.SYNOCONNDB-wal) on md0
  17. [140170.603235] synologrotated(4963): dirtied inode 22044 (.SYNOCONNDB-shm) on md0
  18. [140173.443684] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  19. [140173.443696] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  20. [140173.443698] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  21. [140173.955999] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  22. [140173.956006] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  23. [140173.956009] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  24. [140272.465248] btsync(15253): dirtied inode 11404 (sync.log) on md2
  25. [140272.465265] btsync(15253): dirtied inode 11404 (sync.log) on md2
  26. [140272.465267] btsync(15253): dirtied inode 11404 (sync.log) on md2
  27. [140278.386378] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  28. [140278.386390] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  29. [140278.386393] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  30. [140278.898561] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  31. [140278.898569] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  32. [140278.898571] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  33. [140631.564198] btsync(15253): dirtied inode 11404 (sync.log) on md2
  34. [140631.564209] btsync(15253): dirtied inode 11404 (sync.log) on md2
  35. [140631.564211] btsync(15253): dirtied inode 11404 (sync.log) on md2
  36. [140637.298101] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  37. [140637.298113] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  38. [140637.298115] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  39. [140637.811061] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  40. [140637.811068] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  41. [140637.811071] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  42. [141346.340822] btsync(15253): dirtied inode 11404 (sync.log) on md2
  43. [141346.340833] btsync(15253): dirtied inode 11404 (sync.log) on md2
  44. [141346.340836] btsync(15253): dirtied inode 11404 (sync.log) on md2
  45. [141351.508216] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  46. [141351.508226] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  47. [141351.508228] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  48. [141352.021228] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  49. [141352.021235] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  50. [141352.021238] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  51. [141352.494749] btsync(15253): dirtied inode 11404 (sync.log) on md2
  52. [141352.494758] btsync(15253): dirtied inode 11404 (sync.log) on md2
  53. [141352.494760] btsync(15253): dirtied inode 11404 (sync.log) on md2
  54. [141371.039633] synologrotated(4963): dirtied inode 28083 (.SYNOSYSDB-wal) on md0
  55. [141371.039654] synologrotated(4963): dirtied inode 29789 (.SYNOSYSDB-shm) on md0
  56. [141371.039992] synologrotated(4963): dirtied inode 21538 (.SYNOCONNDB-wal) on md0
  57. [141371.040007] synologrotated(4963): dirtied inode 22044 (.SYNOCONNDB-shm) on md0
  58. [141377.244527] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  59. [141377.244539] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  60. [141377.244541] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  61. [141377.757046] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  62. [141377.757054] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  63. [141377.757056] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  64. [141535.911703] dhclient(16778): dirtied inode 19635 (sh) on md0
  65. [141535.911717] dhclient(16778): dirtied inode 19626 (bash) on md0
  66. [141535.911909] dhclient-script(16778): dirtied inode 14958 (libncursesw.so.5) on md0
  67. [141535.911917] dhclient-script(16778): dirtied inode 13705 (libncursesw.so.5.9) on md0
  68. [141535.914460] awk(16782): dirtied inode 13819 (libm.so.6) on md0
  69. [141535.914470] awk(16782): dirtied inode 11177 (libm-2.20-2014.11.so) on md0
  70. [141542.431766] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  71. [141542.431778] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  72. [141542.431781] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  73. [141542.944314] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  74. [141542.944322] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  75. [141542.944324] syno_hibernatio(25655): dirtied inode 5348 (hibernation.log) on md0
  76. [142073.169495] btsync(15253): dirtied inode 11404 (sync.log) on md2
  77. [142073.169512] btsync(15253): dirtied inode 11404 (sync.log) on md2
  78. [142073.169515] btsync(15253): dirtied inode 11404 (sync.log) on md2
  79. [142078.947137] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  80. [142078.947150] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  81. [142078.947152] syno_hibernatio(25655): dirtied inode 5885 (hibernationFull.log) on md0
  82. uptime : [142078.753468]
  83. ======Idle 536 seconds======
  84. Sat Oct 27 14:34:19 CST 2018
复制代码

进程不多,逐个判断:

btsync:BTSync 套件,sync.log 顾名思义好了。这样看来,它频繁写日志是一个很明显的阻碍休眠的原因。我反正只是装着,没配置它,可以把它删掉。

syno_hibernatio:ps | grep 看一下发现全称是 syno_hibernation_debug,加之操作的文件名,确定是记录休眠日志的工具自身,以后关了就没了

synologrotated:应该是记录系统日志的工具,如果正经休眠了应该就不会有日志了,这也是个被动来源

dhclient 和 dhclient-script:DHCP 客户端常规操作,阻挡不了

那么这一轮下来只能得出需要停止 BTSync 的结论。先这么做了再说。休眠日志可以不急着关掉。

4. 分析日志x2

再放一天试试。查看系统日志:

syslog.png

从日志来看,上面的操作是有效的,硬盘终于能进入休眠了,出现了很多“Internal disks woke up from hibernation”。但是这每半小时一条,相当于休眠没几秒又被唤醒了。这还不如不休眠……

于是继续分析休眠日志:
  1. ***********Clear*********
  2. [236666.547745] syslog-ng(4331): dirtied inode 18 (scemd.log) on md0
  3. [236687.650564] syslog-ng(13085): dirtied inode 18 (scemd.log) on md0
  4. [236687.650585] syslog-ng(13085): dirtied inode 18 (scemd.log) on md0
  5. [236687.650592] syslog-ng(13085): dirtied inode 18 (scemd.log) on md0
  6. [236687.658884] syslog-ng(5016): dirtied inode 28581 (.SYNOSYSDB-shm) on md0
  7. [236687.658893] syslog-ng(5016): dirtied inode 28581 (.SYNOSYSDB-shm) on md0
  8. [236687.658946] syslog-ng(5016): dirtied inode 24584 (.SYNOSYSDB-wal) on md0
  9. [236687.658952] syslog-ng(5016): dirtied inode 24584 (.SYNOSYSDB-wal) on md0
  10. [236687.658954] syslog-ng(5016): dirtied inode 24584 (.SYNOSYSDB-wal) on md0
  11. [236687.664164] logrotate(13090): dirtied inode 41594 (synolog) on md0
  12. [236687.666146] logrotate(13090): dirtied inode 6900 (logrotate.status) on md0
  13. [236687.671082] logrotate(13090): dirtied inode 7905 (logrotate.status.tmp) on md0
  14. [236689.662143] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  15. [236689.662355] synologaccd(4840): dirtied inode 6900 (.SYNOACCOUNTDB-wal) on md0
  16. [236689.662383] synologaccd(4840): dirtied inode 21526 (.SYNOACCOUNTDB-shm) on md0
  17. [236689.763593] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  18. [236689.763629] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  19. [236691.547334] synologrotated(5000): dirtied inode 28581 (.SYNOSYSDB-shm) on md0
  20. [236691.547681] synologrotated(5000): dirtied inode 23485 (.SYNOCONNDB-wal) on md0
  21. [236691.547695] synologrotated(5000): dirtied inode 24677 (.SYNOCONNDB-shm) on md0
  22. [238511.431135] syslog-ng(4331): dirtied inode 18 (scemd.log) on md0
  23. uptime : [238516.475108]
  24. ======Idle 1807 seconds======
  25. Wed Oct 24 03:52:06 CST 2018
  26. #####################################################
  27. Only idle 44 seconds, pass
  28. Wed Oct 24 03:52:51 CST 2018
  29. #####################################################
  30. ***********Clear*********
  31. [238522.209123] synologrotated(5000): dirtied inode 24584 (.SYNOSYSDB-wal) on md0
  32. [238522.209173] synologrotated(5000): dirtied inode 28581 (.SYNOSYSDB-shm) on md0
  33. [238522.210082] synologrotated(5000): dirtied inode 23485 (.SYNOCONNDB-wal) on md0
  34. [238522.210122] synologrotated(5000): dirtied inode 24677 (.SYNOCONNDB-shm) on md0
  35. [238522.224252] logrotate(19321): dirtied inode 41594 (synolog) on md0
  36. [238522.229880] logrotate(19321): dirtied inode 7905 (logrotate.status) on md0
  37. [238522.244528] logrotate(19321): dirtied inode 6900 (logrotate.status.tmp) on md0
  38. [238531.967854] syslog-ng(19324): dirtied inode 18 (scemd.log) on md0
  39. [238531.967874] syslog-ng(19324): dirtied inode 18 (scemd.log) on md0
  40. [238531.967882] syslog-ng(19324): dirtied inode 18 (scemd.log) on md0
  41. [238531.990488] logrotate(19329): dirtied inode 6900 (logrotate.status.tmp) on md0
  42. [238533.979174] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  43. [238533.979348] synologaccd(4840): dirtied inode 7905 (.SYNOACCOUNTDB-wal) on md0
  44. [238533.979378] synologaccd(4840): dirtied inode 21526 (.SYNOACCOUNTDB-shm) on md0
  45. [238534.076345] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  46. [238534.076385] synologaccd(4840): dirtied inode 22952 (.SYNOACCOUNTDB) on md0
  47. [240368.320927] syslog-ng(4331): dirtied inode 18 (scemd.log) on md0
  48. uptime : [240374.147000]
  49. ======Idle 1811 seconds======
  50. Wed Oct 24 04:23:02 CST 2018
复制代码

synocrond:听起来像是任务计划程序,里面有个 DSM 自动更新检查,触发频率不高,应该不太影响

builtin-synodat:不知道是什么

logrotate:大概也是个日志程序

synologaccd:继续是日志程序

syslog-ng:我也不知道为什么群晖有那么多日志管理程序

单次日志看不出来什么,但是连着好几块都符合刚一休眠就被唤醒(空闲时间是设定的 30 分钟加十几秒),且最后一条都是对 (/var/log/)scemd.log 的写入。这就有点意思了,打开看看里面是什么:
  1. 2018-10-24T07:00:13+08:00 Hamster-DS scemd: led/led_brightness.c:244 Fail to read /usr/sbin/i2cget
  2. 2018-10-24T07:00:13+08:00 Hamster-DS scemd: led.c:35 SYNOGetLedBrightness fail()
  3. 2018-10-24T07:00:34+08:00 Hamster-DS scemd: event_disk_hibernation_handler.c:42 The internal disks wake up, hibernate from [Oct 24 07:00:11]
  4. 2018-10-24T07:31:09+08:00 Hamster-DS scemd: led/led_brightness.c:244 Fail to read /usr/sbin/i2cget
  5. 2018-10-24T07:31:09+08:00 Hamster-DS scemd: led.c:35 SYNOGetLedBrightness fail()
  6. 2018-10-24T07:31:30+08:00 Hamster-DS scemd: event_disk_hibernation_handler.c:42 The internal disks wake up, hibernate from [Oct 24 07:31:07]
  7. 2018-10-24T08:01:53+08:00 Hamster-DS scemd: led/led_brightness.c:244 Fail to read /usr/sbin/i2cget
  8. 2018-10-24T08:01:53+08:00 Hamster-DS scemd: led.c:35 SYNOGetLedBrightness fail()
  9. 2018-10-24T08:02:14+08:00 Hamster-DS scemd: event_disk_hibernation_handler.c:42 The internal disks wake up, hibernate from [Oct 24 08:01:53]
  10. 2018-10-24T08:32:37+08:00 Hamster-DS scemd: led/led_brightness.c:244 Fail to read /usr/sbin/i2cget
  11. 2018-10-24T08:32:37+08:00 Hamster-DS scemd: led.c:35 SYNOGetLedBrightness fail()
  12. 2018-10-24T08:32:59+08:00 Hamster-DS scemd: event_disk_hibernation_handler.c:42 The internal disks wake up, hibernate from [Oct 24 08:32:37]
复制代码

清晰地表明了这就是休眠后立即唤醒的原因:由于黑群没有 I2C 设备,于是 DSM 在休眠后尝试更改 LED 亮度(或者颜色、闪烁规律?)时读取 i2c 设备节点就会出错,scemd 把这条错误信息记到自己的日志里,触发了硬盘写入,硬盘就在休眠十几秒后被唤醒了。

5. 修复

根本上修复的话,得硬件上 I2C 适配器,甚至还能顺便给黑群加上白群的那么多灯。但这是不现实的,那么我们就只能采取主流方法:解决提出问题的日志。预想方案是把这个日志文件通过 bind mount 指向内存,让 scemd 往内存里写,就不会唤醒硬盘了。

先调查一下这个方案的可行性。能妨碍这个方案的唯一可能性是 syslog-ng 是否持续打开此文件,若是,则意味着 bind mount 后需重启 syslog-ng 才能让它拿到新的日志文件 inode、真正写入内存,而我不知道重启这个服务有没有什么连锁反应;若不是,则直接 mount 上去就好了。可以参考下面的指令:
  1. # ps | grep syslog-ng
  2. system    4328  0.1  0.2 967392  7484 ?        Ssl  Oct25   3:35 /usr/bin/syslog-ng -F --worker-threads=4 -u system -g log
  3. # ls -la /proc/4328/fd
  4. total 0
  5. dr-x------ 2 root   root  0 Oct 25 23:07 .
  6. dr-xr-xr-x 8 system log   0 Oct 25 23:07 ..
  7. lrwx------ 1 root   root 64 Oct 27 16:20 0 -> /dev/null
  8. lrwx------ 1 root   root 64 Oct 27 16:20 1 -> /dev/pts/0
  9. lrwx------ 1 root   root 64 Oct 27 16:20 10 -> /run/syslog-ng/syslog-ng.persist
  10. lrwx------ 1 root   root 64 Oct 27 16:20 11 -> socket:[1022]
  11. lrwx------ 1 root   root 64 Oct 27 16:20 12 -> socket:[1024]
  12. lr-x------ 1 root   root 64 Oct 27 16:20 13 -> /proc/kmsg
  13. lr-x------ 1 root   root 64 Oct 27 16:20 14 -> /proc/kmsg
  14. lrwx------ 1 root   root 64 Oct 27 16:20 15 -> socket:[6146]
  15. lrwx------ 1 root   root 64 Oct 27 16:20 16 -> socket:[6152]
  16. l-wx------ 1 root   root 64 Oct 27 16:20 18 -> /var/log/auth.log
  17. lrwx------ 1 root   root 64 Oct 27 16:20 2 -> /dev/pts/0
  18. l-wx------ 1 root   root 64 Oct 27 16:20 20 -> /var/log/bash_history.log
  19. l-wx------ 1 root   root 64 Oct 27 16:20 21 -> /var/log/bash_err.log
  20. lr-x------ 1 root   root 64 Oct 27 16:20 25 -> /var/log/dmesg.1 (deleted)
  21. lrwx------ 1 root   root 64 Oct 27 16:20 27 -> /var/log/synolog/.SYNOCONNDB
  22. lrwx------ 1 root   root 64 Oct 27 16:20 28 -> /var/log/synolog/.SYNOCONNDB-wal
  23. lrwx------ 1 root   root 64 Oct 27 16:20 29 -> /var/log/synolog/.SYNOCONNDB-shm
  24. lrwx------ 1 root   root 64 Oct 27 16:20 3 -> anon_inode:[eventpoll]
  25. lrwx------ 1 root   root 64 Oct 27 16:20 30 -> anon_inode:[eventpoll]
  26. lrwx------ 1 root   root 64 Oct 27 16:20 31 -> anon_inode:[eventfd]
  27. lrwx------ 1 root   root 64 Oct 27 16:20 4 -> anon_inode:[eventfd]
  28. lrwx------ 1 root   root 64 Oct 27 16:20 40 -> /var/log/synolog/.SYNOSYSDB
  29. lrwx------ 1 root   root 64 Oct 27 16:20 42 -> /var/log/synolog/.SYNOSYSDB-wal
  30. lrwx------ 1 root   root 64 Oct 27 16:20 43 -> /var/log/synolog/.SYNOSYSDB-shm
  31. lrwx------ 1 root   root 64 Oct 27 16:20 5 -> socket:[991]
  32. lrwx------ 1 root   root 64 Oct 27 16:20 6 -> anon_inode:[eventfd]
  33. lrwx------ 1 root   root 64 Oct 27 16:20 7 -> anon_inode:[eventfd]
  34. lrwx------ 1 root   root 64 Oct 27 16:20 8 -> anon_inode:[eventfd]
  35. lrwx------ 1 root   root 64 Oct 25 23:07 9 -> anon_inode:[eventfd]
复制代码

没有 scemd.log,看起来不是持续打开的,于是可以直接操作:
  1. cp /var/log/scemd.log /tmp/ # 备份原来的,以防有什么日志要查看
  2. touch /tmp/scemd.log.tmp # 这将会是新的日志文件
  3. mount -o bind /tmp/scemd.log.tmp /var/log/scemd.log
复制代码

再放一晚上,看看结果:
  1. 2018-10-27T03:34:39+08:00 Hamster-DS scemd: led.c:35 SYNOGetLedBrightness fail()
  2. 2018-10-27T09:34:30+08:00 Hamster-DS scemd: event_disk_hibernation_handler.c:42 The internal disks wake up, hibernate from [Oct 27 03:34:35]
复制代码

Internal disks wake up 这一行是 09:34 打出的,而休眠时间是 03:34,说明这次 NAS 休眠了一整晚,上述解决方式是有效的。问题到此解决。(之所以这次会唤醒,是因为我通过 SSH 登陆时产生了日志)
这个方法重启失效,为了长久有效可以把它加到 /etc/init 里面,但是我太懒了以后再说吧 23333333

6. 总结

这次解决问题所需的操作是:
  • 关闭不使用的 BTSync
  • 将由于硬件不同而会持续产生错误的 scemd.log 移到内存。这一点应该是大多数黑群共有的问题。

实际上群晖官方有一个阻碍休眠的套件列表:点这里,BTSync 就在其中。但是这个列表有点夸张,如果里面的全部禁用,套件系统就没啥用了,所以个人认为还是应该自己动手检查一下,在满足自己需求的情况下实现稳定睡眠。

当然,如果以后能有空写个模拟 I2C 的模块,把 DSM 对 LED 的操作反映到机箱指示灯上,那么既能从根本上解决问题,又能获得更接近与白群的体验,是最好的方法了。
希望这篇记录对大家解决黑群休眠问题能有帮助!



评分

5

查看全部评分

14

主题

208

帖子

5520

积分

中级魔导师

Rank: 7Rank: 7Rank: 7

精华
0
门户文章
3
魔力币
1357
魔法值
30
注册时间
2015-8-5
发表于 2018-10-28 13:04:24 来自手机 | 显示全部楼层
樓主大神,請問有沒有小白解決方案?

15

主题

262

帖子

752

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
648
魔法值
0
注册时间
2017-10-30
发表于 2018-10-28 13:08:23 | 显示全部楼层
很奇怪啊。。我也是黑群,日志上看夜间就唤醒硬盘1~2次
https://www.speedtest.net/result/8902357819.png

29

主题

145

帖子

446

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
360
魔法值
0
注册时间
2017-1-5
发表于 2018-10-28 14:32:34 | 显示全部楼层
感谢分享

32

主题

575

帖子

1453

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1202
魔法值
0
注册时间
2015-10-28
发表于 2018-10-28 23:26:48 | 显示全部楼层
好文好文

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

 楼主| 发表于 2018-10-29 00:11:16 | 显示全部楼层
yyyjch 发表于 2018-10-28 13:08
很奇怪啊。。我也是黑群,日志上看夜间就唤醒硬盘1~2次

或许 LED 的问题不是每个黑群型号都有?

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

 楼主| 发表于 2018-10-29 00:11:48 | 显示全部楼层
sillydanny 发表于 2018-10-28 13:04
樓主大神,請問有沒有小白解決方案?

建议还是打开日志看一下为好……

242

主题

4874

帖子

5595

积分

中级魔导师

Rank: 7Rank: 7Rank: 7

精华
0
门户文章
0
魔力币
2502
魔法值
0
注册时间
2015-10-22

游记大赛参与勋章AC88UR6300R7800R8500WRT1900DDOS纪念勋章

发表于 2018-10-29 06:56:17 | 显示全部楼层
可以接视频看高清不?感觉有什么提升?

0

主题

44

帖子

234

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
227
魔法值
0
注册时间
2018-4-9
发表于 2018-10-29 10:29:20 | 显示全部楼层
我看了下我的,大概一个小时左右被唤醒一次。
大神能否出个通俗易懂的方法。解决这个问题?

15

主题

262

帖子

752

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
648
魔法值
0
注册时间
2017-10-30
发表于 2018-10-29 12:47:00 | 显示全部楼层
updateing 发表于 2018-10-29 00:11
或许 LED 的问题不是每个黑群型号都有?

g41+e8500,洗白过了。。。。也许是不是洗白的问题?
https://www.speedtest.net/result/8902357819.png

0

主题

13

帖子

46

积分

魔法学徒

Rank: 1

精华
0
门户文章
0
魔力币
45
魔法值
0
注册时间
2017-10-20
发表于 2018-10-29 13:33:19 | 显示全部楼层
一直挂着PT就不用管了

15

主题

4142

帖子

6537

积分

高级魔导师

Rank: 8Rank: 8

精华
0
门户文章
0
魔力币
4237
魔法值
0
注册时间
2014-9-11

AC88UAC5300R7000R7800R8500WRT1900DDOS纪念勋章

发表于 2018-10-29 13:34:24 | 显示全部楼层
解决思路条理清晰,虽然不用黑裙但是仍然很有借鉴意义。

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

 楼主| 发表于 2018-10-29 20:41:01 | 显示全部楼层
yyyjch 发表于 2018-10-29 12:47
g41+e8500,洗白过了。。。。也许是不是洗白的问题?

型号是指 DS916+、DS3615xs 这些。可能有的型号控制灯的方法不一样,没有引发日志,所以就没有表现出问题。

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

 楼主| 发表于 2018-10-29 20:41:37 | 显示全部楼层
hugh200315 发表于 2018-10-29 10:29
我看了下我的,大概一个小时左右被唤醒一次。
大神能否出个通俗易懂的方法。解决这个问题? ...

先打开日志看看吧……

15

主题

262

帖子

752

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
648
魔法值
0
注册时间
2017-10-30
发表于 2018-10-29 21:11:08 | 显示全部楼层
updateing 发表于 2018-10-29 20:41
型号是指 DS916+、DS3615xs 这些。可能有的型号控制灯的方法不一样,没有引发日志,所以就没有表现出问题 ...

我是jun's loader 6.01,3615,估计是led的方法不一样
https://www.speedtest.net/result/8902357819.png

24

主题

4348

帖子

3536

积分

中级魔导师

空浪

Rank: 7Rank: 7Rank: 7

精华
0
门户文章
0
魔力币
2225
魔法值
0
注册时间
2015-10-9
发表于 2018-10-30 09:08:29 | 显示全部楼层
我从不关心休眠,会怎么样?

4

主题

280

帖子

850

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
765
魔法值
0
注册时间
2017-3-13
发表于 2018-10-30 11:47:39 | 显示全部楼层
感谢

我白群晖也有这样的问题~

400

主题

4491

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
0
门户文章
1
魔力币
6514
魔法值
10
注册时间
2016-8-25

AC88UR7000R6400

发表于 2018-10-30 18:25:51 | 显示全部楼层
1小时唤醒一次  试了很多方法最终放弃 现在是随用随开

31

主题

1079

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
3
魔力币
3143
魔法值
45
注册时间
2015-11-8

R7000DDOS纪念勋章

 楼主| 发表于 2018-10-31 12:47:56 来自手机 | 显示全部楼层
konglang_616 发表于 2018-10-30 09:08
我从不关心休眠,会怎么样?

会比较吵 /doge

2

主题

108

帖子

440

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
413
魔法值
0
注册时间
2016-12-4
发表于 2018-10-31 17:00:23 来自手机 | 显示全部楼层
楼主有没有脚本可以实现白裙在特定时间打开休眠,特定时间关闭休眠??比如,白天不休眠,晚上休眠省电但可以保持偶然需求的可用性。

联系我们|手机版|KoolShare ( 沪ICP备13045430号962110 沪公网备31010402005377

GMT+8, 2020-2-21 19:44 , Processed in 0.095899 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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