Credit DataBank |
依照阿舍仔細的研讀後的結論是,ext2、ext3 和 ext4 等的檔案系統是有可能有需要重整的,但是,相對於 Windows 使用的 NTFS 和 FAT 檔案系統所需要的重整的機會來說,Linux 的檔案系統需要重整的機會,可能不及它的 1/100 之一哩 ! 雖然真的很少,但是,並不表示就不需要哩 !
ext2、ext3 和 ext4 檔案系統在設計上,就有考量到要減少同一個檔案的資料分散儲存(Fragmentation)的機會,尤其是 EX3 和 EX4 檔案系統會在無法將同一個檔案放連續的區塊(Block)的時候,會聰明的找一個比較近的區塊來放,這樣,硬碟的磁頭在讀取這個檔案的時候,就不用跑太遠,所以,在讀取速度上,就會和放在同一個區塊的時候差不多,因此,就算分散了,也不太需要重整的樣子哩 !
另外,ext3 和 ext4 檔案系統也有考量到檔案會變大而造成資料無法存在一起,所以,ext3 和 ext4 檔案系統會在檔案儲存的位置的後端保留一些空間,因此,就算檔案變大,也不用因為新增的資料沒地方放而被分散到其它的儲存位置,進行產生檔案資料分散的情況,就會造成檔案讀寫效能的低弱哩 !
除了就近儲存和預留空間之外,ext3 和 ext4 檔案系統還有提供延遲分配 (Delayed allocation) 的機制,就是檔案是到真了正要儲存到磁碟的時候,才會計算檔案所需的儲存空間並分配所使用的位置,不過,詳細運作方式遠比阿舍說的複雜,但是,概念大概是上述的意思哩 ! 不然,就開始講程式了,可是,阿舍的功力就不行了哩 !
所以,ext3 和 ext4 檔案系統是不太有機會讓硬碟出現太高的檔案不連續的比例的,不過,就阿舍看到的這篇文的實驗和這篇 Paper 的內容,都十分明確的指出,在某些組合情況下,還是會讓 ext3 和 ext4 等檔案系統的上述機制無法有效降低檔案不連續的比例的,因此,阿舍的結論才會是,ext2、ext3 和 ext4 等的檔案系統是有可能有需要重整的,是會產生檔案儲存位置不連續比例高的情形的哩 !
但是,在實務上,是也不用太擔心 Linux 要重整這件事,因為,ext3 和 ext4 檔案系統的減少不連續儲存機制可以解決到絕大部份的情況,除非你讓軟體跳過 ext3 和 ext4 檔案系統的控制來存取硬碟資料,或是,剛好挑戰了 ext3 和 ext4 檔案系統防範功能的極限,否則,就不用太擔心了,如果,不放心,可以用下面的指令來查看看。( /dev/sda6 請換成你的裝置名稱)
sudo fsck -nvf /dev/sda6
執行後,可以找到類似下面的這二行訊息,後面的百分比數字,就是檔案和資料夾不連續儲存的比例,阿舍自己的,連 1% 都不到哩 ! ( 要提醒的是,fsck 指令請小心使用,請注意並確認後,再回應出現的訊息,如果不小心,是會變動到檔案系統的哩 ! )
1193 non-contiguous files (0.2%)
776 non-contiguous directories (0.1%)
另外,如果想要查所使用的 Ubuntu 是用那一種檔案系統的話,請用下面的這一行指令,一樣的,請把 /dev/sda6 換成你的裝置名稱。
sudo file -s /dev/sda6
如果真的遇到不連續儲存的比例很高時,那要怎麼辦呢 ? 請參考這篇文囉 !
參考資料:
http://en.wikipedia.org/wiki/Ext4
http://en.wikipedia.org/wiki/Ext3#Defragmentation
http://ubuntuforums.org/showthread.php?t=1434502
https://apps.ubuntu.com/cat/applications/hdd-ranger/
http://ols.fedoraproject.org/OLS/Reprints-2007/sato-Reprint.pdf
http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf
http://polishlinux.org/apps/cli/defragmentation-of-linux-filesystems/
http://www.webupd8.org/2010/03/install-defrag-defragmentation.html
http://askubuntu.com/questions/1090/why-is-defragmentation-unnecessary
http://www.howtogeek.com/115229/htg-explains-why-linux-doesnt-need-defragmenting/
http://askville.amazon.com/defrag-tune-Ubuntu-machine/AnswerViewer.do?requestId=8437568
http://david50.pixnet.net/blog/post/26065780-%5B%E7%AD%86%E8%A8%98%5Dubuntu-defragmenter-%EF%BC%8D-shake
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=9312&viewmode=compact&order=DESC&type=&mode=0&start=0
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
3 則留言 :
阿舍,我用
sudo fsck -nvf 查了自己的硬碟,不連續率也是只有 1%。不過我試著用同樣的命令去查其他格式為 NTFS 分區時卻碰到了以下的問題:
fsck from util-linux 2.20.1
fsck: fsck.ntfs: not found
fsck: error 2 while executing fsck.ntfs for /dev/sda2
是還要加些什麼參數才能查嗎?
Hello TKY,
fsck 只有對 ext 系列的檔案系統有用 ... 阿舍也是遇到這個錯誤才知道的 ... 呵 ! ^^=
Non-contiguous files高達 6.8
張貼留言
歡迎留言提問和討論 .... 😁