SAY討論區

標題: Mate 9永不卡頓的秘訣!F2FS文件到底是啥? [打印本頁]

作者: 雄獅    時間: 2016-12-9 14:07:43     標題: Mate 9永不卡頓的秘訣!F2FS文件到底是啥?

臨近年末,手機界無論大小廠商紛紛炸出自己王牌機型,在這個收官大戰中,華為無疑是一家戰果累累的公司,前面三星Note7不幸夭折,蘋果公司今年新品創新不足,後面又無與之分庭抗禮的通訊大咖,一時間華為今年的年度新品Mate9成了消費者嚴重的年度超新星,賺盡了無數用戶的眼球,尤其是華為移動部門老大餘承東在新品發佈會上宣稱Mate9手機至少保持使用18個月不卡,簡直就像突然丟出一張王炸,讓所有關註移動市場的用戶大吃兩三驚。
vuufkcdbiql29.jpg
華為Mate9手機所謂的18個月使用不卡肯定是集結了很多不同的先進技術,但是值得一提的是,其中使用了一項關於f2fs技術,並非華為Mate9首發,早在幾年前就已經有手機用上這一技術,而且對於一些愛鉆研的手機發燒友們,也早早嘗鮮了這中技術,那這到底是怎樣的一項技術呢?接下來本文將做一個簡單的介紹,幫助讀者更好的了解關於f2fs的知識。
F2FS文件系統是什麼?
簡單來說,f2fs是一種較先進的文件系統,與手機上的ext4文件系統、電腦上的ntfs文件系統一樣,f2fs是Flash Friendly File System的簡稱。該文件系統是由韓國三星電子公司研發,隻提供給運行Linux內核的系統使用,所以安卓手機上肯定也是能夠使用的。
從f2fs中的Flash Friendly可以看出,這種文件系統對於閃存類存儲介質是非常友好的,特別是NAND這種較新的介質,f2fs提供了更加適應新介質的文件系統方案,同時還修復了以往舊日志結構文件系統的一些問題,使其在新存儲介質下具備了更有利的使用條件,特別是在小文件數據傳輸方面。
gtuzzkj0nzo29.png
f2fs文件系統讀寫流程圖(圖片來源網絡)
如之前所述,f2fs文件系統修復了舊日志的一些結構問題,從代碼結構上進行了二次優化,使其在能夠在底層更加快速的索引到目標數據,簡單來說就是小文件數據傳輸變快了,這是f2fs文件系統的優勢,但是在代碼結構上f2fs文件系統同樣存在一些問題,譬如空間浪費的問題和作為較新的文件系統兼容性問題,這一點會在接下來的測試數據進行說明。
目前移動市場中,手機存儲的文件系統大多采用ext4格式,雖然早在2013年Moto手機就率先推出了采用f2fs文件系統的Moto X手機,由於種種原因,這款手機中采用的較為先進的f2fs文件系統並沒有在市場上掀起太大的波瀾,反而被埋沒在茫茫機海之中。
對於Moto X手機中采用的f2fs文件系統,國外網站AnandTech當時就有相對應的評測,雖然結果差強人意,但該評測中並沒有很直觀的對比出同樣手機在ext4文件系統下和f2fs文件系統下的區別,所以筆者接下來將會以單部手機為例,在兩種不同的文件系統下,分別對手機的存儲性能做出實際的測試結果對比,觀察在兩種不同的文件系統下,哪些存儲性能發生了變化。
F2FS文件系統下實際手機測試
筆者首先是以一直被公認為是刷機小丸子的一加1手機測試,測試內容是讓同一部手機在ext4和f2fs兩種不同的文件系統下,進行androbench軟件的數據測試,兩種環境下手機均是空盤情況下刷入CM14.1(安卓7.1)系統,閃存內沒有多餘的文件。測試對比如下:
dv5rhmy2klj29.jpg
一加1:左ext4、右f2fs
根據閃存讀寫性能測試軟件的數據可以看出,在ext4和f2fs兩種文件系統下,手機閃存的連續讀寫性能並沒有太大的變化,但是經過比對可以看到,兩種不同的文件系統在同一部手機下的隨機讀寫性能,也就是4K文件的隨機讀寫發生了令人驚奇的變化,特別是在隨機寫入性能中,f2fs文件系統的提升可以說是飛躍式的巨變,從數據中也可以很直觀的反映出閃存的隨機寫入性能提升了不止一倍之多;而在隨機讀取性能方面,f2fs文件系統相比EXT4文件系統也有相當的優勢,從測量得出的數據可以知道,較為優越的f2fs文件系統的隨機讀取性能提升了25%左右。
為了測試f2fs文件系統相比ext4文件系統在閃存隨機讀寫性能上的巨大提升的普遍性,筆者在對比中又加入了過氣旗艦三星Galaxy S5手機和當下炙手可熱手機一加3的測試,令人驚奇的是,在兩款附加手機的測試中,經過幾輪測試得出的數據均表明,兩種文件系統的隨機讀取性能並沒有與之前一加1手機測試中類似的提升,甚至略有下降(不會相差太遠),但是在隨機寫入性能的測試中,f2fs文件系統下三星S5和一加3手機確實有著非常兇猛的優勢,特別是在一加3手機中,隨機寫入速度的提升可以說是超乎想象。這也就很明顯的說明了相較於傳統的ext4文件系統,f2fs文件系統在小文件隨機寫入性能中有非常大的優勢,而且這種優勢具有普遍性,但是隨機讀取性能的變化基本不大。
gtt0ywcm2hp29.jpg
三星S5:左ext4、右f2fs
stmxq420mlt29.png
一加3:左ext4、右f2fs
測試中發現F2FS文件系統的一些不足
在測試的過程中,對比ext4文件系統和f2fs文件系統,筆者還有個意外發現,那就是經過幾次轉換文件系統之後,相同的安卓ROM包,在f2fs文件系統下占用閃存的容量會多一些。帶著f2fs文件系統下為什麼會占用空間容量較高的疑問,筆者查閱了相關的資料。
根據f2fs文件系統相關函數的定義,在每一個文件索引節點塊中包含了f2fs_inode和node_footer兩部分,其中f2fs_inode結構中的數據索引區又存在923個數據塊指針,每個指針對應一個大小為4KB的數據塊,但是在通常情況下系統文件索引並不需要用到所有數據塊,在最極端情況下文件大小為4KB時,隻需要用到一個數據塊,剩下的數據塊則處於閑置狀態,這就造成了存儲容量在一定程度上的空間浪費,也就是筆者所遇到的同樣一部手機,在相同的安卓系統中,f2fs文件系統下,閃存容量的占用會相對高一些。
在f2fs文件系統下會造成空間浪費的問題不僅會影響用戶數據存儲空間,而且緩存cache區也會受到一定影響,一般來說安卓手機的緩存池設置的可用空間都是比較小的,在空間浪費的情況下會在一定程度上造成緩存裕量不夠,進而使得軟件在使用的過程中無故崩潰,而且f2fs作為一種新型的文件系統,也會有部分軟件在使用中出現不兼容現象等等,不過根據筆者體驗至今的感受,隻有少數軟件會出現崩潰情況。
yallb3qrndy29.jpg
可以看到在空盤刷入僅為700M不到的系統下,在data分區下f2fs的數據占用更多
F2FS文件系統測試總結
最後簡單講講從ext4文件系統轉到f2fs文件系統的使用體驗,在筆者拖稿兩周時間裡,f2fs文件系統下手機確實是快了很多,尤其安裝軟件以及重啟設備的時候,由於隨機寫入的性能大大提升了,在類似軟件安裝和系統重啟中,需要大量寫入小文件的情況下,f2fs文件系統下有非常喜人的變化,而在日常使用中也可以明顯感受到整體的數據交換快速了許多。
前面說的是性能提升的一方面,但是f2fs文件系統依舊有些不足,譬如磁盤空間浪費問題、新文件系統下可能出現兼容性問題等等,在筆者測試的過程中,也出現了一些軟件安裝錯誤的問題(如嗶哩嗶哩客戶端),考慮到手機的測試環境是最新的CM14.1系統,懷疑是軟件調用的API過於老舊的問題,但也不排除是f2fs文件系統的兼容性問題。
在筆者看來,f2fs文件系統總歸是利大於弊的,特別是在小文件的讀寫方面有巨大優勢,這對手機本身讀寫性能有舉足輕重的幫助,特別是現在國內大廠華為公司乘著Mate9的新機潮宣傳了使用18個月手機使用不卡的優勢,相信f2fs文件系統很快會擴散開來,這也會是以後手機存儲文件系統的大趨勢。
目前筆者發現,在一加手機最新的氫OS2.5底包中,已經有相關的格式化選項可以把手機文件系統轉換成f2fs,現在的f2fs文件系統雖然或多或少有點小問題,但是已經可以正常使用,而且部分內部工程師也透露已經加緊對f2fs文件系統的刷機包進行開發和手機的適配,以後的f2fs文件系統將不再新鮮。
如何才能體驗F2FS文件系統
目前在CM提供支持的手機中,隻要是CM13以上的系統均支持f2fs文件系統,而在OEM廠商定制的系統中,大部分的基於安卓7.0系統的手機也支持f2fs文件系統,對於一些舊設備想要體驗f2fs文件系統的話,大致可以通過兩種方式,一種是通過最新的TWRP recovery將手機轉換為f2fs文件系統,另一種方法則是通過ADB Shell的方式將手機的文件系統轉換為f2fs文件系統。因為通過ADB shell的方式操作較為繁瑣,這裡簡單介紹下通過TWRP recovery的方式對手機進行轉換。
h25lvwm01cm29.png
首先確認你的手機有對應的3.0版本以上TWRP recovery刷機包並刷入設備,重啟進入TWRP recovery,點擊“清除”,再進入“高級清除菜單”,選擇需要轉換的分區進行文件系統轉換,此處轉換“Cache”和“data”分區,系文件系統轉換之後會清除所有文件,所以操作之前請註意備份。
成功轉換文件系統之後,重新回到TWRY recovery界面,點擊“掛載”,從電腦端將支持f2fs文件系統的ROM包傳到手機進行卡刷,之後的步驟基本和普通的卡刷系統基本一致。

附件: [vuufkcdbiql29.jpg] vuufkcdbiql29.jpg (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjU5fDdmNzNkNzI4fDE3ODY1MjYzMjZ8MHww

附件: [gtuzzkj0nzo29.png] gtuzzkj0nzo29.png (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjYwfGU2ZTkxMDJhfDE3ODY1MjYzMjZ8MHww

附件: [dv5rhmy2klj29.jpg] dv5rhmy2klj29.jpg (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjYxfDg1ZmQ5ZTI4fDE3ODY1MjYzMjZ8MHww

附件: [gtt0ywcm2hp29.jpg] gtt0ywcm2hp29.jpg (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjYyfDlmODNmOWVlfDE3ODY1MjYzMjZ8MHww

附件: [stmxq420mlt29.png] stmxq420mlt29.png (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjYzfDc0ODA5YzgwfDE3ODY1MjYzMjZ8MHww

附件: [yallb3qrndy29.jpg] yallb3qrndy29.jpg (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjY0fDA1ODAxZGQ2fDE3ODY1MjYzMjZ8MHww

附件: [h25lvwm01cm29.png] h25lvwm01cm29.png (2016-12-9 14:07:43, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=ODU3MjY1fDNjOTU4ZjZjfDE3ODY1MjYzMjZ8MHww
作者: 太陽穴    時間: 2016-12-9 16:14:44

好看的程度,心照不宣
作者: ILOVEU5    時間: 2016-12-9 16:59:03

不知道說些什麼
作者: easonchan    時間: 2016-12-9 17:26:46

看看好不好看
作者: kinh9999    時間: 2016-12-9 17:26:57

拿分走人呵呵,樓下繼續!
作者: 尊貴的基佬    時間: 2016-12-9 17:45:48

樓主福如東海,萬壽無疆!  
作者: tomato_alex    時間: 2016-12-9 17:50:44

呵呵,支持一下哈  
作者: LMFAO    時間: 2016-12-9 18:07:36

原來這樣也可以
作者: fifidodo3    時間: 2016-12-9 18:08:19

回個帖子支持一下!
作者: 津村浩介    時間: 2016-12-9 18:19:11

今天我這邊開啟帖子速度有點慢
作者: {誼}    時間: 2016-12-9 18:24:36

沒人理我。。
作者: coffyma    時間: 2016-12-9 18:59:09

我毫不猶豫地把樓主的這個帖子收藏了
作者: xiao丸子    時間: 2016-12-9 19:00:49

都是那麼過來的
作者: skykingdom    時間: 2016-12-9 21:39:52

今天無聊來逛逛
作者: freegold    時間: 2016-12-10 03:58:50

尼伊達看起來是個不錯的站喔
作者: katchan0481    時間: 2016-12-10 04:20:19

你加油吧  
作者: {誼}    時間: 2016-12-10 05:21:14

這帖沒看過,來看看
作者: svcscgba    時間: 2016-12-10 07:31:23

不錯啊! 一個字牛啊!
作者: tracy10quTE~~    時間: 2016-12-10 19:38:26

3q for 分享
作者: ccseeker2012    時間: 2016-12-11 11:49:47

支持一下
作者: Tung8887    時間: 2016-12-15 09:11:55

不錯 不錯  比我強多了
作者: chrity__summer    時間: 2016-12-16 07:00:10

有一天醒來,我的電腦就看到尼伊達論壇了




歡迎光臨 SAY討論區 (http://say.go2tutor.com/) Powered by Discuz! X2