hdparm 导致驱动器在转速下降后转速上升

hdparm 导致驱动器在转速下降后转速上升

我已按照 hdparm 的手册尝试在几分钟不活动后使驱动器旋转,但一旦旋转,它就会在 30 秒内再次打开,但我没有听到任何磁盘活动。有人在这里报告了 hdparm 参数的错误:

使用电池时硬盘旋转过于频繁

所以我尝试了不同的价值观。我注意到这个设置:

hdparm -q -a 1 -B 128 -S 120 /dev/sda

...导致硬盘驱动器速度变慢,就好像它有时会断电然后在完全断电之前立即通电(就像微小的撞击一样)。

显然,这个命令修复了这个问题,但即使我从不接触计算机,驱动器也始终保持打开状态:

hdparm -q -a 1 -B 255 -S 120 /dev/sda

因此,我查看了哪些内容可以在空闲时间执行 IO,并注意到 kworker 线程每秒左右执行一次。我不确定 udisk、upowerd 或 udev 是否​​是造成此问题的原因。

我还制作了一个 ram 驱动器 (dev/ramX) 并在那里存储经常访问的文件,以便最大限度地减少对磁盘的 I/O。

我不知道我在 sysctl 设置中是否使用了理想的设置,但这些是我拥有的值:

对于 /proc/sys/vm 文件夹:

admin_reserve_kbytes=8192
block_dump=0
compact_unevictable_allowed=1
dirty_background_bytes=0
dirty_background_ratio=54
dirty_bytes=0
dirty_expire_centisecs=10
dirty_ratio=55
dirty_writeback_centisecs=300
dirtytime_expire_seconds=43200
drop_caches=0
extfrag_threshold=500
highmem_is_dirtyable=0
laptop_mode=1
legacy_va_layout=0
lowmem_reserve_ratio=256        32      32
max_map_count=65530
min_free_kbytes=43196
mmap_min_addr=98304
nr_pdflush_threads=0
oom_dump_tasks=0
oom_kill_allocating_task=1
overcommit_kbytes=0
overcommit_memory=0
overcommit_ratio=50
page-cluster=128
panic_on_oom=0
percpu_pagelist_fraction=0
swappiness=0
user_reserve_kbytes=64233
vdso_enabled=1
vfs_cache_pressure=10000

对于 /proc/sys/fs 文件夹:

aio-max-nr=65536
aio-nr=0
dentry-state=36019      23519   45      0       0       0
dir-notify-enable=1
file-max=205612
file-nr=4056    0       205612
inode-nr=27643  72
inode-state=27643       72      0       0       0       0       0
lease-break-time=45
leases-enable=1
nr_open=1048576
overflowgid=65534
overflowuid=65534
pipe-max-size=1048576
pipe-user-pages-hard=0
pipe-user-pages-soft=16384
protected_hardlinks=0
protected_symlinks=0
suid_dumpable=0

我不知道文件系统是否重要,但驱动器有多个 ext3 和 vfat 分区。

我也不使用交换驱动器,因为我安装了 2 GB 内存。

在我准备好再次使用计算机之前,如何确保磁盘能够关闭不活动状态?

我在一台较旧的 32 位 PC 上运行带有 xfce 的 slackware 14。我还检查了 xfce 和 KDE 中的电源设置,但没有看到任何地方可以指定超时来关闭驱动器。

不,我没有钱投资 SSD,而且我记得最近有人在 Mac 上遇到了其中一个 SSD 的问题。

相关内容