什麼是inode和block?
所謂的inode就是索引節點(index node)的意思,在每乙個儲存裝置被格式化建立檔案系統後,所有的檔案大致被分為了兩部分,分別是inode和block。
其中inode用來儲存檔案屬性資訊,其中包括了檔案大小,檔案的歸屬者,檔案的歸屬組,許可權,型別,修改時間,以及指向檔案實體資料(block)的指標。
其實inode和block之間的關係就像是一本書一樣,inode是一本書的目錄,一本書會有很多內容,乙個知識點或者乙個故事會佔很多頁,乙個block就相當於書中的一頁內容。
所以說一般情況下乙個inode會對應乙個或多個block。
inode總結:
磁碟分割槽後格式化為etx4檔案系統後,產生一定數量的inode和block
inode存放檔案屬性資訊以及指向檔案實體的指標
ext3/ext4檔案系統block存放檔案的實際資料
inode表現形式為一串數字,不同檔案對應的inode在os中是唯一的
ext3/ext4檔案系統下,正常情況乙個檔案建立有且只能占用乙個inode和至少占用乙個block,大檔案占用多個block,如果乙個block未佔完,剩餘空間也無法使用
簡單了解了inode和block後,下面說乙個關於block與磁碟i/o效能的基礎調優。
磁碟在讀取資料的時候,是按照block為單位來讀取的。
其實block的大小與業務與磁碟的i/o效能有著密不可分的關係。
block並非越大越好或者越小越好,還是要看業務,下面就舉兩個例子。
如果遇到這種單個檔案特別小(小於乙個block),而且這種小檔案特別多,block設定的太大則對block是一種浪費!這是因為乙個檔案不管有多小,它都會占用乙個inode和一整個block,假如說乙個block的大小為4k,磁碟裡有乙個小檔案是1k,那麼這個小檔案會把4k的一整個block全部占用,剩下的3k就白白浪費掉了。
如果單個檔案很大的情況下,block設定的很小,就需要讀取多個block,這對磁碟i/o是一種消耗(因為每讀取乙個block都會消耗磁碟i/o,磁碟每次讀取都是以block為單位的)
如果單個檔案很大,適當的加大block的大小則會提高磁碟的讀取效率,減少了磁碟的i/o。
當block設定的太小,則會影響大檔案的讀取效率,如果block設定的太小,那麼儲存乙個大檔案就需要很多很多block,在讀取資料的時候就需要到很多block中去讀取內容,剛剛說過,磁碟每次讀取內容都是以block為單位的,每讀取乙個block都會浪費一次磁碟i/o,所以,磁碟讀取大檔案的效率就回大大降低~
block 的大小一般有1k,2k,4k,除引導分割槽1k外,其他分割槽為4k。
block總結:
磁碟讀取資料是按block為單位讀取
乙個檔案可能占有多個block,每讀取乙個block就會消耗一次磁碟io,想提公升io效能,盡可以一次讀取盡量多。
乙個block只能存放乙個檔案,也就是無**件多小,這個block剩餘空間浪費掉了,假如乙個檔案大小為4k,但是乙個小檔案1k,3k剩餘空間被浪費了,磁碟io是衡量磁碟效能重要指標。
效能
簡單了解了inode和block後,下面說乙個關於block與磁碟i/o效能的基礎調優。
磁碟在讀取資料的時候,是按照block為單位來讀取的。
其實block的大小與業務與磁碟的i/o效能有著密不可分的關係。
block並非越大越好或者越小越好,還是要看業務,下面就舉兩個例子。
如果遇到這種單個檔案特別小(小於乙個block),而且這種小檔案特別多,block設定的太大則對block是一種浪費!這是因為乙個檔案不管有多小,它都會占用乙個inode和一整個block,假如說乙個block的大小為4k,磁碟裡有乙個小檔案是1k,那麼這個小檔案會把4k的一整個block全部占用,剩下的3k就白白浪費掉了。
如果單個檔案很大的情況下,block設定的很小,就需要讀取多個block,這對磁碟i/o是一種消耗(因為每讀取乙個block都會消耗磁碟i/o,磁碟每次讀取都是以block為單位的)
如果單個檔案很大,適當的加大block的大小則會提高磁碟的讀取效率,減少了磁碟的i/o。
當block設定的太小,則會影響大檔案的讀取效率,如果block設定的太小,那麼儲存乙個大檔案就需要很多很多block,在讀取資料的時候就需要到很多block中去讀取內容,剛剛說過,磁碟每次讀取內容都是以block為單位的,每讀取乙個block都會浪費一次磁碟i/o,所以,磁碟讀取大檔案的效率就回大大降低~
注意
乙個檔案的檔名,存放於上級目錄的block中。
多個檔案可以占用同乙個inode(linux的硬鏈結就是這個原理)
但是乙個block只能屬於乙個檔案。
inode和block的關係
1 磁碟被分割槽格式化檔案系統後,會分為inode和block兩部分 2 inode存放檔案的屬性以及指向檔案實體的指標 block的位置 檔名不在inode裡,一般上級目錄的block裡。3 訪問檔案的過程,通過檔名 上一級目錄的block inode號碼 inode blocaks.4 inod...
block和split的理解
兩者是從不同的角度來定義的 hdfs以固定大小的block為基本單位儲存資料 分布式檔案系統,實際儲存角度,物理儲存單位 而mapreduce以split作為處理單位 程式設計模型角度,邏輯單位 對於檔案中的一行記錄,可能會劃分到不同的block中,也可能劃分到不同的split中。split是邏輯上...
inode簡單理解
在讀 鳥哥的linux私房菜 基礎學習篇 時遇到了inode這麼個概念,好吧,這裡先記錄下 說到inode,首先必須要提及下 作業系統 中磁碟儲存器的管理一節。磁碟裝置是一種相當複雜的機電裝置 比較詳細的介紹可以參考blog硬碟內部硬體結構和工作原理詳解 磁碟裝置可以包括乙個或多個物理碟片,每個磁碟...