2017年8月27日

inode 索引節點

當在 Linux 系統裡面儲存檔案是,其實是寫入兩種資料。



範例說明:

當我存 臺灣簡史.txt 這個檔案進去 Linux 伺服器時,會占用掉 硬碟空間 ,除了這個硬碟空間之外,也會占用 inode 空間











inode 是什麼?簡單直覺的白話文,其實就是 目錄、索引 的意思。



如果把一顆硬碟想像成是一本空白筆記簿,前面幾頁就是被強迫的 目錄頁 。當你到筆記簿裡面去寫資料,也必須在 目錄頁 記錄剛剛那筆資料 在 第幾頁



所以如果 筆記簿 ( 硬碟 ) 寫滿了,硬碟也就爆了。

如果 目錄頁 ( inode ) 寫滿了,也就不能再去寫筆記簿內容了。





目錄頁 ( inode ) 很小嗎?到底硬碟空間會先爆?還是 inode 會先爆?

不一定,依據儲存的檔案來決定。



一樣的硬碟空間,如果你拿來儲存藍光影片,硬碟空間就會先爆;但是你如果儲存大量的小檔案,inode 就會先爆。













什麼是大量的小檔案?



如果我把造訪網站的每一個 IP 都寫到 同一個 IPvistor.txt 的檔案,每當有人造訪我的網站,這個 IPvistor.txt 就會增加一筆資料,但是還在同一個 IPvistor.txt 檔案,只是這個 IPvistor.txt長大了一點點。而且只占用一個 inode 。



但是如果我把造訪網站的每一個 IP 依照時間順序,每一個 IP 單獨記錄成一個 time-ip.txt 的檔案,這樣下來,這些 time-ip 檔案的數量就會很多。占用的 inode 數量就會很多。











歸納:

檔案數量愈多,占用 inode 就愈多。

檔案容量愈大,占用硬碟空間愈多。

沒有留言: