Linux和MacOS不需要碎片整理的原因

這篇文章主要講解了“Linux和MacOS不需要碎片整理的原因”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux和MacOS不需要碎片整理的原因”吧!

堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都宣傳片制作小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站定制營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

相信今天很多的軟件工程師使用的都是 Linux 或者 macOS 系統(tǒng),與 Windows  不同,我們很難看到磁盤碎片整理這一概念,從個(gè)人的經(jīng)驗(yàn)來看,作者在過去七八年沒有在 macOS  中整理過磁盤的碎片,你在今天的磁盤工具中也找不到相關(guān)的操作,只能通過 diskutil 命令設(shè)置某一塊磁盤是否開啟或者關(guān)閉碎片整理。

Linux和MacOS不需要碎片整理的原因

圖 1 - macOS 磁盤工具

我們在 前一篇文章 中曾經(jīng)分析過為什么早期 Windows 操作系統(tǒng)每隔一段時(shí)間可能需要整理磁盤上的碎片[^1],該問題背后有兩個(gè)原因,其一是  Windows 使用的 FAT  是很簡單的文件系統(tǒng),該文件系統(tǒng)的設(shè)計(jì)決定了同一份文件可能會散落在磁盤的不同位置,其二是固態(tài)硬盤在上古時(shí)代沒有普及,機(jī)械硬盤的隨機(jī)讀寫性能很差。

  • Linux 和 macOS 系統(tǒng)不需要碎片整理的原因與 Windows 需要碎片整理的原因正好相反:

  • Linux 和 macOS 使用的文件系統(tǒng)或者降低了碎片發(fā)生的概率或者實(shí)現(xiàn)自動整理碎片的特性;

固態(tài)硬盤與機(jī)械硬盤具有不同的特性,碎片整理可能不僅對提高讀寫性能沒有顯著的幫助,還不利于硬件的使用壽命;

文件系統(tǒng)

Linux 一般都使用 Ext2、Ext3 和 Ext4 文件系統(tǒng),今天的大多數(shù) Linux 發(fā)行版都選擇了 Ext4。與 Windows  將多個(gè)文件連續(xù)存儲的方式不同,Linux 會把文件散落到磁盤的不同地方存儲,同時(shí)在文件之間留下一些空間,保證文件在修改或者更新時(shí)不會造成碎片。

Linux和MacOS不需要碎片整理的原因

圖 2 - Linux 文件系統(tǒng)[^2]

今天的 macOS 多數(shù)都使用 APFS 文件系統(tǒng)[^3],它是蘋果專門為固態(tài)硬盤等設(shè)備優(yōu)化的文件系統(tǒng)。更早的 HFS 和 HFS+  都是用了基于區(qū)塊(Extent)的設(shè)計(jì),每個(gè)區(qū)塊都包含序號和一段連續(xù)的存儲空間,這種分配方式會在文件系統(tǒng)中查找?guī)讉€(gè)連續(xù)的區(qū)塊來提供所需的空間。

Linux和MacOS不需要碎片整理的原因

圖 3 - macOS 文件系統(tǒng)

無論是 Linux 還是 macOS,它們的文件系統(tǒng)都是基于區(qū)塊設(shè)計(jì)的,而磁盤的空間分配也相對比較合理,所以不會出現(xiàn) Windows  系統(tǒng)上碎片化的磁盤。

除了文件系統(tǒng)在設(shè)計(jì)就避免了碎片的出現(xiàn)之外,Linux 和 macOS  也都是引入了延遲分配空間的策略,它們會通過緩沖區(qū)盡可能延遲磁盤寫入的時(shí)間,這樣不僅能夠降低刷盤的概率,還能增加文件寫入相鄰區(qū)塊的概率,然而這種機(jī)制并不是沒有副作用,在系統(tǒng)斷電或者崩潰時(shí)可能會丟失更多的數(shù)據(jù)。

如果磁盤上確實(shí)出現(xiàn)了碎片,那么 Linux 和 macOS  的文件系統(tǒng)也會嘗試移動出現(xiàn)碎片的文件,不需要額外的碎片整理工具,這種設(shè)計(jì)帶來的用戶體驗(yàn)會比手動觸發(fā)耗時(shí)較長的碎片整理好很多。macOS 上的 HFS+  系統(tǒng)還支持實(shí)時(shí)的去碎片化,當(dāng)滿足以下條件時(shí)會觸發(fā)碎片整理[^4]:

  • 文件小于 20 MB;

  • 文件存儲在 8 個(gè)以上的區(qū)塊上;

  • 文件在過去一分鐘沒有被更新;

  • 系統(tǒng)已經(jīng)啟動了三分鐘;

在多數(shù)情況下,這些操作系統(tǒng)中的磁盤碎片比例都非常低,只有在磁盤空間不足時(shí)才會開始出現(xiàn)碎片,所以在這時(shí)我們其實(shí)需要的是一個(gè)更大的磁盤或者更新的電腦,而不是整理磁盤上的碎片。

固態(tài)硬盤

固態(tài)硬盤其實(shí)已經(jīng)是有著三十年歷史的存儲介質(zhì)了,但是由于固態(tài)硬盤的價(jià)格在過去一直都十分昂貴,所以沒有在數(shù)據(jù)中心和個(gè)人電腦中普及開來。哪怕是在今天,機(jī)械磁盤的價(jià)格與固態(tài)硬盤相比也有比較明顯的優(yōu)勢。

Linux和MacOS不需要碎片整理的原因

圖 4 - 固態(tài)硬盤和機(jī)械硬盤價(jià)格對比

新型的存儲介質(zhì)帶來了全新的特性和性能,我們在前一篇文章中曾經(jīng)介紹過,因?yàn)闄C(jī)械硬盤的機(jī)械結(jié)構(gòu),所以它的隨機(jī) I/O 與順序的 I/O  性能可能相差幾百倍,碎片整理可以將散落在磁盤上的數(shù)據(jù)合并到一處,隨機(jī) I/O 的次數(shù)減少自然也會提高讀寫文件的性能。

固態(tài)硬盤的順序 I/O 和隨機(jī) I/O 在性能上雖然也有差異,但是差距可能在十幾倍到幾十倍之間,而固態(tài)硬盤的隨機(jī) I/O  延遲也比機(jī)械磁盤好幾十倍甚至上千倍,到現(xiàn)在來看整理固態(tài)硬盤上的碎片雖然有收益,但是也比較有限。

Linux和MacOS不需要碎片整理的原因

圖 5 - NAND 閃存的演進(jìn)

作為電子元件的固態(tài)硬盤雖然有著較好的性能表現(xiàn),但是固態(tài)硬盤都有循環(huán)擦寫的次數(shù)限制,也被稱作 P/E。它的壽命與機(jī)械硬盤相比卻比較有限。如果一個(gè) 512  GB 的固態(tài)硬盤的擦寫數(shù)目是 1000 次,每次寫滿數(shù)據(jù)都會消耗一次壽命,等擦寫次數(shù)達(dá)到 1000  次之后硬盤就會報(bào)廢,碎片整理其實(shí)就是主動移動硬盤上的數(shù)據(jù),自然會影響硬件的壽命。

總結(jié)

在軟件工程中有一個(gè)非常有趣的現(xiàn)象,做硬件和基礎(chǔ)架構(gòu)的工程師都在拼命優(yōu)化系統(tǒng)的性能,然而應(yīng)用層的工程師很多時(shí)候并不在乎性能上的微小差異,而這也是工作職責(zé)上的差異帶來的結(jié)果,不同的位置決定了不同的關(guān)注點(diǎn)。

硬件的演進(jìn)和革新深深地影響著上層軟件的設(shè)計(jì),想要設(shè)計(jì)出通用的系統(tǒng)是異常困難的,在設(shè)計(jì)文件系統(tǒng)時(shí)如果不考慮底層硬件的特性,也就無法充分利用硬件提供的性能并得到期望的結(jié)果。這里簡單總結(jié)一下  Linux 和 macOS 不需要碎片整理的兩個(gè)原因:

  • 文件系統(tǒng)基于區(qū)塊分配的設(shè)計(jì)使得磁盤上出現(xiàn)碎片的概率很低,延遲分配和自動的整理策略解放了操作系統(tǒng)的使用者,在多數(shù)情況下不需要考慮磁盤的碎片化;

  • 固態(tài)硬盤的隨機(jī)讀寫性能遠(yuǎn)遠(yuǎn)好于機(jī)械硬盤,隨機(jī)讀寫和順序讀寫雖然也有性能差異,但是沒有機(jī)械硬盤的差異巨大,而頻繁的碎片整理也會影響固態(tài)硬盤的使用壽命;

到最后,我們還是來看一些比較開放的相關(guān)問題,有興趣的讀者可以仔細(xì)思考一下下面的問題,與前面的問題不同,作者會在后面的文章中解答這兩個(gè)問題:

  • 為什么固態(tài)硬盤的擦寫次數(shù)有上限?

  • 機(jī)械硬盤在哪些情況下更容易損壞?

如果對文章中的內(nèi)容有疑問或者想要了解更多軟件工程上一些設(shè)計(jì)決策背后的原因,可以在博客下面留言,作者會及時(shí)回復(fù)本文相關(guān)的疑問并選擇其中合適的主題作為后續(xù)的內(nèi)容。

感謝各位的閱讀,以上就是“Linux和MacOS不需要碎片整理的原因”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Linux和MacOS不需要碎片整理的原因這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

名稱欄目:Linux和MacOS不需要碎片整理的原因
網(wǎng)站URL:http://bm7419.com/article30/ipospo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、虛擬主機(jī)面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)靜態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司