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

Linux文件和目录属性

Linux admin 4年前 (2016-07-11) 1549次浏览 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)
[@lc@]
分享 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

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