![为什么我的 Windows 7 PC/SSD 驱动器持续冻结?](https://linux22.com/image/1267660/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20Windows%207%20PC%2FSSD%20%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%8C%81%E7%BB%AD%E5%86%BB%E7%BB%93%EF%BC%9F.png)
我有一台使用了约 1 年的 PC,主硬盘为 SSD。我经常注意到 PC 会冻结 30 秒到几分钟,在此期间显示“旋转的蓝色滚轮”鼠标图标。然后它就会恢复正常。
当我查看此期间的资源监视器时,我注意到磁盘活动始终处于“100% 最高活动时间”状态。但实际的磁盘活动量在我看来并没有那么高(<1Mb/秒)。内存和 CPU 从未受到过太大压力。
通常,防病毒软件(卡巴斯基防病毒软件 11.0.0.232)是磁盘活动最活跃的用户,但这对我来说似乎并不罕见。在这些期间,我通常不会对我的 PC 施加太大的压力,只是进行少量的网页浏览等。
我猜测这是驱动器的问题,但我不确定下一步该做什么(除了购买新的驱动器)。
有任何想法吗?
谢谢,
答案1
您可能使用的是使用臭名昭著的 JMicron JMF602 控制器的 SSD。它既是 SATA 设备又是 USB 设备这一事实是一个提示,因为 JMF602 是少数内置 USB 支持的控制器之一。
问题源于 SSD 控制器无法覆盖闪存上的数据,以及特定控制器如何处理它。由于 SSD 控制器无法覆盖闪存上的数据,因此它必须先删除旧数据。但闪存的另一个限制是 SSD 控制器无法一次删除一页数据,而必须一次删除整个块(通常大约几兆字节)。为了避免这种情况,SSD 控制器会将新数据写入新块并将旧数据标记为无效。然后它会进行垃圾收集,这基本上就是删除充满无效数据的块。
您遇到的具体问题是,当您想要将一些数据写入 SSD 时,没有新的空块可以写入数据。所有块都填充了有效和无效数据。然后,SSD 控制器必须对正在使用的块进行垃圾收集。它所做的是将块的所有数据读入缓存。删除缓存中的无效数据。删除闪存中的整个数据块。然后将您正在写入的新数据和缓存中的数据写入现在干净的块。如果同时发生许多此类情况,控制器就会不堪重负,基本上会停止响应,直到它能够清除积压数据。
所有这些都发生在 SSD 内部,对操作系统完全隐藏。这就是为什么传统的故障排除技术都无法找到它的原因。如果 SSD 上的所有块都有数据,则只需进行一次微小的写入即可强制 SSD 完成整个读取/删除/写入过程,这就是为什么您看不到任何大写入的原因。现代 SSD 没有同样的问题。它们内置了许多技术来避免这种情况,例如花哨的主动垃圾收集、RAM 缓存和过度配置。它们可能会遭受写入速度下降,但不足以导致系统冻结。
坏消息是,除了升级到好的 SSD 之外,你无法做任何事情来解决这个问题。这是 SSD 本身的设计缺陷。你可以尝试尽量减少对 SSD 的写入量。这会使卡顿现象更加少见,但不能完全解决它。
令人惊讶的是,在一台仅使用 1 年的 PC 上,就有一个基于 JMF602 的 SSD。几年前,他们就停止生产和销售它们了。
答案2
鼠标是否也停止移动?如果鼠标也没有响应,则内核模式中的某些东西占用了 CPU。否则,该进程只是行为异常。
接下来就是运行资源监控,看看问题是否发生在分页期间。检查分页操作的响应时间:
接下来,我们必须知道暂停是否影响所有应用程序,还是仅影响 Explorer。如果仅影响 Explorer,则可能是 Shell 扩展(例如 WinRar、7Zip、RapidShare)或其他同样糟糕的程序干扰了 Explorer。它也可能是映射驱动器或网络资源的快捷方式,并且当 Explorer 尝试更新图标、修改日期或大小等时,网络资源不再响应。
答案3
卡巴斯基是这里的关键词。完成扫描后,再回去玩游戏。
答案4
我曾经见过卡巴斯基这样做。内存消耗量急剧上升,这会导致大量交换。我一直不明白它这样做到底是为了什么。