【PConline雜談】搭載M1處理器的MacBook讓很多人大吃一驚。這么強的性能,還能實現長續(xù)航,這讓很多人驚呼這是輕薄本的終極形態(tài)。不過最近M1 MacBook引起了一些爭議,有用戶發(fā)現SSD在使用一段時間后寫入的數據量巨大。要知道,SSD中NAND的寫入次數是有限的,而M1 MacBook還是一臺新機,產生了這么大的寫入量。這是為什么?真的重要嗎?我們簡單說一下。
M1 MacBook存在固態(tài)硬盤寫入過多的問題?
SSD損耗無可避免:操作系統(tǒng)的Swap機制
根據反饋,所寫的海量SSD并不是頻繁掛機下載的任務造成的。在日常使用中,固態(tài)硬盤已經有這種情況。其實很多操作系統(tǒng)都會造成這樣的情況,但可能沒有M1 MacBook那么夸張。固態(tài)硬盤的丟失在日常使用中是不可避免的,實際上是固態(tài)硬盤充當內存交換造成的。
在macOS中交換
什么是交換?這是桌面操作系統(tǒng)中常見的系統(tǒng)機制。我們可以大致理解為硬盤充當內存。在桌面環(huán)境下,PC、Mac等設備需要具備實時運行多個大規(guī)模軟件的能力,這就需要足夠的內存來存儲這么多大規(guī)模軟件的處理能力。但是物理內存有限,所以操作系統(tǒng)需要調用硬盤空間來充當內存。
交換機制的簡單示意圖
在macOS系統(tǒng)中,當軟件開始運行時,進程將被讀入物理內存。隨著運行軟件越來越多,操作系統(tǒng)會意識到內存不夠用。第一種措施是壓縮內存中的數據,會消耗一定的CPU資源;當更多數據進入內存時,操作系統(tǒng)會考慮丟棄內存中的部分數據。此時,內存中未修改的數據將首先被丟棄,釋放部分內存空間——。例如,如果您打開一個軟件,但從未操作過它,那么隨著內存逐漸填滿,軟件內存中的一些數據實際上可能會被擦除。當您重新啟動軟件的操作時,您將再次從硬盤讀取所需的數據。在這種情況下,操作系統(tǒng)不會將大量數據寫入固態(tài)硬盤。
但是,當內存中的數據被修改,導致“臟頁”時,情況就不同了。當內存逐漸被填滿時,操作系統(tǒng)無法直接從內存中清理“臟頁”。畢竟這經常記錄軟件的工作過程。此時,macOS會將這個“臟頁”臨時存儲在SSD中,SSD會生成寫入SSD的數據。
因此,macOS也建立了一個特殊的VM分區(qū)來存儲這些內存數據。當物理內存緊張時,用戶打開的軟件越多,軟件需要的內存容量越大,虛擬機分區(qū)的I/O就會越頻繁,寫入的數據也會越多。在這樣的Swap操作下,即使沒有下載和傳輸數據等操作,也會有大量數據寫入SSD。
macOS中的虛擬機分區(qū)
實際上,Swap機制不僅存在于macOS中,也存在于Windows、Android等系統(tǒng)中。在Windows中,我們可以在高級系統(tǒng)設置中找到“虛擬內存”,即硬盤為內存臟頁提供存儲空間;在安卓系統(tǒng)中,也有zRAM和Swap的機制,壓縮內存并寫入NAND。
Win10中的虛擬內存設置
但iOS沒有Swap機制,可能與墓碑機制不需要占用太多RAM,以及蘋果將iOS設備定位為非重度生產力工具等因素有關。
M1版MacBook為何SSD寫入數據尤其多?
Swap是一種非常常見的系統(tǒng)機制,Windows、Android等操作系統(tǒng)都有類似的設計。不過根據用戶反饋,M1 MacBook的SSD寫了很多數據。為什么呢?以下是一些分析。
和長期不關機的用戶習慣有關。,的Mac電腦,其中之一是M1 MacBook,強調“打開蓋子使用它”。很多用戶養(yǎng)成了長時間不關機的習慣,不使用電腦的時候只能閉著蓋子睡覺。操作系統(tǒng)尚未重新啟動。長期持續(xù)使用后,內存中的臟頁會越來越多,寫入SSD的數據也會越來越多。此外,macOS的休眠模式會將RAM數據寫入硬盤,長期使用休眠待機也會增加SSD的寫入量。
MacBook強調“打開即用”,長時間不關機,Swap更頻繁,休眠會增加SSD的寫入量
和軟件生態(tài)有關。,的軟件越新,占用的內存就越多。這是一個不爭的大勢,業(yè)內稱之為“安迪-比爾定律”。M1 MacBook在硬件上進行了創(chuàng)新,并發(fā)布了許多新版本的軟件。新版本的軟件帶來了更多的內存容量需求,這使得操作系統(tǒng)更容易觸發(fā)Swap。同時,一些X86老軟件在M1 MacBook上運行,需要Rosetta 2翻譯代碼,會占用更多的存儲空間。安裝和使用這樣的舊軟件也可能會加劇對SSD的寫操作。
與M1 MacBook兼容的X86軟件需要進行Rosetta 2翻譯,這會占用額外的硬盤容量,并將更多數據寫入SSD
和RAM容量過小有關。m1 MacBook只提供8G和16G RAM容量,而大部分用戶選擇8G RAM版本。物理內存越小,越容易觸發(fā)交換。一些用戶報告稱,配備8G內存版本的M1 MacBook確實比16G版本產生了更多的固態(tài)硬盤寫入數據。
或許和M1芯片架構有關
。M1芯片使用了片上系統(tǒng)的設計,RAM和CPU核心集成到了一起,這有助于提高I/O效率,但也有可能加快Swap的速度。但這只是一種可能,蘋果沒有公開太多M1芯片在這方面的細節(jié),無法推定。·或許和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寫入量,真的算是缺陷嗎?筆者認為需要辯證看待。
用戶反饋,M1版MacBook使用僅僅60天,就產生了高達261TB的SSD寫入量
·從歷史來看,如果只是正常使用,SSD的損壞基本是由于硬件缺陷或者固件問題導致,SSD很少因為寫入次數耗盡,而壽終正寢。很多SSD的實際壽命都高于官方標稱,外媒Hardware.info曾經進行過測試,即使是TLC閃存的SSD,壽命也遠超預期。SSD一般存在冗余容量,這部分容量用戶不可見,可以有效延長SSD的生命周期。
·SSD很多寫入行為產生于早期,例如X86軟件進行Rosetta轉碼導致SSD寫入額外數據,這樣的情況只會發(fā)生一次。隨著使用時間,SSD的損耗速度應該會有所回落。
如果你實在擔心,可以選擇購買更大RAM和SSD容量的MacBook使用。更大的RAM意味著更多數據讀寫發(fā)生在物理內存中,平時會觸發(fā)更少的Swap;而更大的SSD容量意味著寫入同樣的數據量,SSD的損耗更少。當然,這樣的設備價格也會更高。
至于這到底算不算硬傷,由于目前該現象尚未引發(fā)故障,因此很難說這屬于設計缺陷。不過,該現象很值得大家保持關注,尤其是Spotlight的表現,大家可以暫時停用Spotlight,觀察是否SSD寫入數據有所減少。
總結
總的來說,M1版MacBook大量SSD寫入,是由Swap機制引起的,而M1版MacBook本身的軟硬件特性,讓該現象尤為突出,引發(fā)了用戶的注意。雖然這目前沒有引發(fā)故障,但也值得重視,用戶的擔心是有道理的。希望蘋果能盡快能出面解釋,或者改進系統(tǒng)機制,給用戶一個好交代吧。