1. 程式人生 > 其它 >群暉 DSM6.22 休眠除錯,分析,概括

群暉 DSM6.22 休眠除錯,分析,概括

除錯新方法

9月13日發現的,這個方法特別好. snippetslab://snippet/283B1E35-8926-4597-840A-156020BF90A5/ 就是sysctrl開啟vm的日誌,然後dmesg一直檢視.

1 root@BooksNas:~# sysctl vm.block_dump=1
2 vm.block_dump = 1
3 root@BooksNas:~# dmesg -Tw | grep -e md
4 [Fri Sep 13 19:51:59 2019] scemd(12920): dirtied inode 1075980 (volume2.lock.QNvXiK) on tmpfs

可以看到特大量的無關資訊

1 Fri Sep 13 20:17:45 2019] scemd(12920): dirtied inode 1151427 (volume1.lock.2xA91s) on tmpfs
2 [Fri Sep 13 20:17:51 2019] scemd(12920): dirtied inode 1151537 (volume2.lock.MLROAS) on tmpfs
3 [Fri Sep 13 20:17:51 2019] scemd(12920): dirtied inode 1151538 (volume1.lock.egax9h) on tmpfs
4 [Fri Sep 13 20:17:57 2019] scemd(12920): dirtied inode 1151639 (volume2.lock.qYZAQU) on tmpfs
5 [Fri Sep 13 20:17:57 2019] scemd(12920): dirtied inode 1151640 (volume1.lock.QlXHxx) on tmpfs 6 [Fri Sep 13 20:18:03 2019] scemd(12920): dirtied inode 1151741 (volume2.lock.8AMumn) on tmpfs 7 [Fri Sep 13 20:18:03 2019] scemd(12920): dirtied inode 1151742 (volume1.lock.cXCkbd) on tmpfs

弄完了關掉

1 sysctl vm.block_dump=0

檢視狀態

1 sysctl vm.block_dump

所以原來某個人說的除錯方法是真的好用的.

  • 如果要改短到比如2分鐘休眠,那就改配置檔案,改了後去控制面板隨便點點,讓它有機會重新整理吧. => 很遺憾的是,這個怎麼都沒弄成功. => 最好就還是10分鐘吧.
  • 怎麼理解日誌呢?就是看大概最後有md寫入的,不放心可以[grep md]限制結果變壞.
  • 所以理想的除錯是什麼呢?開著兩個shell,慢悠悠的看著觀察著,要幾個有幾個,那就很好了...恩...
  • 用這個英文可以開著shell,所以可以一直觀察休眠.
  • 也可以看到一直出現的這個日誌資訊,可以除錯Drive
  • 確實的網頁會帶來一個該死的問題,看來就是錯誤了
  • 1 [Fri Sep 13 20:53:51 2019] SYNO.Core.Curre(7876): dirtied inode 30814 (ftp_cur_con.log) on md0

Drive 結論

確實它導致的,過去兩個月了,官方無法解決:

降級Drive到1.1可以暫時用一用...

手動下載1.1的Drive,解除安裝2.0,忘掉備份功能,這樣慢慢的開始吧:)

1.1的日誌大概是這樣的

1 [16360.262357] syno-cloud-clie(26959): READ block 36680128 on md3 (1024 sectors)
2 [16360.262453] syno-cloud-clie(26959): READ block 36681152 on md3 (1024 sectors)
3 [16360.262548] syno-cloud-clie(26959): READ block 36682176 on md3 (1024 sectors)

有個奇怪的東西...

1 [21511.587181] SYNO.Core.Curre(21466): dirtied inode 30667 (ftp_cur_con.log) on md0

如果樂意的話,也可以看大量實時的日誌

1 dmesg -Tw

配合改短休眠時間,慢慢的觀察它的情況...

早期基本結論

  • 6.2.2 沒有休眠的問題,系統沒有問題.
  • 星際蝸牛裝在mSata會導致3~4分鐘讀取smart寫scemd.log日誌,而喚起硬碟.
  • 日誌除錯很有用,主要依賴這兩個命令,很多垃圾資訊不用管 tail -f /var/log/hibernationFull.log | grep -v -e proc -e tmpfs -e WRITE

全部檢視

1 cat /var/log/hibernationFull.log | grep -v -e proc -e tmpfs -e WRITE -

Driver 2.0是否會導致不能休眠,有待爭議. - 一直開著命令列會導致無法休眠,開著網頁,不知道.硬碟的休眠的一個前提是沒有很多的資料訪問.

  • 休眠的設定時間檔案
1 cat /etc/synoinfo.conf | grep stand
2 standbytimer="10"

可以弄成1,用vim改,使用[/]搜尋stand,然後改成值1,這樣待機就快了.

vim /etc/synoinfo.conf

#命令 /stand => 尋找
#改值為1,完成

有意思的是....vim很聰明...還有...在控制面板裡能看到1字呢!!!

影響因素

  • 安裝Drive 1.14後,也沒機會休眠了,呵呵.
  • 安裝Drive 2.0套件後,會無法休眠,主要導致是
  • 1 [ 1105.202362] cloud-workerd(17744): dirtied inode 92672 (job-db.sqlite-wal) on md3
    2 [ 1105.202499] cloud-workerd(17744): dirtied inode 92673 (job-db.sqlite-shm) on md3

在資源檢視器的程序裡可以看到就是Driver Server的玩意在工作...

通過對raid的認識,我們現在知道了,資料會同時寫道兩個地方

1 [ 4507.641063] jbd2/md0-8(4572): WRITE block 2184264 on md0 (8 sectors)
2 [ 4507.641174] md0_raid1(4072): WRITE block 4980352 on sda1 (8 sectors)
3 [ 4507.641205] md0_raid1(4072): WRITE block 4980352 on sdc1 (8 sectors)
4 [ 4507.668850] jbd2/md0-8(4572): WRITE block 2184272 on md0 (8 sectors)
5 [ 4507.668872] jbd2/md0-8(4572): WRITE block 2184280 on md0 (8 sectors)
6 [ 4507.669633] jbd2/md0-8(4572): WRITE block 2184288 on md0 (8 sectors)
7 [ 4507.884497] md0_raid1(4072): WRITE block 4980352 on sda1 (8 sectors)
8 [ 4507.884536] md0_raid1(4072): WRITE block 4980352 on sdc1 (8 sectors)

所以硬碟很忙...真的...忙....

無關的部分

    • 這人想出來讓DSM不寫其他盤的方法的..讓某個盤的東西作廢 我們的探索-可以直接用hdparm來除錯
    • 休眠除錯的命令列
      1 sysctl kernel.syno_hibernation_log_level