[其它]linux不需要磁盘碎片整理!(第二次修改版)

为当前最终发行版之前的所有版本提供支持
回复
头像
Jimmy.Zhou
帖子: 475
注册时间: 2006-12-05 21:51
来自: Vienna, Austria
送出感谢: 0
接收感谢: 0

#31

帖子 Jimmy.Zhou » 2006-12-09 5:28

茅塞顿开啊! :D
头像
TualatriX
帖子: 359
注册时间: 2006-11-17 20:07
来自: 杭州/宁波
送出感谢: 0
接收感谢: 0
联系:

#32

帖子 TualatriX » 2006-12-09 9:26

好文章!我终于明白了Linux是真的不需要磁盘整理的。
IMTX:http://imtx.cn/

LDCN(已经关闭):http://linuxdesktop.cn/

Ubuntu Tweak:http://ubuntu-tweak.com/
头像
Cyclonecj
帖子: 49
注册时间: 2006-12-24 17:48
来自: BUAA
送出感谢: 0
接收感谢: 0
联系:

#33

帖子 Cyclonecj » 2006-12-27 0:09

我看过了,很不错哦。加深了印象
xyz042
帖子: 31
注册时间: 2006-10-18 18:03
送出感谢: 0
接收感谢: 0

#34

帖子 xyz042 » 2006-12-27 18:18

我问一个问题如果文件系统用到一定的程度后(如下,其中1为文件1,2为文件。。。),要再添加一个比较大的文件(如加入50个f),那个文件不是也会有外部碎片吗?
a b c d e f g h i j k l m n o p q r s t u v w x y z

a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s a a a a a a a a a a a a a a a a a a a a a a a a a 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u b b b b b b b b b b b b b b b b b b b b b b b b b b
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y d d d d d d d d d d d d d d d d d d d d d d d d d d
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
yhz
帖子: 11
注册时间: 2007-01-07 10:52
送出感谢: 0
接收感谢: 0

#35

帖子 yhz » 2007-01-20 19:31

文章的标题有点奇怪,其内容上也有不少值得商榷之处:

1:
Linux却在整个磁盘上存储文件,所以当文件的大小需要改变的时候,总是有足够的空间。
从数学上来说,只要你给定一个整数k,那么,一定存在一个整数k+1。
所以,根据以上数学定理,无论Linux为两个文件之间保留了多少预留空间,我总能把它填满并溢出……
使用预留空间的做法,只能说降低了发生溢出的几率,而不可能从根本上杜绝这个情况的发生。

至于文中一再强调的“20%”,只能合理的理解为:当磁盘剩余可用空间小于20%的时候,这种溢出的发生几率会大大增加,以至于到了不可忽视的地步。

事实上,MS的NTFS系统用的也是类似的方法,所以不要再抱着FAT/FAT32的老皇历来沾沾自喜了。

2:
  第一,为什么类unix系统产生几十年了,没有人做一个磁盘碎片整理软件?而即使是到现在,在这个论坛上也没有朋友提到过遇到linux病毒,我们仍然能找到许多类unix杀毒软件?我就至少能列出3种免费杀毒软件。

  第二,很多类unix操作系统都是长年累月不关机的,诸如银行、电信、军工等系统,你能想象它们停止磁盘读写,在长达几小时内进行磁盘碎片整理所带来的后果吗?这些机器的磁盘读写量可是比家用机大多了。
事实上,第二点正是出现第一点的原因。

为什么没有人在*nix中使用磁盘碎片整理软件?那是因为没有人愿意承受由此带来的后果。
为什么没人开发在*nix下的磁盘碎片整理软件?那是因为没有人愿意使用它。

道理是很浅显的,再举个例子吧:
先在美国在伊拉克弄的满头烟,那么它要是把在伊拉克的什叶派和逊尼派都统统三光了,伊拉克不就清静了?
它有这么多原子弹,有这么多的毒气、生化武器,能力绝对不是问题。
但是这么做而带来的后果显然是美国所不能承受,或者说不想承受的,所以它也就没这么做。

所以,当人们没有做一件事情的时候,往往是不愿意承担其风险,或者承受其代价,故而没有需求,也就没有动力。
而不是没有能力,或者真的不需要。

3:
文中一再强调:“内部碎片主要是造成磁盘空间的浪费”
而在它解释Linux为什么不会产生文件碎片的时候,却说Linux文件的存放机制是文件A、B是不会紧密相连的,中间会有一个“预留空间”。那么请问这个“预留空间”的存在会不会造成“磁盘空间的浪费”呢?
事实上Linux在这个问题上仅仅是投机取巧了一点而已:它没有了“簇”的概念,但是不等于它就真的没有了“内碎片”,只不过由FAT的“簇内剩余空间”的“浪费”变成了文件A、B之间的“预留空间”而已。不客气的说一句:那是换汤不换药。
另外,再说一下,FAT的磁盘空间碎片也不是一定有的,只要一个文件的大小增长还是在一个“簇”之内,其实还是不会产生文件碎片的,这个原理和所谓的“Linux不会产生文件碎片”的原理也是完全一样的。

4:
有没有真正没有文件碎片的磁盘文件格式呢?
有,当然有。所有(至少是大部分)一次性写入的格式都是这样的,例如说磁带机的顺序写入、CD/DVD上的文件格式(可能不包括DVD-RAM,因为那个是完全可随机读写的)、还有一些一次性写入的ROM之类的。

从逻辑上来说,只要支持随机文件读写删除的文件系统,就不可避免的产生文件碎片和空间浪费。

而且,从工程上说,“磁盘空间浪费”是为了尽可能减少“文件碎片”所采取的措施的副作用。从目前所有的主流磁盘文件格式来看,它们为了减少“文件碎片”而采取的方法和手段基本上都是类似的,无非就是利用预留磁盘空间,来减少因为文件大小增加所需要的重新分配。所以,在这个问题上,谁也无法独善其身,特别需要强调的是:所有的*nix所用的ext?系统,同样如此。

至于可怜的FAT/FAT32,只不过是它们出现的时间比较早,而且当时计算机的性能也不高,所以就采用了比较机械的“簇”的方式来实现这个功能,因而也被大家老拿来说事。不得不感叹:可怜的老前辈啊~
gman3025
帖子: 151
注册时间: 2007-01-13 18:55
送出感谢: 0
接收感谢: 0
联系:

#36

帖子 gman3025 » 2007-01-20 20:45

严重同意楼上的讲法!!其实大家对linux不产生碎片似乎很感兴趣,但事实上无论任何系统都会产生或多或少的文件不连续情况,照所谓官方的文章来看,我认为linux换了一个概念,一、文件如何分配比较合理?如果像文章举例的那样,那么我想问一句,究竟文件与文件之间该留多少空间来避免碎片的产生?二、无可否认EXT的存储机制(仅存储)比较先进,但是没有碎片产生?那么你的linux分区所需要的空间相当大,我是按文章所说的所推导出来的,而ntfs所倡导的是读取速度优先!这种以速度换取质量的情形其实不奇怪,最主要是针对的客户群不同!!

UNIX/Linux的系统一般为大型服务器使用,因为这些服务器上面存放的数据很重要,有些是很敏感的,因此数据安全性比读取速度远远要重要得多,采取linux的存储机制可以有效地防止数据的丢失或者读写错误,而NT系统一般为交换服务器或者为局域网所采用,因为这些服务器需要及时的反应!试想下如果你要访问硬盘上某个文件的话,是连续访问容易还是跳着访问容易?时效性这就出来了(这是根据硬盘的物理结构所提出的,不知道硬盘结构的请想像一下以前旧式的黑胶唱片的运作,硬盘的运作基本上就和这差不多)

因此,在硬盘上没有不产生碎片的存储格式,只是产生的环境不同,应用的环境不同,所以大家要注意保护下自己的硬盘,过分的读写还是会使硬盘坏的哦
tt2nn
帖子: 205
注册时间: 2007-01-15 9:45
送出感谢: 0
接收感谢: 0

#37

帖子 tt2nn » 2007-01-21 13:06

长见识了:) 谢谢!
yuwensheng
帖子: 59
注册时间: 2006-09-01 18:07
送出感谢: 1 次
接收感谢: 0
联系:

#38

帖子 yuwensheng » 2007-01-29 21:46

:lol: 学习了。好文章 ,谢谢!
头像
我思故我在
帖子: 101
注册时间: 2006-08-17 1:13
送出感谢: 0
接收感谢: 2 次

#39

帖子 我思故我在 » 2007-02-05 23:37

  谢谢35楼的yhz朋友,对我的文章提出了诸多看法。
  我的文章主题是说明linux不需要磁盘碎片整理,这里已经把讨论范围扩大化了,下面我也扩展的说说类unix。
  首先,从现状来看,类unix的服务器的磁盘读写速度比windows个人机快。
  从技术上讲,先说重点:文件系统。类unix显然追求着更快的速度。
  如类unix下的linux,它有一种文件系统是ReiserFS,是使用了特殊的优化b*平衡树(每个文件系统一个)来组织所有的文件系统数据。和ext2不同,ReiserFS并不固定地以1k或者4k的块分配存储空间,而是分配所需要的精确尺寸。而且ReiserFS也包括了以尾文件为中心的特殊优化―尾文件是指那些比文件系统块小的文件及文件结尾部分。为了提高性能,ReiserFS能够在b*树的叶子节点存储文件,而不是把数据存储在磁盘的其它地方再指向它。ReiserFS基于快速平衡树(balanced tree)搜索,ReiserFS搜索大量文件时,搜索速度要比ext2快得多。实际上,当处理小于1k的文件时,ReiserFS大概要比ext2快8到15倍!
  又例如基于类unix下的系统Irix的XFS,它使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。 XFS能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。上面的ReiserFS在小文件系统中表现出优异的性能,而XFS则正是在大文件处理上有着更大的优势。
  除了在文件系统上追求更快的读写速度。类unix服务器也常采取raid策略加快存取,windows用raid的则比较少。
  在硬件上,服务器常用SCSI硬盘,个人则常用IDE。而SCSI是比IDE更快的。服务器多用类unix,个人则是windows。
  从用户需求来说:以windows XP为例,它默认同时只能一个用户操作。而类unix诞生时即是为多用户同时处理设计。多用户同时对磁盘读写与单用户磁盘读写谁需要更快的速度也是显而易见的。
  下面是一台linux的磁盘速度:
# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 3212 MB in 2.00 seconds = 1606.24 MB/sec
Timing buffered disk reads: 380 MB in 3.01 seconds = 126.35 MB/sec
  下面是14块15k的SCSI盘,做的raid0+1。
#hdparm tT /dev/cciss/c0d0p4
/dev/cciss/c0d0p4:
Timing cached reads: 3840 MB in 2.00 seconds = 1919.33 MB/sec
Timing buffered disk reads: 916 MB in 3.00 seconds = 304.97 MB/sec
  这两个都是网友机器的实测值,你敢说它们慢?
  说NTFS采取了更优化的文件系统,这个我承认。然而我常常看到别人NTFS上的磁盘磁片超过10%。下面是我的FreeBSD的磁盘碎片量:
/dev/ad0s2a: clean, 222837 free (261 frags, 27822 blocks, 0.1% fragmentation)
/dev/ad0s2e: clean, 253793 free (33 frags, 31720 blocks, 0.0% fragmentation)
/dev/ad0s2f: clean, 2255668 free (53364 frags, 275288 blocks, 0.9% fragmentation)
/dev/ad0s2d: clean, 429129 free (1313 frags, 53477 blocks, 0.3% fragmentation)
  因为最近几个月主要用它,就贴它了。其中/dev/ad0s2f我三次在容量使用上超过了它的警界线,而我在查看磁盘碎片量时,从来没看到磁盘碎片超过2%。所以,我个人是相信类unix几乎不产生磁盘碎片,类unix不需要磁盘碎片整理这一说法的。
  下面另外讲讲,类unix产生磁盘碎片少的原因,这些则只是我的个人思考,不一定正确。
  windows容易产生碎片的一个方面是内存交换文件swap或pagefile,类unix与之对应的是swap。由于类unix是尽量多的用物理内存,所以用swap很少,以我的个人机器来说,1G的物理内存,用类unix时一般swap使用是0,而在windows XP下则常在300~400M,这时windows会产生碎片,而类unix不会。其次,类unix一般默认会单独分区swap,windows的pagefile在和启动区混在一起。
  类unix的文件系统很科学,临时文件一般都会产生在/tmp下,而windows则不是。临时文件的回收上,类unix也比windows好。此外,有些管理员会单独分区/boot、/usr等,并将/boot标为只读,而/usr在最早机器装好软件后,几乎不会再进行写操作。所以这两个区的碎片也是极低的。windows则没有这种策略。我也曾把windows下的一些$TEMP一起移到一个区,然而某些程序报错了,我最后只能打消这个念头。
  最后,有一点我同意你的说法。类unix确实在空间上有损耗。以我的为例:
$df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s2a 496M 61M 396M 13% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s2e 496M 54K 456M 0% /tmp
/dev/ad0s2f 11G 7.1G 3.4G 68% /usr
/dev/ad0s2d 989M 151M 759M 17% /var
/dev/ad0s8 36G 21G 16G 57% /media/ad0s8
  如/usr,它是UFS文件系统,我分区时给了约12G,它显示的是11G空间,Used+Avail却只有10.5G,另外0.5G它就不准备让用户使用。
  而/media/ad0s8是FAT32,它的Used+Avail甚至比显示大小36G还大了1G。
  实际上各种文件系统也必然有着各自的考量,不同的应用、不同的需求采用的文件系统是不同的。没有一种文件系统会在安全性、速度、兼容等方面都最强。
天行健,君子以自强不息;
地势坤,君子以厚德载物。
头像
linbingqing
帖子: 41
注册时间: 2007-01-12 10:24
送出感谢: 0
接收感谢: 0

#40

帖子 linbingqing » 2007-02-08 15:36

好贴 :D
poet
帖子: 2841
注册时间: 2006-09-11 22:47
送出感谢: 0
接收感谢: 4 次

#41

帖子 poet » 2007-02-09 17:43

yhz 写了:文章的标题有点奇怪,其内容上也有不少值得商榷之处:
事实上,MS的NTFS系统用的也是类似的方法,所以不要再抱着FAT/FAT32的老皇历来沾沾自喜了。
根据。根据,有理有据。你这句话在我看来是一面之辞。请拿出根据。

我用ext3,ntfs也用,fat也用,reiserfs也用。

我的ntfs盘,同样经常需要整理碎片,而且碎片能够达到10%-20%,相同条件下,ext3的碎片少得多。——没有人说ext3无碎片,可是对于大多数的典型应用来说,ext3都能够做到比ntfs少得多的碎片。这是个不争的事实。

不可否认NTFS速度确实做了优化,可是NTFS的速度与reiserfs还是有相当大的差距,证据?网上有测试数据,一大把。比较著名的,可以找NTFS-3G的作者作的评测,NTFS3G不是个简单的东西,写这个的作者做事情必然也是个很细腻的人。作者自己非常坦率的表明:虽然NTFS3G的驱动比Windows的NTFS驱动快了许多倍,但是仍然与reiserfs有差距。

至于说NTFS速度优化的问题,如果是指的windows自身的驱动,我表示怀疑,因为我被NTFS3G的性能所折服,原来在linux下访问NTFS可以比windows下快这么多。——但是在windows下,我做过测试NTFS绝对不比FAT快。——NTFS的好处只是安全,因为FAT遇到掉电几乎是100%出问题,NTFS目前还没有遇到过掉电造成数据损坏的情况。

其实我是个windows和linux的两面派,所以我无意维护任何一个操作系统,因为他们都有对方做不了的事情。——但是就文件系统来说。NTFS的确也”没什么好得意的“。虽然NTFS的速度可以快过ext3,但是Linux并不是只能用ext3。。。而且ext3的碎片仍然比NTFS少得多。
kingwxj
帖子: 18
注册时间: 2006-06-03 21:29
送出感谢: 0
接收感谢: 0

#42

帖子 kingwxj » 2007-02-09 18:52

好贴
linux下的目录结构文件结构是比较先进的
头像
YinzCN
帖子: 141
注册时间: 2006-07-10 22:31
送出感谢: 0
接收感谢: 0

#43

帖子 YinzCN » 2007-02-14 15:31

看完。明白了。帮顶!!
Ubuntu 6.06
AMD Sempron 2800+
VDATA 512 DDR400 *2
Nvidia 6600GT
WDC2500YS SATA 250GB
广东佛冈 <<- 听过吧?哈哈
yhz
帖子: 11
注册时间: 2007-01-07 10:52
送出感谢: 0
接收感谢: 0

#44

帖子 yhz » 2007-02-25 23:29

To 我思故我在 和 poet 朋友:
既然两位都拿出了数据,那么我也就顺着两位的要求拿出点数据来看看,NTFS究竟是不是比EXT3慢吧:

“我思故我在”朋友贴出了一堆网友提供的数据,看到我如临大敌啊。熟悉硬盘的都知道,最快的15K盘应该不外乎ST的15K.4、fujitsu的MAU、Maxtor的Atlas 15K II等几个型号,其单盘外圈的连续读取速度也不过是9xMB/s。而且目前为止我还没听说哪块硬盘单盘外圈能超过100MB/s的了,更不用说平均速度,大约都在7xMB/s左右(Maxtor的平均速度可以超过80MB/s,但那是因为内圈速度快,可能是其惯用的屏蔽内圈磁道的效果)。后面还跟了一个0+1的raid系统数据,看得我是直流口水啊,只可惜兜里没米~

不过“我思故我在”朋友的数据却漏了一个很重要的环节:对比数据。
众所周知,由于硬件平台环境千差万别,没有同一平台下的对比数据,是什么也说明不了的。那么我就给出一下在我现在用的系统上的对比数据吧:

我的硬盘是fujitsu的MAP3147NC+29160,它是纯数据盘,操作系统包括虚拟内存或者swap都不在这个硬盘上。

在Win2003上用SiSoftware Sandra测试NTFS格式的F盘(即sda1)的数据如下:
(SiSoftware Sandra给出的数据和结果相当的多,我只截取了关键的一段)

Benchmark Breakdown
Buffered Read : 112 MB/s
Sequential Read : 65 MB/s
Random Read : 46 MB/s
Buffered Write : 19 MB/s
Sequential Write : 62 MB/s
Random Write : 46 MB/s
Average Access Time : 6 ms (estimated)

在Ubuntu上用“hdparm -tT /dev/sda”测试EXT3格式的sda2的数据(三次)如下:

/dev/sda:
Timing cached reads: 3892 MB in 2.00 seconds = 1946.66 MB/sec
Timing buffered disk reads: 204 MB in 3.02 seconds = 67.53 MB/sec

/dev/sda:
Timing cached reads: 3980 MB in 2.00 seconds = 1990.99 MB/sec
Timing buffered disk reads: 204 MB in 3.02 seconds = 67.54 MB/sec

/dev/sda:
Timing cached reads: 3852 MB in 2.00 seconds = 1926.65 MB/sec
Timing buffered disk reads: 204 MB in 3.03 seconds = 67.40 MB/sec

三次的数据非常接近,而且在第二、第三次测试之间我还重启了一次系统。但是和“我思故我在”朋友贴出的第一组数据:

# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 3212 MB in 2.00 seconds = 1606.24 MB/sec
Timing buffered disk reads: 380 MB in 3.01 seconds = 126.35 MB/sec

中“Timing cached reads”项相差不大,还略高于它,但是“Timing buffered disk reads”却远远不及。其中的原因不太清楚,希望“我思故我在”能补充一下测试的软硬件环境?
由于我同时测试WD3000JB(这个硬盘才是测试时的系统盘)的数据如下:

/dev/hda:
Timing cached reads: 3852 MB in 2.00 seconds = 1927.44 MB/sec
Timing buffered disk reads: 176 MB in 3.03 seconds = 58.09 MB/sec

从网上大量的数据都可以反映出来,这两款硬盘的实际读取速度是相近的(毕竟MAP是三四年前的产品了),所以我暂且认为我的数据是没有问题的。

虽然在EXT3下的测试数据和“我思故我在”朋友贴出的数据有点不同,但是作为对比测试数据,同时也基于上面我给出的解释,所以我还是应该采信我自己系统上的数据:EXT3上的“buffered disk reads”才67.53 MB/sec,而NTFS分区的“Buffered Read”是112 MB/s。另外,需要指出的是,那个测试用的NTFS分区在测试完之后,用自带的磁盘碎片检测工具进行分析,结果是“推荐进行磁盘碎片整理”的。当然,我从很多年前,就对这个建议嗤之以鼻的了。

还有,我相当怀疑那个“1946.66 MB/sec”能否作为一项比较的数据,我的SCSI卡才160M的总线带宽,而且还接在32bit的PCI插槽上,理论带宽只有133MB/s,可能有 1946.66 MB/sec的测试结果吗?而且在man中看到hdparm的测试选项太少,而且非常的不专业。不过Linux上我还不知道有类似Windows下SiSoftware Sandra和HD tach那样专业的磁盘速度测试软件,所以只能暂时用这个替代一下,如果有谁有更好的软件,我倒是愿意继续做测试一下,毕竟在我实际工作中,感觉EXT3分区的性能不至于差这么多。

我的机上目前还没有reiserfs分区,也没有装NTFS3G,所以暂时无法做类似的测试。

至于两位一再强调的NTFS文件碎片多,或者碎片多了之后影响性能之类的,我在上面的文章已经说过了:那是因为对“碎片”的定义不同而导致的。事实上MS对“碎片”的定义依然沿用老式的FAT时代的标准,所以会发现磁盘碎片非常容易产生。但是我自己做过的测试表明:一个连续做了FTP一个月,磁盘碎片分析完全是红色的分区进行读取测试,比碎片整理后同一分区的读取测试仅仅慢了不到2%(具体数字忘了,记得是刚过1%),这个测试结果让我最终抛弃了磁盘碎片整理这个无聊的举动。事实上在公司的局域网里,有几台Win的文件服务器,照样用的是NTFS分区,从来就没人整理过什么磁盘碎片。

“我思故我在” 朋友说到的Windows下虚拟内存文件会干扰系统盘的运行,这当然是正确的。但是,正如Linux可以单独分一个swap分区,单独为/tmp或者/home分一个分区一样,Windows也可以单独为虚拟内存文件指定一个非系统分区,临时目录或者桌面路径等也可以通过修改注册表来转移。在WinXP下的PowerToys甚至可以不用通过注册表,就可以搞定这些操作,只是可惜在Win2003下需要自己动手改注册表。

另外,说多几句:我一直认为,人们通常以为Windows服务器性能不佳或者安全性不够,不是因为Windows服务器版不行,而是人们太过于自以为是,把Windows桌面版的习惯统统“移植”到了服务器版上才导致问题的出现。事实上,一个经过细心的良好的配置管理的Windows服务器的性能和安全性,绝对比默认设置下Linux服务器版要高。人们愿意花大量的精力去学习Linux的系统操作和管理,为什么就不愿意花同样的精力去学习Windows服务器版的操作和管理呢?

对于“poet”朋友说的:“作者自己非常坦率的表明:虽然NTFS3G的驱动比Windows的NTFS驱动快了许多倍,但是仍然与reiserfs有差距”。
我相当怀疑这个说法:如果MS自家推出的NTFS格式,自家系统的读写效率还不如别人破解出来的NTFS-3G高的话,那么盖茨大叔应该去跳楼了。呵呵。

所以,我个人认为,如果不是这个作者以偏概全的话,那么就只能说明他在读写NTFS分区时,要么有bug,要么忽略了一些操作,例如(可能是,没有具体研究过)安全性检查,完整性校验等等。不过这种也只是我个人的怀疑,毕竟谁也没办法看到Windows自家读写NTFS分区的代码,信不信就自己琢磨吧。

至于说到NTFS分区速度优化的问题,老实说,从最简单的原理都可以知道:越简单的系统,其性能越高。所以,NTFS怎么又优化速度,也比不上FAT的速度是理所当然的。正如我所说的:一切都在于权衡和取舍。无论是性能上还是安全上,无论是效率上还是消耗上,都是如此。
头像
csdh79483
帖子: 17
注册时间: 2007-02-17 18:34
送出感谢: 0
接收感谢: 0

#45

帖子 csdh79483 » 2007-02-26 1:30

虽然不是完全明白,支持一下,感谢lz
回复

回到 “其他版本支持”