0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

M1版MacBook有硬伤,SSD损耗无可避免

工程师邓生 来源:太平洋电脑网 作者:太平洋电脑网 2021-03-15 14:38 次阅读

M1处理器版的MacBook惊艳了很多人的眼球,有如此强劲的性能的同时,还可以实现超长续航,让很多人惊呼这就是轻薄本的终极形态。然而,最近M1版MacBook却引发了一些争议,有用户发现在使用一段时间后,SSD的写入数据量非常巨大。要知道,SSD中NAND的写入次数是有限的,M1版MacBook这还算是新机,就产生了如此写入量,为什么会这样?到底要不要紧?这就来简单谈谈。

M1版MacBook出现SSD写入量过大的问题?

SSD损耗无可避免:操作系统的Swap机制

根据反馈,出现巨大写入量的SSD,并不是经常挂机下载这样的任务引起的。在日常使用中,SSD就已经会出现此类情况。实际上,很多操作系统都会造成这样的状况,只不过可能没有M1版MacBook那么夸张。SSD的损耗在日常使用无可避免,其实这是SSD充当了内存Swap引起的。

macOS中的Swap

什么是Swap?这是一个在桌面操作系统中常见的系统机制,我们可以大致理解为硬盘充当了内存的作用。在桌面的使用环境下,PC、Mac等设备需要拥有实时运行多个大型软件的能力,这就需要内存足以存储这么多个大型软件的进程容量。然而物理内存是有限的,为此操作系统就需要调用硬盘空间,充当内存的作用。

Swap机制的简单示意图

在macOS系统中,当软件开始运行,进程即会被读取到物理内存当中。随着运行的软件越来越多,操作系统会意识到内存不够用,首先采取的措施是对内存中的数据进行压缩,这会消耗一定的CPU资源;当进入内存的数据变得更多后,操作系统就会考虑舍弃一部分内存中的数据,这时候在内存中没有被修改过的数据首先被抛弃,释放出部分内存空间——例如你打开一个软件,从未操作过,随着内存逐渐被占满,这个软件在内存的一些数据可能实际上已经被清除掉,当你重新开始操作该软件的时候,会重新从硬盘读取所需数据。在这种情况下,操作系统并不会对SSD写入大量数据。

然而,当内存中的数据被修改过,产生了“脏页”,情况就不一样了。当内存逐渐被占满时,操作系统并不能直接将“脏页”从内存中清理出去,毕竟这往往记录着软件的工作进程。这时候,macOS会将这部分“脏页”暂存到SSD中,这就产生了写入SSD的数据。

为此,macOS还建立了一个专门的VM分区,来存放这些内存数据,当物理内存越紧张、用户开启软件越多、软件需求的内存容量越大的时候,VM分区的I/O就会更加频繁,写入的数据也就更多。在这样的Swap操作之下,就算没有进行下载、传输数据之类的操作,也会有大量的数据写入SSD。

macOS中的VM分区

实际上,并非只有macOS存在Swap的机制,Windows、Android等系统均有类似设计。在Windows中,我们可以在系统高级设置中找到“虚拟内存”,这即是硬盘为内存脏页提供存储空间;在Android中,也有zRAM和Swap的机制,会对内存进行压缩和写入NAND。

Win10中的虚拟内存设置

不过,iOS倒是没有Swap机制,这或许和墓碑机制不需要占用太多RAM、苹果对iOS设备定位为非重度生产力工具等因素有关。

2M1版MacBook为何SSD写入数据尤其多?回顶部

M1版MacBook为何SSD写入数据尤其多?

Swap是一种非常常见的系统机制,Windows、Android等操作系统有类似设计。但有用户反馈,M1版MacBook的SSD写入数据就是特别多,这到底是为什么?下面是一些分析。

和长期不关机的用户习惯有关。Mac电脑,有其是M1版MacBook,强调“掀盖即用”,很多用户养成了长期不关机的习惯,不使用电脑时仅仅合盖休眠。操作系统没有经过重启,经过长时间持续使用,内存脏页会越来越多,写入SSD的数据也越来越多。加上macOS的休眠状态(hibernatemode)会将RAM数据写入硬盘,长期使用休眠待机,也会加大SSD的写入量。

和软件生态有关。越新的软件,占用的内存越多,这是无可辩驳的大趋势,在业界中被称为“安迪-比尔定律”。M1版MacBook由于硬件上进行了革新,很多软件也随之发布新版,新版软件带来了更大的内存容量需求,使得操作系统更容易触发Swap。与此同时,一些X86老软件在M1版MacBook运行,需要经过Rosetta 2转译代码,这会占用更多的存储空间,安装、使用这样的老软件,这也有可能加剧对SSD的写入操作。

和RAM容量过小有关。M1版MacBook仅提供8G和16G两种RAM容量,而多数用户都选择8G RAM的版本。物理内存越小,就越容易触发Swap,有用户反馈称,8G RAM版本的M1版MacBook的确比16G版产生了更多SSD写入数据量。

或许和M1芯片架构有关。M1芯片使用了片上系统的设计,RAM和CPU核心集成到了一起,这有助于提高I/O效率,但也有可能加快Swap的速度。但这只是一种可能,苹果没有公开太多M1芯片在这方面的细节,无法推定。

或许和Spotlight有关。Spotlight是macOS中的全局搜索机制,它会检索硬盘中的所有数据。部分用户反馈,新版macOS的Spotlight很有可能额外对SSD写入了大量数据,目前某些beta版的macOS已经停用了Spotlight的文件检索。不过Spotlight是否是真正的原因,还有待苹果官方证实。

Spotlight可能是导致SSD写入增加的原因,但这点有待证实。

M1版MacBook真的有硬伤吗?

在多种因素作用下,部分用户的M1版MacBook产生了较多的SSD写入量。例如有用户反馈,使用仅仅60天,就产生了高达261TB的SSD写入量,以1000次P/E计算,则已经消耗了一块256G SSD 10%的寿命。那么M1版MacBook如此巨大的SSD写入量,真的算是缺陷吗?笔者认为需要辩证看待。

从历史来看,如果只是正常使用,SSD的损坏基本是由于硬件缺陷或者固件问题导致,SSD很少因为写入次数耗尽,而寿终正寝。很多SSD的实际寿命都高于官方标称,外媒Hardware.info曾经进行过测试,即使是TLC闪存的SSD,寿命也远超预期。SSD一般存在冗余容量,这部分容量用户不可见,可以有效延长SSD的生命周期。

SSD很多写入行为产生于早期,例如X86软件进行Rosetta转码导致SSD写入额外数据,这样的情况只会发生一次。随着使用时间,SSD的损耗速度应该会有所回落。

如果你实在担心,可以选择购买更大RAM和SSD容量的MacBook使用。更大的RAM意味着更多数据读写发生在物理内存中,平时会触发更少的Swap;而更大的SSD容量意味着写入同样的数据量,SSD的损耗更少。当然,这样的设备价格也会更高。

至于这到底算不算硬伤,由于目前该现象尚未引发故障,因此很难说这属于设计缺陷。不过,该现象很值得大家保持关注,尤其是Spotlight的表现,大家可以暂时停用Spotlight,观察是否SSD写入数据有所减少。

总的来说,M1版MacBook大量SSD写入,是由Swap机制引起的,而M1版MacBook本身的软硬件特性,让该现象尤为突出,引发了用户的注意。虽然这目前没有引发故障,但也值得重视,用户的担心是有道理的。希望苹果能尽快能出面解释,或者改进系统机制,给用户一个好交代吧。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18298

    浏览量

    222254
  • 芯片
    +关注

    关注

    447

    文章

    47821

    浏览量

    409207
  • macbook
    +关注

    关注

    0

    文章

    479

    浏览量

    41444
  • SWAP
    +关注

    关注

    0

    文章

    47

    浏览量

    12636
收藏 人收藏

    评论

    相关推荐

    MOS管的具体应用电路

    电路设计时,不同的子系统之间无可避免的需要数字信号传递,不同的系统之间或者设备之间,数字接口电平经常不一致,故需要用到电平转换电路;
    发表于 04-27 06:27 24次阅读
    MOS管的具体应用电路

    在MAC M1的虚拟机上运行ARM版的windows,ST-LINK的驱动为什么装不上?

    在MAC M1的虚拟机上运行ARM版的windows,ST-LINK的驱动装不上
    发表于 04-01 08:24

    怎么将pMCI[M1]->pSTM->bState 的 IDLE_START传递给STM[M1]->bState的?

    各位亲: 我在5.4的库里面发现按键启动后,开始电机用的是 pMCI[M1] 这个结构体,如下 __weak bool MC_StartMotor1(void) { return
    发表于 03-27 07:56

    苹果发布搭载M3芯片的新款MacBook Air

    苹果近日在线上发布了搭载全新M3芯片的MacBook Air,这款电脑在性能上有了显著的提升。据官方数据显示,相比之前的M1芯片版本,新款MacBook Air的运行速度提升了高达60%,这无疑将为用户带来更加流畅和高效的使用体
    的头像 发表于 03-13 17:05 521次阅读

    为什么无法在MacOS上使用CY4500 PD软件?

    附上了一张屏幕截图。 我正在使用 M1 macBook Pro,macOS 13.5.2。 我之前发布了有关该软件根本没有启动的信息,并被告知要安装 JAVA 8。 我编辑了程序
    发表于 02-23 06:46

    AD8330和AD8138级联中间1dB的损耗,是什么原因呢?

    AD8330和AD8138级联中中间1dB的损耗,是什么原因呢,是需要阻抗匹配么,需要怎么匹配呢
    发表于 11-14 06:26

    CR95HF芯片怎么向M1卡中读写数据和加密?

    的SENDRECV命令,向M1卡发送以下验证密钥的命令(0x04+length+M1卡扇区需要认证的块数+认证密钥A+UID)格式,芯片接收不到正确的数据,请教一下哪位前辈之前接触过这款芯片的,指点指点。
    发表于 10-24 06:16

    关于RFID M1卡读写问题?

    为什么我的M 1卡只能读块0,是不是因为其他块锁了? 0、1、2、3块是同一个扇区,能访问0块,就是能访问1、2块。 用读ID命令可以读回0块的ID相关字节,用0块读可以读回所有16字
    发表于 10-23 07:01

    ssd1306 OLED花屏怎么解决?

    ssd1306用spi连接arduino,几率花屏,但是在树莓派上用就没问题,请问各位大佬什么好的建议吗
    发表于 10-19 08:26

    STM32 分立元件读写M1及CPU卡问题

    之前看到别人做的项目用的是该电路图实现了M1卡CPU卡的读写,使用的是STM32F072CBT6的芯片,外接13.56Mhz的晶振。这个软件上是怎样实现的?
    发表于 10-05 17:08

    为什么SSD2828读取不到ID值都是0xFFFF?

    2828_Write_REG(0x00BA0xC050);//Fout = Fin * 0x14 / 1 = 10M * 80 /1 = 800M
    发表于 09-28 06:16

    高效率反激变换器设计技巧分享

    漏感问题是反激变换器的基本问题。漏感是硬伤。要实现高效率,控制漏感是重头戏。先做好漏感,再说其余。漏感多大?意味着能量传递损失多大,变换器效率损失多大,钳位电路热损耗
    发表于 09-19 07:44

    DMC4040SSD可降低MOSFET损耗 确保可靠运行

    电子发烧友网站提供《DMC4040SSD可降低MOSFET损耗 确保可靠运行.pdf》资料免费下载
    发表于 07-25 16:07 0次下载
    DMC4040<b class='flag-5'>SSD</b>可降低MOSFET<b class='flag-5'>损耗</b> 确保可靠运行

    MacBook Pro 2014无法读取串行监视器是为什么?

    计算机:MacBook Pro 2014 / High Sierra 主板:NodeMcu LoLin V3 -ESP-12E,芯片 CH340G 问题:无法从串口读取信息。试图切换波特率。尝试
    发表于 06-06 12:23

    如何将GPIO0和GPIO4用于SCL/SDA ssd1306?

    我不小心弄乱了我的 pcb 设计并将 SSD1306 SCL 连接到 D3(GPIO0) 而不是 D1(GPIO5),SDA 在 D2(GPIO4) 上。我知道 GPIO0 是要避免的,并且有引导
    发表于 06-01 07:23