Linux当中block块大小的面试题

1、如果有一个100M的磁盘分区,分别写入1K的文件或写入1M的文件,分别可以写多少个?

这个其实就是需要根据inode的数量和block的数量来定的,每个分区的block数量和inode的数量是有限的

对于Block为4K大小的文件系统来说,写入1K大小文件的数量分两种情况

  • 如果inode数量足够多的时候,能写入的文件的数量就是Block的数量,对于这种情况来说,会浪费3/4的容量,因为我4K大小里面只写入了1K的数据
  • 如果是inode的数量小于block的数量,那么就是inode的数量,容量还是浪费了3/4

总的来说其实就是分情况来讨论的

2、一个100M的磁盘分区,分别写入0.5K的文件,以及写入1M的文件,分别可以写多少个?为什么?

  • 在常规的情况下,对于大文件来说inode是足够的,但是block的数量会消耗的比较快,当Block为4K的情况下,1M的文件不会有磁盘浪费的情况,所以文件数量大概为100/1=100
  • 如果是对于小文件0.1K来说的话,其实是inode的数量会消耗的更快,而Block的数量一般情况下都是大于inode数量的,每个小文件都会去占用一个inode和block,所以如果inode数量不够用的话,那么文件的总量就是inode的数量

3、如果我们向磁盘写入数据会有这样的提示no space left on device,我们可以通过df -h 查看磁盘空间之后发现没满的话,请问是什么原因?

其实还是一样的问题,很有可能就是inode的数量被消耗尽了,这样的话文件就不能够再被放入了

猜你喜欢

转载自blog.csdn.net/zcmuczx/article/details/81226017