File System Aging 及其对系统性能的影响
2010-05-24 00:00:00 来源:WEB开发网文件系统会在 G 后面给 H 分配一个 extent,并且会记录 H 和这给 extent 之間 关系,等下一次需要读取 H 的时候,除了读出 F 和 D 中间 H 的内容以外,还会根据预先存好这些关系找到 H 的 extent,以完整的对数据进行读写。如下图 8 所示。
图 8. 文件系统老化之 6
随着系统的运行,用户的操作,以及运行程序的执行,更多的内容会被加到 H 文件里,如果这时候 H 的最后面一个 extent 后还有空闲的空间,信息就会被直接写到该 extent 里,如果连续空间不够了,就会在磁盘上寻找可用空间,创建另一个 extent,并且在 H 的元数据里添加相应的信息。于是,你会发现整个文件系统会有很多空闲的块,并且同一个文件可能分布在磁盘的各个部分,到处都有 extent。这就会导致你访问一个文件的时间变的特别的长,因为磁盘要读取存在不同地方的信息,磁头的移动也需要时间。
前面我們提到了导致文件系统碎片产生的两个原因,磁盘空间不足,或者频繁的对文件进行写操作、和改变文件的大小,这主要是指删除文件的一部分内容,使得文件变小,一部分内容被从磁盘中清空而导致不连续空间的产生。另外还有一个原因能导致文件系统碎片的生成,那就是过量的使用 sparse file。
Sparse file 也叫做稀疏文件,比较常用于数据库程序中。这其实是一种人们为了让文件系统的空间使用更有效而想出的一种方法。在实际分配,当文件被创建的时候,他可能被分配了 10 个块的大小,但是这个时候,文件里并不是都装满了数据,就是说这个文件中有的块没有被正式分配数据。这样的文件中留有很多空余的空间,将来插入数据的时候才会有用。这样的文件我們就称之为稀疏文件。这样的机制既为文件准备了足够大小的可持续增长的空间,又不会浪费磁盘空间。 我們来看下面的例子(图 9),也许可以帮助我們更好的了解稀疏文件。
- ››SYSTEM用户删除后怎么重新创建和原来SYSTEM默认一...
- ››System Center 2012 - Unified Installer的系统要...
- ››file_get_contents超时问题及解决方案
- ››System.Data.OleDb.OleDbException: Unspecified...
- ››System.Data.SQLite 数据库介绍
- ››SystemServer中启动的android服务
- ››File System Aging 及其对系统性能的影响
- ››System z 的复兴:大型机并未消亡 - 它正转向数据...
- ››FileHamster-文件修改的后悔药
- ››System p 中的虚拟化
- ››File Mapping析疑
- ››Files 集合
更多精彩
赞助商链接