硬盘活动过多

硬盘活动过多

我在主硬盘的 ext4 分区上安装的 Ubuntu 12.04 x64“全新”版本上遇到了问题。每隔 5 到 10 秒,硬盘就会处于活动状态,大约 10 秒,无论打开或运行什么应用程序,都会写入数据。我使用 iotop 发现 jbd2 一直在向硬盘写入数据。硬盘的噪音让我抓狂,按照这种速度,磁盘不会持续很长时间。在同一硬盘上,我安装了 Windows 7(双启动 Grub2),一切正常,不使用时磁盘会关闭,计算机保持静音。其他一切都运行良好(Skype 和网络摄像头只有一点小问题,但可以忍受),但担心丢失磁盘和噪音是无法忍受的,因为我每天要开着电脑 10 个小时……

我尝试手动降低日志记录的频率,但到目前为止,在网上找不到任何能帮我解决的问题,磁盘以相同的速率磨损。

这个问题有解决办法吗?如果没有,我想我会停止使用 Ubuntu,因为在这种使用率下,没有硬盘能用很长时间,而且硬盘的噪音让人无法忍受……

答案1

这是硬盘活动超出正常使用范围且用户使用频率不高的情况,这种情况很少见。在我使用 Ubuntu 的这么多年里,这种情况只发生过两次。有一次我通过fsck对磁盘进行操作解决了这个问题。

例如,如果您的 HDD/dev/sdb1如下,请执行以下操作:

sudo fsck /dev/sdb1

在这种情况下,它说我已经启动了硬盘超过 200 次,但没有检查。我实际上没有计算过有多少次,但在我看来 200 次已经很多了。

无论如何,当我开始检查时,它开始在某个时候发现问题并修复它们。实际上有很多问题。之后我重新启动,问题就消失了。

第二种情况是因为我编辑了/etc/fstab并错误地将一个参数传递给了硬盘。解决方案是从中删除该参数。

我还必须说,增加noatime硬盘容量可以减少写入操作的数量。例如,这是我的硬盘中的文件fstab

# / was on /dev/sda2 during installation
UUID=38673e00-ecc8-4e11-85d2-58af72999e5b /               ext4    noatime,errors=remount-ro 0       1

诺亚泰参数,磁盘活动较少。但是,如果使用内核 2.6.30 或更高版本,相对时间好多了。

我对此的建议是:

  • 在有问题的驱动器上运行fsck。它可能会检测到很多问题,也可能不会,但检查它将确保信息正确并且硬盘没有文件系统问题。

  • 在桌面运行该disks实用程序。它显示驱动器的状态及其 SMART 信息。这可以为您提供有关它的更多信息,特别是如果它有硬件问题。

  • 输入dmesg并查看最后几行。如果每 10 秒有事情发生,它会显示在那里。它也可以显示在cat /var/log/syslogcat /var/log/kern.log

  • 最后添加诺亚泰参数添加到您的fstab文件中以节省一些访问时间。

答案2

  1. 如果您看到很多活动,但实际上没有运行太多程序,请检查是否有任何日志正在获得大量更新。运行此程序时,查看是否有任何文件增长...

    ls -lS /var/log/*log | head
    
  2. 如果你的硬盘支持 SMART,你可以使用

    hdparm -B 255 /dev/sdX
    

    其中 sdX 需要更改为有效分区。

  3. 检查你fstabnoatime

  4. 从下面的最后一个链接中,有人声称他通过强制检查分区解决了这个问题。

    touch /forcecheck
    

    重新启动将确认是否是这种情况。


另请查看这个主题:

即使在空文件系统上,ext4 jbd2 日志仍处于活动状态


这很可能是内核问题(与 Ubuntu 没有特别关系)。2010 年,Ubuntu 和 Arch 用户都遇到了同样的问题. 可能值得将其作为针对您正在使用的内核的错误发布在启动板上。

答案3

我在使用联想/Thinkpad时遇到过这个问题,我尝试了所有方法,但最后我发现是东芝驱动器的问题。东芝驱动器的停放选项有问题,它会失控并不断尝试停放驱动器,这就是您听到的噪音。

http://disablehddapm.blogspot.com.au/2011/12/disabling-hard-disk-drive-advanced.html

解决方案是禁用电源管理,尽管这会缩短电池寿命。这对我的驱动器有效,但由于您没有告诉我们您使用的是哪种驱动器,因此此解决方案可能不起作用,需要设置不同的参数。

答案4

/etc/fstab在文件上,在 HDD 上的文件系统的挂载选项末尾添加以下字符串:

,commit=600

例如:

UUID=cc614fb7-fbdc-4b6d-af3c-a3fda4f699a0 /   ext4    defaults,commit=600    0       2

重启并享受

man mount说:

commit=nrsec 每 nrsec 秒同步所有数据和元数据。默认值为 5 秒。零表示默认。

相关内容