1.ls -lhinode
文字解釋:linux
第一列:inode索引節點編號(人的身份證,全國惟一)性能
系統讀取文件時首先經過文件名找到inode,而後才能讀取到文件內容。spa
第二列:文件類型及權限(共10個字符,第一個字符爲類型,後9個字符爲文件權限)指針
第三列:硬連接個數(詳細參看In命令的講解)索引
第四列:文件或目錄所屬的用戶(屬主)class
linux裏面文件和程序的存在必需要有用戶和組知足相應的存在需求。效率
第五列:文件或目錄所屬的組原理
第六列:文件或目錄的大小權限
第七八九列:文件或目錄的修改時間;默認月日時分
第十列:實際的文件或目錄名
文件名不算文件的屬性
不一樣Centos版本inode大小不一樣:
dumpe2fs /dev/sda1|grep -i "Inode size" #<==/boot分區默認128
查看文件系統inode總量以及剩餘量:df -i
查看磁盤的使用量:df -h
磁盤空間是否滿了,是由兩項參數決定的,第一個是inode是否滿了,第二個block是否滿了
磁盤滿的一個特徵(no space on device left)
有關inode的小結:
1.磁盤被分區格式化爲ext4文件系統後會生成必定數量的inode和block
2.inode稱爲索引節點,它的做用是存放文件的屬性信息以及做爲文件的索引(指向文件的實體)
3.ext3/ext4文件系統的block存放的是文件的實際內容
4.inode是磁盤上的一塊存儲空間,C6非啓動分區inode默認大小256字節,C5是128字節
5.inode的表現形式是一串數字,不一樣的文件對應的inode(一串數字)在文件系統裏是惟一的
6.inode節點號相同的文件,互爲硬連接文件,能夠認爲是一個文件的不一樣入口
7.ext3/ext4文件系統下,一個文件被建立後至少要佔用一個inode和一個block;正常狀況一個文件佔用且只能佔用一個inode(人和身份證)
8.block是用來存儲實際數據的,每一個block的大小通常有1k,2k,4k幾種。其中引導分區等爲1k,其它普通分區多爲4k(C6)
9.若是一個文件很大(高清的大片4G),可能佔多個block,若是文件很小(0.01K),至少佔一個block,而且這個block的剩餘空間就浪費了,即沒法再存儲其它數據了
10.inode大小和總量查看
1)dumpe2fs /dev/sda1|egrep -i "block size | Inode size"
2)dumpe2fs /dev/sda1|egrep -i "block count | Inode count"
默認block count通常會大於Inode count的數量
11.查看inode的總量和使用量:df -i
12.查看文件的inode信息方法:ls -li 或 stat /etc/hosts
13.如何生成及指定inode大小
格式化命令:mkfs.ext4 -b 2048 -l 256 /dev/sdb
有關Block的知識小結
1.磁盤讀取數據是按block爲單位讀取的
2.一個文件可能佔用多個block。可是每讀取一個blcok就會消耗一次磁盤I/O
3.若是要提高磁盤IO性能,那麼就要儘量一次性讀取數據儘可能的多
4.一個block只能存放一個文件的內容,不管內容有多小。若是block默認是4K大小,那麼存放一個1K的文件,剩餘3K就不能存放別的文件,只能浪費了
5.Block並不是越大越好。block太大對於存放小文件就會浪費磁盤空間,例如:1000K的文件,block爲4K,佔用250個block,若是block默認爲1K,則須要佔用1000個block。訪問效率誰更高?消耗IO分別爲250次和1000次
6.根據業務需求,確認默認的block大小,若是是大文件(大於16K)通常設置block大一點,小文件(小於1K)通常設置block小一點
7.block太大,例如4K,文件都是0.1K的,大量浪費磁盤空間,可是訪問性能高
8.block過小,例如1K,文件都是1000K,消耗大量磁盤IO
9.blcok大小設置也是格式化分區時候肯定的,命令mkfs.ext4 -b 2048 -I 256 /dev/sdb
10.企業裏文件都會比較大(通常會大於4K),block設置大一些會提高磁盤訪問效率
11.ext3/ext4文件系統(Centos5和6),通常都設置爲4K
總的小結:
1.磁盤被分區格式化文件系統後,會分爲inode和block兩部份內容
2.inode存放文件的屬性以及指向文件實體的指針,文件名不在inode裏,通常在上級目錄的block裏
3.訪問文件,原理經過文件名-->inode-->block