<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 蘋果Fusion Drive混合磁盤方案深度解析

          蘋果Fusion Drive混合磁盤方案深度解析

          作者: 時間:2013-01-23 來源:網(wǎng)絡(luò) 收藏

          用128KB的文件塊在HDD和SSD之間移動數(shù)據(jù),可以在寫入SSD的時候進(jìn)行部分碎片整理。盡管 的所有寫入首選目的地都是SSD(可以包括小于128KB的文件塊,隨機和偽隨機寫入),任何從HDD到SSD的遷移卻都是大塊順序?qū)懭氲模绻?qū)動器中有大量碎片,這就會觸發(fā)垃圾塊回收過程。SSD的性能肯定會隨著時間的推移降低,但是這個過程有助于保持它的性能,因為SSD幾乎一直都是在充滿的狀況下運行的,而且它會接收各種不相關(guān)的寫入。我前面提到過,我希望把更多的PM830 NAND空間預(yù)留為備用區(qū)。我懷疑沒有預(yù)留更大的備用區(qū)是出于成本方面的考慮。

          應(yīng)用體驗

          在現(xiàn)實使用中, 能給我們帶來怎樣的體驗?zāi)?簡單說來,它的效果出乎意料的好。我之前使用過的SSD緩存方案全部都更像是HDD而不是SSD,不過蘋果公司的 體驗則是幾乎處于HDD和SSD的正中間。

          它在安裝幾乎所有程序時,都是先用SSD,因此Fusion Drive感覺真的像SSD。不僅是在安裝應(yīng)用程序的時候,復(fù)制任何東西時,一般也是先去SSD。似乎到了4GB之后,它才開始用HDD。不過稍加努力,你可以讓Fusion Drive僅在1 到 2GB之后就開始寫入到HDD。我用Iometer創(chuàng)建了一個順序測試文件,監(jiān)測Fusion Drive什么時候停止將文件寫入到SSD,在這時停止這個進(jìn)程,重新命名這個文件,并再次開始創(chuàng)建文件。結(jié)果如下圖:

          蘋果iMac混合磁盤方案分析

          可以看到,如果你的速度夠快,你可以在低于2GB的時候就讓HDD接管寫操作。我不知道這是不是SSD上的可用空間量,但很有可能就是這樣,因為顯示121GB的SSD又不充分使用它實在說不通。

          在大多數(shù)時候,當(dāng)你不那么積極地寫入SSD時,F(xiàn)usion Drive可以保持至少4GB的SSD可用空間。需要注意的是:當(dāng)你第一次使用它時,F(xiàn)usion Drive大部分都是空的,你寫入的幾乎任何東西,無論大小,都會直接進(jìn)入SSD。然而,當(dāng)容量承受一定壓力時,蘋果就會改變方法:讓任何文件最多寫入4GB到SSD,其余部分則放到HDD上。

          通過安裝蘋果的OS X開發(fā)者工具以及Xcode本身,我證實了這一點。后者接近于4GB大,但默認(rèn)狀況下,它的很大部分都到了SSD上。

          應(yīng)用程序生成的數(shù)據(jù)也是如此。我用Xcode創(chuàng)建Adium,一個682MB的項目,整個編譯過程都發(fā)生在SSD ——機械硬盤一直都沒有活動。我試圖創(chuàng)建一個更大的項目,近2GB的Firefox。這時出現(xiàn)了短暫的HDD活動,但絕大多數(shù)活動都是在SSD上。

          我復(fù)制了一個很大的視頻文件(>10GB)到這臺iMac上,現(xiàn)在我把它復(fù)制到一個新的位置上,并密切注意Fusion Drive的動向。最初的2GB是從SSD傳輸?shù)絊SD,接下來的2GB是從HDD讀取,寫入SSD。大約4GB被復(fù)制之后,源驅(qū)動器和目標(biāo)驅(qū)動器都變成了HDD。在我看來,正確的做法應(yīng)該是默認(rèn)情況下把所有的大文件都放入HDD ,除非它們被頻繁訪問。蘋果的做法似乎是一個合理的妥協(xié),但它把文件塊放入SSD的方式比我以為的更加積極。

          我重復(fù)了這個測試,用另一個我從來沒有訪問過的視頻文件,得到的結(jié)果完全不同。整個文件都存在HDD 上。我又重復(fù)一次這個測試,用我訪問了好幾次的iPhoto圖庫,令我驚訝的是,這個iPhoto圖庫的大部分都在HDD上,但也有一些少許讀取來自SSD。但在這兩種情況下,復(fù)制的目標(biāo)驅(qū)動器當(dāng)然都是SSD。

          我Anandtech文件夾的大小超過32GB,含有文字、照片、演示文稿、基準(zhǔn)測試結(jié)果,以及我做過的幾乎所有評測。雖然這個文件夾非常重要,但它其中大部分都沒有經(jīng)常被訪問。我在復(fù)制這個文件夾時,發(fā)現(xiàn)幾乎全在HDD上。38GB的“我的文檔”文件夾也是如此,這個文件夾中的大部分也是未讀過的。

          另一方面,應(yīng)用程序幾乎總是放在SSD上。

          之前我經(jīng)常手動把操作系統(tǒng)和應(yīng)用程序放在SSD,大的媒體文件放在HDD上,F(xiàn)usion Drive把這個過程自動化了,而且效果還相當(dāng)不錯。我手動整理資料和Fusion Drive自動化之間唯一的區(qū)別就是,我把“我的文檔”和Anandtech文件夾默認(rèn)放在SSD。這樣做不只存在性能方面的考慮,也是為了可靠性,因為硬盤比SSD更容易出毛病。

          Fusion Drive的性能

          對Fusion Drive進(jìn)行基準(zhǔn)測試有點困難,因為它總是寫入到SSD。如果你不把Fusion Drive填滿,你寫入的大量數(shù)據(jù)可能全部會到SSD上。如果你確實填滿了它,但測試的數(shù)據(jù)集4GB,那你測量的仍然是SSD性能。

          我想出了一個相對簡單的用例,可以涵蓋兩個驅(qū)動器。現(xiàn)在我的Fusion Drive已經(jīng)填充了70%,這意味著SSD的容量快要到頂了(除了其4GB的緩沖)。我把含有703張照片的iPhoto圖庫導(dǎo)出為TIFF格式的照片。生成的文件相當(dāng)大,當(dāng)達(dá)到297張照片時,4GB的SSD寫入緩沖區(qū)已經(jīng)滿了,所有后續(xù)導(dǎo)出的照片都到了HDD 。我給這個過程計時,然后把它跟iMac上的一個HDD分區(qū)做對比,也跟通過USB 3.0連接的一個三星PM830 SSD對比。結(jié)果有點偏向于純HDD 配置,因為這個寫操作基本上是順序的:

          蘋果iMac混合磁盤方案分析

          上圖準(zhǔn)確地總結(jié)了我的Fusion Drive 體驗:它差不多處于HDD 和SSD的正中間。在這個測試中,速度提升不是很大,但這主要是因為我們使用了相對低的隊列深度順序傳輸。對于比較隨機的工作負(fù)載,F(xiàn)usion Drive和HDD差距將拉大??上У氖?,我無法找到好的應(yīng)用程序用例來生成4GB +的偽隨機數(shù)據(jù),使其可重復(fù)性高到可以進(jìn)行基準(zhǔn)比較的程度。

          如果我一直對Fusion Drive進(jìn)行非常大的順序?qū)懖僮?一個文件就高達(dá)260GB),最后它會傻掉,不再遷移數(shù)據(jù)到SSD了,除非你重新啟動機器。我懷疑這個bug不是由正常的自動測試觸發(fā)的,但它確實提供了一個有趣的狀況,我可以利用它來開展測試。

          啟動我頻繁使用的iMac預(yù)裝應(yīng)用程序,它們?nèi)栽赟SD上,但一些后來安裝的程序卻不是這樣。特別是Photoshop CS6,它部分在SSD上,部分在HDD上。對于工作負(fù)載太大,SSD無法單獨處理時的Fusion Drive 偽隨機讀取性能,這是一個很好的基準(zhǔn)測試。我測試Photoshop在Fusion Drive上的啟動時間,跟在純HDD 分區(qū)上,以及通過USB 3.0連接的PM830上的情況相比較。比較結(jié)果再次反映了我的體驗:



          關(guān)鍵詞: Fusion Drive 蘋果 混合磁盤

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();