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