• 《Inode与Block重要知识总结核心讲解》【转】


    本文转载自:https://blog.csdn.net/BlackEnn/article/details/50787092

    1.查看/dev/sda1下磁盘分区的block大小:

    2.查看单个inode及block大小:

    3.有关inode的知识:

    Inode 用户的属性信息:

    ①首页的目录索引就相当于Inode;

    ②每一页就是一个Block;

    ③整本书就是一个磁盘或分区。

    “df -i查看挂载的磁盘,inode情况”

    有关inode小结:学会阶段性的知识,做小结是学好linux运维的好习惯:

    (1)磁盘分区格式化为ext4文件系统后会生成一定数量的inode和block;

    (2)inode是索引节点,作用是存放文件的属性信息以及作为文件的索引,指向文件的实体->Block;

    (3)ext3/ext4文件系统的Block存放的是文件的实际内容;

    (4)inode是一块存储空间,Centos6非启动分区inode默认大小字节为256字节,Centos5为128字节;

    (5)inode是一串数字,不同文件对应的inode(一串数字)在文件系统中是唯一的;

    (6)如果一个文件很大,可能占多个block,如果一个文件很小,至少占一个,并且剩余空间浪费了;

    (7)inode相同的文件,互为硬链接的文件;

    (8)一个文件被创建后至少要占用一个inode和一个block;

    (9)如果文件很小,也至少要占用一个block并且剩余空间不能被使用;

    (10)inode大小和总量查看:

    dumpe2fs /dev/sda2|egrep -i "block size|Inode Size“

    dumpe2fs /dev/sda3|egrep -i "block count|Inode count"

    (11)查看inode总量与使用量命令:df -i:

    4.有关Block的知识:

    (1)磁盘Blck读取数据是按block为单位读取的;

    (2)一个文件可能占用多个block,每读取一个block就会消耗一次磁盘IO;

    (3)如果要提升磁盘的性能的话,那么就要尽可能一次性地读取数据数量足够多;

    (4)一个block只能存放一个文件的内容,无论内容多么的小。如果block的大小为4k,那么存放1K的文件,剩余3K就浪费了;

    (5)block并非越大越好,Block太大对于小文件的存放就会浪费磁盘空间;

    例如:1000K的文件,Block为4K,占用250个Block;

        Block为1K,占用1000个Block。

    消耗磁盘IO分别为:1000次与250次,试问谁的效率更高?

    (6)大文件(大于16K)一般设置Block大一点;

             小文件(小于16K)一般设置Block小一点。

    (7)Blcok太大例如4K,文件都是0.1K的,大量浪费磁盘空间

    (8)Block太小例如1K,文件都是1000K,消耗磁盘IO

    (9)Block设置也是磁盘化分区的时候:

    mkfs.ext4 -b 2048 -1 2056 /dev/sdb

    (10)文件较大时Block设置大一些会提升磁盘效率;

    (11)/ext3/ext4 一般设置为4K。

    5.企业面试题

    ①一个100M(100000K)文件的磁盘分区,分别写入1K文件与写入1M文件,分别可以写多少个?

    解答思想:

    a.Inode是存放文件属性信息的,默认大小128byte(C58),256byte(C64);

    b.Block是存放文件内容的,默认的大小1K(boot(引导区))或4K非系统分区;

    c.一个文件至少要占一个Inode和一个block;

    d.默认分区常规情况下,inode数量足够而block数量消耗的会更快。

    正确解答:

    1.默认分区常规情况下,对大文件来讲,inode是足够的,而block数量会消耗得更快,block为4K的情况下,1M的文件不会有磁盘浪费的情况,所以文件数量大概为100/1=100个;

    2.对于小文件0.1K,inode会消耗得更快,默认分区的时候,block的数量是大于inode的数量的,每个文件会占用一个inode与一个block,所以最终文件的数量:inode会先消耗完,文件总量是inode的数量。

    ②如果向磁盘写入数据,提示:No space left on device,通过df -h查看磁盘空间,发现没满,为什么?

    a.可能是inode耗尽了;

    b.df -i查看是否耗尽了inode数量;

    c.企业工作中临时邮件队列 /var/spool/clientmquene目录只有安装了sendmail服务才会有,是sendmail邮件的临时队列。Centos5.8默认就会安装sendmail,Centos6.6默认没有sendmail。

  • 相关阅读:
    三种方式循环打印1-100的值
    线程中put(None)和主函数中put(None)的区别和用法
    进程、线程这篇博客,让你傻傻的一次就能记清楚
    单生产者进程和单消费者进程
    队列
    初始线程
    常见面试题之*args
    常见面试题之*args 和 **kwargs 的使用
    闭包函数之函数加括号和不加括号的意义
    仓鼠找sugar II
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/9208715.html
Copyright © 2020-2023  润新知