分区能提高硬盘的读写性能?

2015-04-20 10:25:11 +08:00
 Tiande

单次磁盘IO时间 = 寻道时间 + 旋转延迟 + 存取时间
操作系统通过按磁道对应的柱面划分分区,来降低磁盘IO所花费的的寻道时间 ,进而提高磁盘的读写性能。来源(最后一句)

前两天求教了下 Linux 的文件系统... 的问题,收获很大,所以又来了 ;)

  1. Fat 格式下,通过一个 block data 传递下一个 block data 位置的方式完成数据记录;

    无碎片情况下,分区对性能提升应该不大吧?

    当游戏在 D:\ ,音乐在 E:\ 的时候,边玩 游戏 边听 音乐 ,明显效率很低嘛。

  2. Ext4 格式下,通过 inode 记录单个文件所在的所有 block data 位置;

    无碎片情况下,分区是否会导致 寻找并读取 inode 耗时更久,反而降低磁盘的读写性能?

    A B 不在一个分区,都加载时效率低的问题也会出现吧。

  3. 在当今 操作系统 死掉的概率已经非常小、碎片产生较少、不考虑数据本地存储的情况下,不分区 或 少分区也是可以的吧?

    看有人一个盘恨不得分十个八个的 ,心塞se、

8418 次点击
所在节点    Linux
41 条回复
xenme
2015-04-20 10:36:10 +08:00
应该是是如果数据都在一起的话,就是连续读写。
如果是随机读取的话,有寻址时间,就稍微慢一点。
如果说,1个磁盘,1M大小的block,1G的磁盘,如果分10个区,一个里面差不多100个左右,这些数据一般相对集中,读取里面的资料基本都在附近,所以稍微快点。
Tiande
2015-04-20 10:40:47 +08:00
@xenme 可即使只有一个区,只要数据是连续的大块内,也不会降低读写效率啊。
可能分区主要还是为了避免碎片太多吗?我能想到的解释只有这一个。当然不考虑曾经无数次死机被重装的 C:\
xenme
2015-04-20 10:48:32 +08:00
@dtdnqsb 是的。所以分区只是相对能挤压下数据而已,没特别大的改善。
估计分区多的也没人是为了这一点点的性能来分这么多。
zts1993
2015-04-20 11:06:51 +08:00
对于很多人来说..分区只是大型固定容量文件夹..和效率无关
zhicheng
2015-04-20 11:16:40 +08:00
不会的,你记住一点,软件层的任何技术,都突破不了硬件的物理限制。软件层做的是让硬件利用最大化。
mailunion
2015-04-20 11:17:46 +08:00
三年以前还分区,系统C盘、软件D盘(那时软件还放在D盘)、资料E盘、媒体F盘……
目前,不分区了。SSD 一整块盘安装系统,1T 整块D盘。现在软件都是默认安装在系统盘。
luo362722353
2015-04-20 11:20:13 +08:00
不会的…分区好比你多分了一个文件夹罢了
chevalier
2015-04-20 11:21:21 +08:00
不管分几个区,一个硬盘就那一个磁头
Tiande
2015-04-20 11:22:50 +08:00
@chevalier 磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。
有多少个磁盘面,就有多少个磁头。
Tiande
2015-04-20 11:26:47 +08:00
@mailunion SSD 的花费和寿命没法很好的平衡,不过用SSD是很快啦。
@zhicheng 好的,记住了。
chenshaoju
2015-04-20 11:31:14 +08:00
我的机械盘仍然分两个区,SSD不分区。

NTFS的MFT存在效率问题,如果文件数量越多,那么效率就会越低。

因此,C盘作为系统,D盘作为其他剩下的所有东西。

只分两个区则是为了空间利用率。
zvhdd
2015-04-20 11:40:57 +08:00
@dtdnqsb 分区能提高机械硬盘的性能,主要体现在将程序等高密度读写的数据放在磁盘靠前的位置,也就是盘片外缘。在给定转速下,磁盘读取速度会更高,寻道时间更短。所以可以把数据(电影音乐照片啥的)放在磁盘后部。我个人一项是1-2个系统分区(约占磁盘容量5%-10%),加上一个大分区装所有其他静态的文件。
对于SSD来说,分区与否几乎没有性能上的影响。
Tiande
2015-04-20 11:44:46 +08:00
@chenshaoju 想起来 Everything 这类程序应该就是调用了 MFT 的数据。
刚看到 MFT 碎片整理 很麻烦,人 与 文件系统 的信任看来是不复存在的。
Tiande
2015-04-20 11:46:36 +08:00
@zvhdd 实际上是尽可能的把大文件放在连续的区块内,避免碎片造成的性能损失吧。
stupidcat
2015-04-20 11:49:28 +08:00
@zhicheng 那分区能提高硬盘的实际(操作系统层面的)使用效率吗?即能否提高硬件利用率?
zhicheng
2015-04-20 11:57:18 +08:00
@stupidcat 不会。
quix
2015-04-20 12:12:31 +08:00
以前分区只有一个原因..重装时候方便格盘.. 感觉个人用得电脑分区带来的性能提升微乎其微
loading
2015-04-20 12:21:54 +08:00
对于听歌,你知道播放器会直接缓存整首歌吗?
所以一边玩游戏一边听歌是没问题的,不然先别谈性能,硬盘早坏了。

下载软件的缓存也是。

而对于打游戏,一般就是读图时的需求特别大,那么,把游戏放在d盘,确实比放e盘性能要好很多,因为读图是连续读取,这个在硬盘上外侧的优势体现就明显了。


以上论点立足于现在的机械硬盘和windows的分区管理方式。
loading
2015-04-20 12:27:37 +08:00
windows现在我会建议只分cd两个,我给他们装(修…)的时候都会介绍这样的好处。

如果cdef几个盘都只有剩余500m空间,但是你来了个600m的av…i文件。
juneszh
2015-04-20 12:30:31 +08:00
分区现在唯一的好处是分离坏扇区

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX