linux_inode 和 block
linux里一切皆文件
什么是文件属性?
文件本身带有的信息, 包括:索引节点编号、 文件类型以及权限、硬链接个数(备份作用)、所有者、所属组、文件大小、修改月、修改日、时分
什么是索引节点?
inode 索引节点编号,相当于人的身份证,全国唯一,linux系统中唯一,系统读取文件时,首先通过文件名找到节点编号,然后才能读取到文件内容
在linux中,文件和程序的存在,必须要有用户和组满足相应的存在需求
严格说,文件名不是文件属性,因为文件名存放在上级目录的block中
硬盘首先分区,然后格式化创建文件系统(etx4),分区后都有 Inode(很多个) 和 Block(很多个)两个部分内容
Inode:
存储数据属性信息(ls -l 结果),包含指向文件实体的指针等,唯独不包含文件名
centos 5 中 inode 都是128bytes, Centos6 /boot分区 126bytes,其他分区为 256bytes
作用: 为每个文件进行信息索引
Block:
存放文件数据内容
有1k,2k,3k,4k,默认4k
inode总结:
1. centos6默认ext4文件系统,centos7默认xfs文件系统
2. 磁盘格式化,写入文件系统。会产生一定量的inode和block,block大小默认4k,blcok才是存放数据,inode存放文件属性且唯一
3. inode 在centos6中,/boot分区128bytes,其他分区256bytes,当系统中产生大量小文件,将会消耗大量inode数量
4. 由于文件名存放在上级目录的block中,文件名不是该文件属性
5.ext4文件系统中 一个文件至少占用一个inode和block,未占满block剩余空间无法使用
block总结:
1. 磁盘读取数据是按block为单位读取,而系统读取数据按扇区为单位
2. 一个文件可能占有多个block,每读取一个block就会消耗一次磁盘IO,想提升IO性能,尽可以一次读取尽量多
3. 一个block只能存放一个文件,也就是无论文件多小,这个block剩余空间浪费掉了,假如一个文件大小为4k,但是一个小文件1k,3k剩余空间被浪费了,磁盘IO是衡量磁盘性能重要指标
4. 根据业务需求,确定block大小,对于大文件设置block大一点,对于小文件block小一点,可以选择消耗磁盘空间换性能
5. 磁盘分区格式化时候设置,命令: mkfs.ext4 -b 2048 -i 256 -b 设置block大小,-i设置inode大小
6. 企业文件一般比较大,ext3/ext4一般设置为 4k,centos文件系统为xfs文件系统,生成文件系统block为4k
读文件过程?
先找打文件名,然后读取文件的inode,通过inode确认你是否有权限查看文件,然后通过inode指向去读取文件数据
inode 和block总结:
1. 磁盘写入文件系统的时候,产生一定量的block和inode
2. inode存放文件属性信息,block存放真正文件数据,centos6中ext4文件系统,默认block为4k,/boot 分区inode 128bytes, 其他分区 256bytes
3. 文件名不是文件属性,它存放在上级目录的block中
4. 一个大文件占用多个block,当某个block未占完,剩余的空间无法使用
5. 磁盘IO读取单位为一个block,每读取一个block消耗一次磁盘IO
linux_inode 和 block的更多相关文章
- linux_inode和block
linux里一切皆文件 什么是文件属性? 文件本身带有的信息, 包括:索引节点编号. 文件类型以及权限.硬链接个数(备份作用).所有者.所属组.文件大小.修改月.修改日.时分 151387 -rw-- ...
- Objective-C中block的底层原理
先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...
- iOS 键盘添加完成按钮,delegate和block回调
这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...
- python中IndentationError: expected an indented block错误的解决方法
IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进
- JDBC Tutorials: Commit or Rollback transaction in finally block
http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...
- 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比
C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...
- 嵌入式&iOS:回调函数(C)与block(OC)回调对比
学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...
- Block解析(iOS)
1. 操作系统中的栈和堆 我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构: 栈区(stack):由系统自动分配,一般存放函数参数值.局部变量的值等.由编译器自动创建与释放.其操作方 ...
- CSS学习笔记——包含块 containing block
以下内容翻译自CSS 2.1官方文档.网址:https://www.w3.org/TR/CSS2/visudet.html#strut 有时,一个元素的盒子的位置和尺寸根据一个确定的矩形计算,这个确定 ...
随机推荐
- Spark算子篇 --Spark算子之aggregateByKey详解
一.基本介绍 rdd.aggregateByKey(3, seqFunc, combFunc) 其中第一个函数是初始值 3代表每次分完组之后的每个组的初始值. seqFunc代表combine的聚合逻 ...
- CI_SMOKE配置手册
1.1. SVN安装 安装TortoiseSVN,并检出AutoScript目录至本地 1.2. Java环境安装 确认测试环境安装了JDK,在cmd下键入java -version 检查JDK是 ...
- 记一次使用Node.js electron打包网站的记录
具体步骤请参考:http://blog.csdn.net/a727911438/article/details/70834467 打包时出现了不少问题,逐一记录下来以供其他人参考. package.j ...
- addEventListener attachEvent和解决IE 6 7 8 this指向错误
[JS] addEventListener attachEvent和解决IE 6 7 8 this指向错误 电梯直达 1# php 发表于 2014/4/13 01:17 | 只看该作者 ...
- 用Windbg来分析.Net程序的dump
介绍 1. 什么是Windbg WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微 ...
- Linux 系统下在线安装 Tomcat
在linux下部署java开发的web应用,一般采用Tomact+jre环境(可不需要apache),在RHEL和CentOS下,可以采用yum在线自动安装方式安装,具体操作如下: 1.基础环境安装配 ...
- SVM公式推导笔记
参考资料: 对偶函数-http://blog.pluskid.org/?p=702 KTT和拉格朗日乘子-http://www.cnblogs.com/zhangchaoyang/articles/2 ...
- Eclipse中使用Maven新建 Servlet 2.5的 SpringMVC项目
1.前言: 最近在学习SpringMVC框架,由于使用Eclipse创建的webAPP项目默认使用的还是比较旧的servlet2.3,而且默认使用的还是JDK1.5,所以便有一次开始了我的配置之路 2 ...
- JavaScript 模块化历程
这是一篇关于js模块化历程的长长的流水账,记录js模块化思想的诞生与变迁,展望ES6模块化标准的未来.经历过这段历史的人或许会感到沧桑,没经历过的人也应该知道这段历史. 无模块时代 在ajax还未提出 ...
- HttpClient(二)HttpClient使用Ip代理与处理连接超时
前言 其实前面写的那一点点东西都是轻轻点水,其实HttpClient还有很多强大的功能: (1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等) (2)支持自动转向 (3)支持 ...