你好
我是你们的雨嘉叔

07-关于inode与block的几道面试题(转自网络)

1、一个100M(100000K)的磁盘分区,分别写入1K的文件或写入1M的文件,分别可以写多少个?
错误解答:
很容易计算1K的个数:100*1000=10000个,1M文件的个数:100/1=100个。
正确解答(过程分析):
a.假如block为4k,写入1k文件的数量基本上是block的数量:
①如果inode数量够多的时候,就是block的数量,浪费3/4容量;
②如果inode数量小于block的数量,就是inode的数量,浪费3/4的容量。
b.假设block为4K,写入1M的文件:
①总block数量/250block=存放1M的数量;
②还要看硬盘空间多大,基本上就可以写入100/1M的数量,一般情况下inode和block都是足够的。
涉及到的知识点(面试建议直接答这个):
①上面的考试题考察的是文件系统inode和block的知识。
②inode是存放文件属性信息的(也包括指向文件实体的指针),默认大小128byte(CentOS 5.X)、256byte(CentOS 6.X)
③block是存放文件实际内容的,默认大小1K(boot)或4K(非系统分区默认给4K),一般企业多用4K的block。
④一个文件至少要占用一个inode及一个block。
⑤默认较大分区常规企业真实场景情况下,inode数量是足够的,而block数量消耗的会更快。


2、如果向磁盘写入数据提示如下错误:No space left on device,通过df -h查看空间,发现磁盘没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?
解答:
第一问:可能是inode数量被耗尽了。
第二问:企业工作中邮件临时队列/var/spool/clientmquene这里很容易被大量小文件占满导致No space left on device的错误。clientmquene目录只有安装了sendmail服务,才会有,是sendmail邮件临时队列.CentOS5.X默认就会装sendmail服务,CentOS6.X默认没有sendmail,但是有postfix 。


附:Linux服务器 /var/spool/clientmqueue 目录下产生大量文件的解决办法
http://blog.csdn.net/jiedushi/article/details/9446899

赞(0)
未经允许不得转载:嘉叔的博客 » 07-关于inode与block的几道面试题(转自网络)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址