硬盘高温、闲置时频繁访问

硬盘高温、闲置时频繁访问

我购买了两个 WD Gold 4TB,并在单个 RAID1 分区 md0 上安装了带有 kde 的 debian sid:

# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] 
[raid4] [raid10] 
md0 : active raid1 sda1[0] sdb1[1]
      3906885632 blocks super 1.2 [2/2] [UU]
      bitmap: 5/30 pages [20KB], 65536KB chunk

unused devices: <none>

# mount | grep md0
/dev/md0 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)

现在的问题是,hddtemp即使在空闲时,报告的温度也非常高(通过触摸磁盘确认)

# hddtemp /dev/sda /dev/sdb
/dev/sda: WDC WD4002FYYZ-01B7CB1: 59 C
/dev/sdb: WDC WD4002FYYZ-01B7CB1: 57 C

那比室温高出30多度!我尝试打开机箱的侧面板以进一步冷却,但没有帮助。

我几乎每秒都能听到磁盘访问的声音,并且有少量的读/写,我想这可以防止旋转。还iotop每隔一/两秒报告几 kB/s 的写入。原则上这样的写入应该被缓冲,但看起来它们是瞬时写入的。

因此我尝试增加缓冲区大小:

# echo cfq > /sys/block/sda/queue/scheduler
# echo 10000 > /sys/block/sda/queue/iosched/fifo_expire_async
# echo 250 > /sys/block/sda/queue/iosched/fifo_expire_sync
# echo 80 > /sys/block/sda/queue/iosched/slice_async
# echo 1 > /sys/block/sda/queue/iosched/low_latency
# echo 6 > /sys/block/sda/queue/iosched/quantum
# echo 5 > /sys/block/sda/queue/iosched/slice_async_rq
# echo 3 > /sys/block/sda/queue/iosched/slice_idle
# echo 100 > /sys/block/sda/queue/iosched/slice_sync

(与 sdb 相同),并且还更改hdparm电源管理标志(请参阅https://ubuntuforums.org/showthread.php?t=795327):

# hdparm -B /dev/sda
/dev/sda:
APM_level      = 255
# hdparm -B 64 /dev/sda
/dev/sda:
 setting Advanced Power Management level to 0x40 (64)
 APM_level      = 64

我还注意到Load_Cycle_Count计数器增加了大约 5/分钟:

# date; sudo smartctl -a /dev/sda | grep 'Load_Cycle_Count'
Tue Apr 24 16:14:00 CEST 2018
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always  -  338
# date; sudo smartctl -a /dev/sda | grep 'Load_Cycle_Count'
Tue Apr 24 16:15:03 CEST 2018
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always  -  343

以这样的速度,磁盘将在不到 1 年的时间内损坏(声明为 600000 次循环)。

这是来自以下的信息hdparm

# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD4002FYYZ-01B7CB1, FwRev=01.01M03, SerialNo=K3H05BLL
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56
 BuffType=DualPortCache, BuffSize=unknown, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=7814037168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode

BuffSize=unknown让我怀疑缓冲区有问题。怎么才能知道硬盘为什么温度这么高?

答案1

对我来说,每秒磁盘访问的原因是 hddtemp 本身。一旦我停止守护进程,磁盘访问就停止了。

相关内容