首页 产品 运营 查看内容

Linux文件系统十问,你知道吗?

2014-7-29 15:09| 发布者: tianzc| 查看: 333| 评论: 0

摘要: Linux文件系统十问--关于文件系统,你知道吗? 作者:yanfei,腾讯后台架构师,参与项目为搜搜网页开发和搜搜开放平台。  关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖 ...
Linux文件系统十问
--关于文件系统,你知道吗?  
 
作者:yanfei,腾讯后台架构师,参与项目为搜搜网页开发和搜搜开放平台。
 
  关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖一下,其中又有多少是我们理解深度不够的呢。那么让我们一起来看一下下面这一组Linux文件系统相关的问题吧:

1、机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的?

2、touch一个新的空文件占用磁盘空间吗? 占用的话占用多少?

3、新建一个空目录占用磁盘空间吗?占用多少?和新建一个文件相比,哪个占用的更大?

4、你知道文件名是记录在磁盘的什么地方吗?

5、文件名最长多长?受什么制约?

6、文件名太长了会影响系统性能吗?为什么会产生影响?

7、一个目录下最多能建立多少个文件?

8、新建一个内容大小1k的文件,实际会占用多大的磁盘空间?

9、向操作系统发起读取文件2Byte的命令,操作系统实际会读取多少呢?

10、我们使用文件时要怎么样来能提高磁盘IO速度?

  如果你能想也不用想的就回答上来百分八十的问题,那么请关掉本篇文章吧。如果不能,而且你也像作者一样对有窥探操作系统隐私的嗜好,那么就请随我一起来探索文件系统的这些有趣的地方,相信理解了这些之后对我们手中的工作会有很大的帮助。
 
一、磁盘构成及分区

1、磁盘物理结构

  还是先从最基本的磁盘物理结构说起吧,注意本文只讨论机械磁盘,SSD不在本文讨论范围之内。我们人类管理任何事物总是习惯先划分出一定的结构,再此规则的基础上进行管理。军队分军、师、旅、团和营。公司分事业群、部门、中心和小组。,然后。对于管理磁盘,分磁盘面、磁头、磁道、柱面和扇区。

    磁盘面:磁盘是由一叠磁盘面组成,见下左图。

    磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。
    磁道(Track):每个盘面会围绕圆心划分出多个同心圆圈,每个圆圈叫做一个磁道。

    柱面(Cylinders):所有盘片上的同一位置的磁道组成的立体叫做一个柱面。

    扇区(Sector):以磁道为单位管理磁盘仍然太大,所以计算机前辈们又把每个磁道划分出了多个扇区,见下右图
 
 
  本人爱上Linux的一个原因就是只要你愿意下功夫,你就能把Linux的外衣一脱到底,满足你的一切欲望(请想歪的骚年去面壁)。Linux上可以通过fdisk命令,来查看当前系统使用的磁盘的这些物理信息。
 
 
  以上是我本人的一台虚拟机的磁盘物理信息。可以看出我的磁盘有255个heads,也就是说共有255个盘面。3263个cylinders,也就是说每个盘面上都有3263个磁道, 63sectors/track说的是每个磁道上共有63个扇区。命令结果也给出了Sector size的值是512bytes。那我们动笔算一下该磁盘的大小吧。

  255盘面  * 3263柱面 * 63扇区 * 每个扇区512bytes = 26839088640byte。
结果是26.8G,和磁盘的总大小相符(至于fdisk给出的详细结果相差了约4M的大小,笔者也没有弄彻底明白,有兴趣的读者可以继续研究)。

  另外查看了其它两台机器的磁盘情况,发现个有意思的事情。如下图,无论磁盘的容量大或者是小,其磁头数和每磁道扇区数都是不变的,只是磁道变多了而已。

鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部