单次磁盘IO时间 = 寻道时间 + 旋转延迟 + 存取时间
操作系统通过按磁道对应的柱面划分分区,来降低磁盘IO所花费的的寻道时间 ,进而提高磁盘的读写性能。来源(最后一句)
前两天求教了下 Linux 的文件系统... 的问题,收获很大,所以又来了 ;)
Fat 格式下,通过一个 block data 传递下一个 block data 位置的方式完成数据记录;
无碎片情况下,分区对性能提升应该不大吧?
当游戏在 D:\ ,音乐在 E:\ 的时候,边玩 游戏 边听 音乐 ,明显效率很低嘛。
Ext4 格式下,通过 inode 记录单个文件所在的所有 block data 位置;
无碎片情况下,分区是否会导致 寻找并读取 inode 耗时更久,反而降低磁盘的读写性能?
A B 不在一个分区,都加载时效率低的问题也会出现吧。
在当今 操作系统 死掉的概率已经非常小、碎片产生较少、不考虑数据本地存储的情况下,不分区 或 少分区也是可以的吧?
看有人一个盘恨不得分十个八个的 ,心塞se、
1
xenme 2015-04-20 10:36:10 +08:00 1
应该是是如果数据都在一起的话,就是连续读写。
如果是随机读取的话,有寻址时间,就稍微慢一点。 如果说,1个磁盘,1M大小的block,1G的磁盘,如果分10个区,一个里面差不多100个左右,这些数据一般相对集中,读取里面的资料基本都在附近,所以稍微快点。 |
2
Tiande OP @xenme 可即使只有一个区,只要数据是连续的大块内,也不会降低读写效率啊。
可能分区主要还是为了避免碎片太多吗?我能想到的解释只有这一个。当然不考虑曾经无数次死机被重装的 C:\ |
4
zts1993 2015-04-20 11:06:51 +08:00 1
对于很多人来说..分区只是大型固定容量文件夹..和效率无关
|
5
zhicheng 2015-04-20 11:16:40 +08:00 1
不会的,你记住一点,软件层的任何技术,都突破不了硬件的物理限制。软件层做的是让硬件利用最大化。
|
6
mailunion 2015-04-20 11:17:46 +08:00 1
三年以前还分区,系统C盘、软件D盘(那时软件还放在D盘)、资料E盘、媒体F盘……
目前,不分区了。SSD 一整块盘安装系统,1T 整块D盘。现在软件都是默认安装在系统盘。 |
7
luo362722353 2015-04-20 11:20:13 +08:00 via iPhone 1
不会的…分区好比你多分了一个文件夹罢了
|
8
chevalier 2015-04-20 11:21:21 +08:00 1
不管分几个区,一个硬盘就那一个磁头
|
9
Tiande OP @chevalier 磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。
有多少个磁盘面,就有多少个磁头。 |
11
chenshaoju 2015-04-20 11:31:14 +08:00 1
我的机械盘仍然分两个区,SSD不分区。
NTFS的MFT存在效率问题,如果文件数量越多,那么效率就会越低。 因此,C盘作为系统,D盘作为其他剩下的所有东西。 只分两个区则是为了空间利用率。 |
12
zvhdd 2015-04-20 11:40:57 +08:00 1
@dtdnqsb 分区能提高机械硬盘的性能,主要体现在将程序等高密度读写的数据放在磁盘靠前的位置,也就是盘片外缘。在给定转速下,磁盘读取速度会更高,寻道时间更短。所以可以把数据(电影音乐照片啥的)放在磁盘后部。我个人一项是1-2个系统分区(约占磁盘容量5%-10%),加上一个大分区装所有其他静态的文件。
对于SSD来说,分区与否几乎没有性能上的影响。 |
13
Tiande OP @chenshaoju 想起来 Everything 这类程序应该就是调用了 MFT 的数据。
刚看到 MFT 碎片整理 很麻烦,人 与 文件系统 的信任看来是不复存在的。 |
17
quix 2015-04-20 12:12:31 +08:00 1
以前分区只有一个原因..重装时候方便格盘.. 感觉个人用得电脑分区带来的性能提升微乎其微
|
18
loading 2015-04-20 12:21:54 +08:00 via iPhone 1
对于听歌,你知道播放器会直接缓存整首歌吗?
所以一边玩游戏一边听歌是没问题的,不然先别谈性能,硬盘早坏了。 下载软件的缓存也是。 而对于打游戏,一般就是读图时的需求特别大,那么,把游戏放在d盘,确实比放e盘性能要好很多,因为读图是连续读取,这个在硬盘上外侧的优势体现就明显了。 以上论点立足于现在的机械硬盘和windows的分区管理方式。 |
19
loading 2015-04-20 12:27:37 +08:00 via iPhone 1
windows现在我会建议只分cd两个,我给他们装(修…)的时候都会介绍这样的好处。
如果cdef几个盘都只有剩余500m空间,但是你来了个600m的av…i文件。 |
20
juneszh 2015-04-20 12:30:31 +08:00 1
分区现在唯一的好处是分离坏扇区
|
21
bellchu 2015-04-20 12:38:35 +08:00 1
公司电脑默认只有一个分区 (前置一个300M的隐藏分区)
|
23
7654 2015-04-20 14:24:04 +08:00 1
分区的唯一好处就是重装系统不会影响数据分区吧。。。
|
24
otakustay 2015-04-20 14:27:20 +08:00 1
我只知道迅雷就给他一个区去下载,半年后这个分区IO速度会极慢,但其它区不受影响……如果不分区我不敢想象
|
25
debuge 2015-04-20 15:29:02 +08:00 1
个人电脑看喜好,公司电脑必须分。
|
26
whatisnew 2015-04-20 15:37:52 +08:00 1
肯定不能 linux 的文件系统就是一个文件,没有存在分区的原理。
你可以换 ssd 绝逼能提高,哈哈 |
27
Tiande OP @whatisnew (///▽///) 您对 linux 的了解要么是在很低的水平,要么就是超凡入圣了、
SSD 确实非常快。 |
29
Tiande OP @whatisnew 我在想如果没有 分区 的概念, fdisk 也就不会出现 partition 这个单词了。
mount 的 filesystem 已经将 partition 包括在内啦吧。 |
30
Halry 2015-04-20 16:37:12 +08:00 via Android 1
不同分区转数据需要时间,分区是标明了扇区起始位置到终止位置,你转数据过去另一个分区浪费时间是因为硬盘仍然要工作,这样的话你不分区反而更快。
但事情没有绝对,不分区的话数据就有可能被乱丢,寻道就要时间,所以就要碎片整理。 上ssd吧,不要分区,也不存在寻道时间,因为内部已经有一层FTL管理了,就算你分区,虽然传数据要时间,但内部WA是不增加的,也就是不磨损(只针对知名的主控,那些杂牌的,台商的就不知咯) |
31
gamexg 2015-04-20 17:27:44 +08:00 1
表示一直想合并分区,系统一个,另外分为1、2个就完事。
|
33
lsmgeb89 2015-04-20 19:38:57 +08:00 1
分毛毛,直接 1 块 SSD,一个区,空间利用率最大化。
|
34
sgissb1 2015-04-20 20:38:21 +08:00 1
|
35
ryd994 2015-04-20 23:17:11 +08:00 1
分区越小,磁盘碎片越容易产生
你这是得不偿失 |
36
msg7086 2015-04-21 01:28:33 +08:00 1
分区,有3个主要原因。
1. FAT12/FAT16/FAT32文件系统对于每个文件系统的簇数目是有上限的,上限是不能超过的,那么结果就是簇大小必须设得非常大才行。稍微大一些的分区,簇就必须设置成16K甚至32K,存储小文件的时候特别浪费空间。 2. 格式化分区比删除文件速度快得多。重装系统的时候,如果要清除系统文件,把无关文件单独分区以后直接格式化系统分区,比手动删除系统目录要快得多。 3. 将读写频繁的文件单独分区以减少干扰。很多下载软件在下载的时候不提前预分配磁盘空间,而是下载多少分配多少。一个几G的文件很容易产生上万块碎片。单独一个分区可以把这些碎片隔离在分区内,而如果不分区的话,大量的碎片堆积在硬盘中,对日常使用中写入的文件就会产生很坏的影响。 |
37
omi4399 2015-04-21 02:04:20 +08:00 1
现如今储存白菜价,难道不是一块盘一个分区么?
|
39
ptcracker 2015-04-21 09:20:24 +08:00 1
另一个解释:
如果是机械硬盘,尽量将数据靠前放是可以的 通过分区尽量将数据放到靠前的分区里 因为机械硬盘的盘片是转动的,磁头固定,数据从外圈向里圈读,0 道在最外沿 在角速度一样的情况下线速度是最大的,因此外延的数据密度更大,转一圈读写的内容更多 因此这也是为什么当用软件测试机械硬盘读写速度时,开始非常快最后非常慢的原因 因此,从另一个角度讲,通过分区,也同样是可以优化的 |
40
Autonomous 2015-04-21 11:11:14 +08:00
直接上SSD,然后单分区就没这个烦恼了
|
41
wuxqing 2015-04-21 14:21:06 +08:00
谁能帮助分析下原因
https://www.v2ex.com/t/185005 |