Block小结

  • 磁盘读取数据是按block为单位读取的。
  • 一个文件可能占用多个block;但是每读取一个block就会消耗一次磁盘I/O。
  • 如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多读
  • 一个block只能存放一个文件的内容,无论内容有多小;如果block默认是4K大小,那么存放一个1K的文件,剩余3K就不能存放别的文件,只能浪费了。
  • block并非越大越好,block太大对于存放小文件就会浪费磁盘空间,例如:1000K的文件,block为4K,占用250个block,如果消耗block为1K,占1000个block;消耗IO分别为250次和1000次
  • 根据业务需求大文件,确定默认的block大小,如果是大文件(大于16K)一般设置block大一点,小文件(小于1K)一般设置block小一点。
  • block太大例如4K,文件都是0.1K的,大量浪费磁盘空间,但是访问性能高
  • block太小例如1K,文件都是1000K,消耗磁盘IO
  • block的大小设置也是格式化分区的时候确定的,mkfs.ext4 -b 2048 -I 256 /dev/sdb
  • 企业里文件都会比较大(一般会大于4K),block设置大一些会提升磁盘访问效率。
  • ext3/ext4文件系统(centos5和6),一般设置为4K

  •  磁盘被分区格式化文件系统后会分为inode和block两部分内容
  •  inode存放文件的属性以及指向文件实体的指针,文件名不在inode里,一般在上级目录的block。
  •  访问文件,原理通过文件-->inode-->block。
  •  inode一般情况默认大小256B,block大小1 2 4K,默认是4K注意引导分区等特殊分区除外
  •  通过df -i查看inode的数量及使用情况,dumpe2fs /dev/sda3查看inode及block的大小及数量。
  •  一个文件至少要占用一个inode及一个block
  •  一个block只能被一个文件使用,如果文件很小block很大,剩余空间浪费无法继续被其他文件使用
  •  block不是越大越好要根据业务文件的大小进行选择,一般就是默认4K
  •  可以在格式化的时候改变inode及block的大小
  • 硬链接具有相同的inode指向同一个block,软连接只是源文件的快捷方式,指向源文件的路径

原文地址:https://www.cnblogs.com/Confusedren/p/9784649.html