• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Linux文件和目录属性

Linux admin 2年前 (2016-07-11) 843次浏览 0个评论 扫描二维码

文件及目录熟属性

linux-dir-info.png

使用 ls –li 可以查看文件的基本属性信息

1
2
3
4
[root@ansheng ~]# ls -li
total 4
784900 drwxr-xr-x. 2 root root 4096 Jan  7 14:39 linux
784899 -rw-r--r--. 1 root root    0 Jan  7 10:22 ansheng

Inode 概述

硬盘如果要使用就要先分区,然后格式化,创建文件系统,最后挂载。

Inodez 中文意思是索引节点(Inodex node),在每个 Linux 存储设备或春初设备的分区(存储设备可以是硬盘、软盘、U 盘,)被格式化成 ext4 文件系统后,一般都由两部分:第一部分是 Inode,第二部分是 Block(Block 有很多个)。

Block 是用来存放实际数据的,例如:文件,视频,照片,MP3 等,Inode 是用来存放数据的熟悉信息的,包含文件大小,属主,属猪,权限文件类型等,但是唯独不包含文件名。

Inode 除了记录文件的属性信息,还会为每个文件进行信息索引,系统根据指令,可以通过 Inode 的值最快的找到对应的文件实体,所以就有了 Inode 值。

例如:一本书,这本书相当于一块磁盘或者分区,首页的目录索引相当于 Inode,每一页相当于一个 block。

CentOS 5 默认 Inode 大小 128 字节,Centos 6 默认 256。

  • 查看 Inode 大小
1
2
3
[root@ansheng ~]# dumpe2fs /dev/sda3|grep -i "Inode size"
dumpe2fs 1.41.12 (17-May-2010.
Inode size:	          256
  • 查看 Inode 使用情况
1
2
3
4
5
[root@ansheng ~]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda3      1267280 54341 1212939    5% /
tmpfs           125544     1  125543    1% /dev/shm
/dev/sda1        51200    38   51162    1% /boot
  • 查看 BLOCK 大小
1
2
3
4
5
[root@ansheng ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.4G   17G   8% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   27M  153M  16% /boot

Inode 小结

  1. 磁盘分区格式化 ext4 文件系统后会产生一定数量的 inode 和 blog
  2. Inode 是索引节点,作用是存放文件的属性以及作为文件的索引(指向文件的实体)
  3. ext3/ext4 文件系统的 block 存放的是文件实际内容
  4. Inode 是一块存储空间,C6 非启动分区 inode 默认大小 256 字节,C5 是 128 字节
  5. Inode 是一串数字,不同的文件对应的 Inode 在文件系统里是唯一的
  6. Inode 相同的文件互为硬连接文件
  7. 一个文件至少要占用一个 Inode 和一个 block
  8. block 的大小一般有,1K,2K,4K 几种,其中引导分区等为 1K,普通分区为 4K(C6)
  9. 如果一个文件很大,可能占多个 blogk,如果文件很小,至少占一个,并且剩余空间浪费了,
  10. Inode 大小和总量查看
1
[root@ansheng /]# dumpe2fs /dev/sad3 |egrep -i "block size|inode count"
  1. 查看 inode 的总量用 df -i
  2. 如何生成及指定 inode 大小 mkfs.ext4 –b 2048 –I 256 /dev/sda

Block 知识

  1. 磁盘读取数据是按照 block 读取的
  2. 一个文件可能占用多个 block,每读取一个 block 就会消耗一次磁盘 I/O
  3. 如果要提升磁盘 I/O,那么就要尽可能一次性读取数据尽量的多。
  4. 一个 block 只能存放一个文件的内容,无论内容有多少。如果 block4K,那存放 1K 的文件,剩余 3K 就浪费了。
  5. Block 并不是越大越好,Block 太大对于小文件存放就会浪费磁盘空间,例如:1000K 的文件,block 为 4K,占用 250 个 block,block 为 1K,占 1000 个 block,访问效率谁更高?消耗 IO 分别为 250 次和 1000 次;
  6. 当前的生产环境默认为 4K,特殊业务,如视频
  7. 当文件较大时,block 设置大一些会提升访问效率,ext3/ext4 一般设置为 4K 生产环境:block 如何配置?消耗 IO 分别是 250 次和 1000 次
  8. 大文件(大于 16K),一般设置 block 大一些,小文件(小于 1K)一般设置 block 小一点。
  9. Block 太大例如 4K,文件都是 0.1K 的,大量浪费磁盘空间。
  10. Block 的设置是在格式化分区的时候 mkfs.ext4 –b 2048 –I 256 /dev/sda
  11. 文件较大时,Block 设置大一些会提升磁盘访问效率,ext3/ext4 默认一般设置为 4K。

当前的生产环境一般设置为 4K,特殊业务,如视频、软件可以加大。如果是大文件的业务,block 尽量设置大一点。如果是小文件的业务,block 尽量设置小一点;实际:ext2/ext3/ext4 最大只能 4K,而工作中几乎就没有小于 4K 的文件,所以,ext3,ext4 文件系统 Block 都分配 4K,默认也是 4K。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Linux 文件和目录属性
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!