(转)关于inode和block的两道企业面试题
关于inode和block的两道企业面试题
原文;http://www.tk4479.net/xiaolong361/article/details/52373374
一、一个100M的磁盘分区,分别写入1K的文件,及写入1M的文件,分别可以写多少个?
答:在linux文件系统中,iNode用来存放文件的属性信息,而Block用来存放文件实际内容,默认大小1K(boot)或4K(非系统分区默认为4k)。
在系统中,一个文件至少要占用一个iNode以及一个block,而且一般block的数目远大于inode的数目,因此默认分区情况下,inode的数目是足够的,而block会消耗的更快。例如,假设block为4K,则:
写入1M文件的数量为100/1,且不会存在磁盘浪费情况(这也说明了一般情况下,inode和block的数量都是足够的);
而写入1K文件时,inode和block同时被消耗,但一般block数量远大于inode的数量,因此写入的数量就是inode的数量,并且这样会浪费3/4的磁盘容量。
二、磁盘报错”No space left on device”,但是通过命令df –h查看磁盘空间没有满,请问为什么?
答:该磁盘的inode数量被用尽,无法再写入文件。
企业工作中邮件临时队列/var/spool/clientmquene或/var/spool/postfix/maildrop这里很容易被大量小文件占满导致No space left on device的错误。clientmquene目录只有安装了sendmail服务,才会有,是sendmail的临时队列。centos5.8默认就会装sendmail,centos6默认没有sendmail,但是有postfix
技术链接