我的 SSD 快要寿终正寝了?

2011 年中的 MBP13(末代机械硬盘 MBP?),2014 年把光驱换成 SSD(128G),把 HOME 放在 HDD,SSD 只用来安装系统且始终维持 50% 的空置,就这样续命至今。

前几天忽然频繁出现风火轮,点个鼠标,打句中文,都会导致无响应。开机用不到多久,就出现无法写文件、TMUX 开不了新 TAB、Dock 栏 App 无法运行、菜单栏随时风火轮。。。各种问题,只得强制重启。

刚开始以为是 M$ Edge 捣鬼,这几天唯一安装的新 App 就是它,也确实感觉到它的自动更新有点吃 CPU。但卸载之后问题并没有解决,甚至更严重了,只开一个 terminal 都会死机。然后观察到一个新的现象:

以往出现风火轮都伴随着风扇狂转、CPU 温度飚高,现在则是眼看着 CPU 温度逐步下降,直至整台机器没有丝毫运行的迹象

试了各种修复手段,无一奏效。打算重装系统,往 /Applications/ 目录拷贝 ‘Install macOS XXX.app’,拷贝速度直线下降,最后定格在 30k/s 无响应。

这才怀疑是不是 SSD 寿命到了,看了一下硬件信息,发现 TRIM 没开,就顺便开启了。重启之后开始依然有点卡,但没有立即风火轮,用着用着,似乎打字变顺畅了。

现在还在小心翼翼观察中,只开了 Emacs 和 Google Chrome(1个TAB)。

然而 DriveMe 检测说 SSD 状况良好,不知是否靠谱:

我跟你很像,我是2010mid MBP。换了SSD,爽了几年,后来也出现各种慢。拆下来测试SSD已经无法写入了。 换了新SSD似乎也不是很快。经常很热,风扇狂转。怀疑有病毒,扫描了一下还真有一个挖矿的恶意软件。 现在是重装了Mojave,换了CPU硅脂。又可以爽了! Edit: 细看才发现我坏的也是这个牌子的SSD

因为库克按了办公桌上所有旧型号都变卡的按鈕

5 个赞

也是同款SSD :nerd_face:

请问下怎么样判断SSD的寿命啊?我也有一个块老硬盘,2014 年买的三星ssd 840pro,当时组装的兼容机时作为系统盘用到去年10月份,机器就已经坏了,很担心这块硬盘会不会随时蹦了,纠结还要不要使用。

SSD 的寿命就是全量写入次数。假设容量 100G,写入量达到 100G 寿命才会减 1。这点跟锂电池充电循环有点类似。

简而言之,盘的容量越大,写入越少,寿命越长。

你可以估算一下,每天写入多少数据,如果经常用 SSD 下载,恐怕折损比较多。

估算有点难。我用三星的管理软件查看了,显示已经读写了20T,硬盘容量是128G的,这样说来硬盘寿命已经减少了160. 但是不知道硬盘的最大寿命是多少。

每个 TLC 单元的擦写次数约为 1000 次。所以总的写入量为 128G x 1000 = 128T。

:+1:这下放心了。 原来还有这么多没用,看来我要担心的不是容量的问题,而是老化问题。
再战1-2年应该没问题 :smile:

如果把存在SSD里的所有数据不会出错来判断SSD寿命的话,SSD的寿命除了与写入SSD数据量有关,也与SSD的出厂时间相关。 即便是一直在用的SSD写的数据总量比较少,但是时间久了里面数据出问题的概率还是会有明显升高的。

所以,这种有点久的SSD里的重要数据还是建议在其它地方有个及时的备份为好。 :sweat_smile:

跟楼上几位的写入量比较,我的就多太多了,足足有 57T,平均每天约 26G。

虽然我基本 24 小时不关机,但平时都很小心使用,从来不用 SSD 下载,目前这个写入量有点超常。

除了一些 app 写缓存之外,我感觉可能系统 log 写太多了。例如:

由于我从 hombrew&nixpkgs 安装了大量的命令(包括 coreutils),这些命令都是未签名的,每执行一次,就产生一条系统日志:


taskgated MacOS error: -67062

再加上我使用 tmux,并且配置得很花俏:时钟/电源/。。。这些都是按秒刷新的,每一秒就能产生数屏的 taskgated MacOS error: -67062,常年累积下来,仅这一项就非常可观了。

把每天的写入量换算成每秒,就更加清晰了:26*1024/(60*60*24) ~= 0.3M,每秒 300k 还是有可能达到的。


补充:

不加配置的 tmux 也能显示时钟,它应该是直接调用系统 API 所以刷新的时候不触发签名错误。而我的配置是在 https://github.com/gpakosz/.tmux.git 基础上改的,它是用 coreutils 命令来实现时钟和其它监测面板的。

没有开TRIM会卡这不是很正常吗?要不卡你才是外星科技SSD了。

SSD这类存储器的特点是读写都很快,但是擦除很慢。问题是你不可能一直写入到干净的区域,因为干净的区域迟早会用完。等到你不得不每写一块存储都得先擦除的时候,写入速度就自然很慢了。TRIM的作用是文件系统删除文件时会顺便通知SSD控制器这些区域已经没用了,你可以在方便的时候在后台慢慢擦除,这样下次需要写入的时候就立即有干净的区域可以写了。

我当时可能还在用 Snow Leopard,系统还不支持 TRIM。当时没设置,后来也不会想到这事。

在Arch wiki 上看到一些 最小化硬盘读写的技巧

1 个赞

又看了一下写入量,从昨天发帖到现在(27小时)大约是 (1896544-1895969)*32/1024 ~= 18G,比以往平均值低一些,应该是减少 taskgated 日志起作用了。

你是在Mac上面用吗?使用量确实很高啊。
请问下Mac和Linux是怎么查看使用量的? 我最近才转到Linux,对这方面不是很了解,现在换的一块新的256G 三星 860pro 作为Linux 系统盘。

macOS 下可用 smartctl 命令查看,Linux 不了解,应该更多工具。

macOS 的文件系统 HFS 对 SSD 比较伤,所以苹果后来专门开发了新的文件系统 APFS。

Linux 的 ext4 也伤 SSD,可适当降低日志写入量,具体操作请谷歌。

我用

当然只能看NVME盘

多谢。可惜我现在linux下用的是块新的sata3 SSD ,nvme装了Win10

几个参数 9 Power_On_Hours 26629 241 Total_LBAs_Written 35521412510 按照计算现在才用了16.54TB,传说中的上限是75TB。