关于 windows 不能开启机械硬盘写入缓存的问题.

2021-07-29 17:09:30 +08:00
 jeeyong

问题描述: 通过 资源管理器 -> 找到硬盘 -> 右键属性 -> 策略 -> 启用设备上的写入缓存 选择开启 -> 确定 提示 Windows 无法更改此设备的写入缓存设置.你的设备可能不支持此项设置或不支持更改此设置.

背景描述: 此前通过 BIOS 中设置过 RAID 0 模式, 后来一次内存超频的时候意外导致 BIOS 恢复默认, RAID 0 丢失. 然后更改模式为 AHCI, 没组 RAID 0 了.. 之后偶然一天发现设备上的缓存不能开启, 但是在拷贝大文件的时候, 看起来是有缓存的, 拷贝速度开始会跑到 2.9GB, 然后内存占用上升, 写满缓存后, 速度下降至 80MB 每秒左右. 但是这个写入速度似乎慢了一些..

软件环境: Windows 10 Pro 版本 MSI Center <- 这个工具有磁盘加速的插件, 但是没安装. 没有其他磁盘加速类的工具.

硬件环境: MSI Meg z490 ACE 1TB NVME SSD + 2TB NVME SSD + 8TB HDD + 8TB HDD, HDD 为希捷银河企业盘.

疑问: 想知道: 1. Windows 是否有缓存机制, 如果内存够大, 就会拿出来一部分作为 HDD 的缓存. (目前情况看是这样的.) 2. 目前的情况是否有必要开启 HDD 的这个缓存. 3. 什么原因导致的缓存不能开启, 直接得到答案的概率我觉得不高, 希望能获得到排查思路.

以上! 感谢!!

1490 次点击
所在节点    问与答
9 条回复
lsylsy2
2021-07-29 17:16:14 +08:00
BIOS 里是否设置了硬盘热插拔?
lsylsy2
2021-07-29 17:17:30 +08:00
1 是的
2 有
3 如上
jeeyong
2021-07-30 08:22:42 +08:00
@lsylsy2 谢谢你的回答..
BIOS 里热插拔选项是禁用的状态
昨天索性去公司测试了...
不同的机器, 用同型号的硬盘, 在同一接口上, 有的可以开启缓存, 有的不可以..然后将不能开启缓存的硬盘更换到其他的机器上, 同样不能开启. 我还特别选的接口是之前的硬盘, 正常开启了 写入缓存 的接口.

不知道为什么.!!!
我从公司拿了两块到可以开启缓存的硬盘回家, 同接口, 没改设置, 接上去就默认开启缓存的.
开启缓存读写速度在 230MB, 不开 80MB, 差别还是很大. 这个缓存和 WINDOWS 通过内存提供的缓存机制不一样, 可以叠加.
honeyjuice
2023-03-05 22:57:03 +08:00
@jeeyong 这个问题终于解决了
解决方案来源:
https://www.reddit.com/r/techsupport/comments/knaxg5/cant_enable_write_cache_on_seagate_barracuda/

我测试了下,smartctl -s wcache-sct,ata,p /dev/sdb
即可搞定,最近收了一批矿盘,就是其中几个写入速度缓慢,尤其是扫盘整盘写零的时候只有几十 MB/s ,但格式化后在 windows 下,写入倒有 200MB 左右。
这个问题困扰了很久,下了一堆测试软件进行测试,最后 Vitoria 的磁盘信息看到有个感叹号,提示写入缓存没开启,才逐步定位到这里的,定位到写入缓存没打开之后发现也跟 OP 一样打不开缓存,一开始以为缓存损坏,后来搜了下才发现是被强制关闭了写入缓存。

wcache-sct[,ata|on|off[,p]] - [ATA only] Gets/sets the write
cache feature through SCT Feature Control (if supported). The
state of write cache in SCT Feature Control could be "Controlled
by ATA", "Force Enabled", or "Force Disabled". SCT Feature con-
trol overwrites the setting by ATA Set Features command
(wcache[,on|off] option). If SCT Feature Control sets write
cache as "Force Enabled" or "Force Disabled", the setting of
wcache[,on|off] is ignored by the drive. SCT Feature Control
usually sets write cache as "Controlled by ATA" by default. If
',p' is specified, the setting is preserved across power cycles.
jeeyong
2023-03-08 05:08:07 +08:00
@honeyjuice 卧槽...我提问一张嘴, 你回答跑断腿...辛苦辛苦~~
非常感谢.
不过硬盘已经都出了..
大脑中已建立索引: 机械硬盘缓存无法开启 -> v2ex.
honeyjuice
2023-03-09 08:53:14 +08:00
@jeeyong 这种大概率以前盘是在服务器环境用的,因为阵列卡本身有缓存,他的缓存会带电池,这样可以防止丢失数据
然后为了防止磁盘本身的缓存出现冲突,就禁用了磁盘缓存
jeeyong
2023-03-09 10:25:44 +08:00
@honeyjuice 可我出问题的盘是希捷京东买的啊...当时一批几十块, 但是有几个是不能启用缓存的...
问了官方, 官方直接让我换货...我就申请换货了..
honeyjuice
2023-03-09 11:29:55 +08:00
@jeeyong 很奇怪 出现这种问题一般就是被 Force Disabled ,还只能用 smartctl 开启
jeeyong
2023-03-09 12:25:37 +08:00
@honeyjuice 嗯..不管怎么说, 掌握新姿势..先记住, 再说为什么..
感谢你的分享!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792519

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX