外部驱动器挂起,平均负载飙升

外部驱动器挂起,平均负载飙升

我有一个外部 USB 驱动器,我每小时运行一次 rsync 来备份它。多年来,这一直运行良好。这个周末,我买了两个新的 2Tb 内置驱动器,并决定是时候从头开始重新安装 Ubuntu 以清除所有旧的垃圾了。

自从重新安装以来,备份脚本几乎每天都会挂起一次,通常是在 rsync 之前执行“rm -rf”时。当我注意到这个问题时,我的平均负载已经非常高,而且上升得很快(有一次超过了 150),但任何不接触驱动器的东西似乎都运行良好。我发现有一件事很可疑,那就是某个我不知道是什么的东西在 USB 驱动器上执行“smartctl”和“hdparm”命令。我很确定 smartctl 不应该在外部驱动器上运行。我也不知道是什么在这么做。以下是ps auwwfx它挂起的部分情况:

root      7310  0.0  0.0   4248   352 ?        D    20:15   0:00 /sbin/hdparm -C /dev/sdd
root      7808  0.0  0.0  17372  1632 ?        D    20:15   0:00 /usr/sbin/smartctl -a -n standby -A -i /dev/sdd
(repeated every 5 minutes between the time the drive hung and now)

为什么会发生这种情况?我该如何阻止它?

更新 事实证明,这是 munin 插件“hddtemp_smartctl”在执行这两个命令,但它们大部分时间都在工作,然后突然开始挂起。所以我还没有找到答案。

更新上次发生这种情况时,我也在 kern.log 中发现了这一点:

Sep 21 23:18:01 allhats2 kernel: [52652.707110] INFO: task kjournald:4380 blocked for more than 120 seconds.
Sep 21 23:18:01 allhats2 kernel: [52652.707113] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Sep 21 23:18:01 allhats2 kernel: [52652.707114] kjournald       D ffffffff81806200     0  4380      2 0x00000000
Sep 21 23:18:01 allhats2 kernel: [52652.707117]  ffff8803661e1c10 0000000000000046 ffff8803fd890148 ffff880404f17000
Sep 21 23:18:01 allhats2 kernel: [52652.707120]  ffff8803661e1fd8 ffff8803661e1fd8 ffff8803661e1fd8 00000000000137c0
Sep 21 23:18:01 allhats2 kernel: [52652.707122]  ffff880404e89700 ffff880361304500 ffff8803661e1bf0 ffff88041f5d4080
Sep 21 23:18:01 allhats2 kernel: [52652.707125] Call Trace:
Sep 21 23:18:01 allhats2 kernel: [52652.707130]  [<ffffffff811a8a40>] ? __wait_on_buffer+0x30/0x30
Sep 21 23:18:01 allhats2 kernel: [52652.707133]  [<ffffffff8165850f>] schedule+0x3f/0x60
Sep 21 23:18:01 allhats2 kernel: [52652.707135]  [<ffffffff816585bf>] io_schedule+0x8f/0xd0
Sep 21 23:18:01 allhats2 kernel: [52652.707137]  [<ffffffff811a8a4e>] sleep_on_buffer+0xe/0x20
Sep 21 23:18:01 allhats2 kernel: [52652.707139]  [<ffffffff81658ddf>] __wait_on_bit+0x5f/0x90
Sep 21 23:18:01 allhats2 kernel: [52652.707140]  [<ffffffff811a8a40>] ? __wait_on_buffer+0x30/0x30
Sep 21 23:18:01 allhats2 kernel: [52652.707142]  [<ffffffff81658e8c>] out_of_line_wait_on_bit+0x7c/0x90
Sep 21 23:18:01 allhats2 kernel: [52652.707145]  [<ffffffff8108ab20>] ? autoremove_wake_function+0x40/0x40
Sep 21 23:18:01 allhats2 kernel: [52652.707146]  [<ffffffff811a8a3e>] __wait_on_buffer+0x2e/0x30
Sep 21 23:18:01 allhats2 kernel: [52652.707149]  [<ffffffff81257534>] journal_commit_transaction+0x484/0xfc0
Sep 21 23:18:01 allhats2 kernel: [52652.707152]  [<ffffffff8125b5eb>] kjournald+0xeb/0x250
Sep 21 23:18:01 allhats2 kernel: [52652.707154]  [<ffffffff8108aae0>] ? add_wait_queue+0x60/0x60
Sep 21 23:18:01 allhats2 kernel: [52652.707155]  [<ffffffff8125b500>] ? commit_timeout+0x10/0x10
Sep 21 23:18:01 allhats2 kernel: [52652.707157]  [<ffffffff8108a03c>] kthread+0x8c/0xa0
Sep 21 23:18:01 allhats2 kernel: [52652.707160]  [<ffffffff81664b74>] kernel_thread_helper+0x4/0x10
Sep 21 23:18:01 allhats2 kernel: [52652.707162]  [<ffffffff81089fb0>] ? flush_kthread_worker+0xa0/0xa0
Sep 21 23:18:01 allhats2 kernel: [52652.707163]  [<ffffffff81664b70>] ? gs_change+0x13/0x13

答案1

我做了一个hdparm -S 0,似乎问题已经解决了。至少我认为是这样——已经 24 小时没有出现死机。

更新48 小时后它又冻结了。

相关内容