发信人: Thinboy()
整理人: jiaxu2000(2004-03-30 09:36:52), 站内信件
|
我在winnt下用磁盘管理器在两个IBM 4.3G硬盘上各分出3.3G出来, 并创建了带区,也就是RAID0吧,理论的速度应是单盘的两倍速度,对不? 但是我经过copy文件来测试它的速度,发现在带区上的文件拷贝速度 比起不在带区上的文件拷贝速度,不但没有接近两倍的速度,且是慢了, 为什么呢? 例如不是带区的盘是D盘,带区的盘是E盘,我把130M的文件(在D、E 盘上皆有,是一模一样的文件)各在D盘及E盘上拷贝,前者用了约1分钟时间, 后者居然多了15秒左右,相差数值不定。 为什么呢?速度竟没提高,反而下降??
我的机器配置为:PII-266, 192M RAM , IBM 4.3G(68Pin)x2, 华硕BX主板。
-- ※ 来源:.广州网易 BBS bbs.nease.net.[FROM: 202.103.164.4] 发信人: kerphis (~2000~), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易BBS站 (Tue Oct 6 11:25:28 1998), 转信
【 在 Thinboy (Thinboy) 的大作中提到: 】 : 我在winnt下用磁盘管理器在两个IBM 4.3G硬盘上各分出3.3G出来, : 并创建了带区,也就是RAID0吧,理论的速度应是单盘的两倍速度,对不? : 但是我经过copy文件来测试它的速度,发现在带区上的文件拷贝速度 : 比起不在带区上的文件拷贝速度,不但没有接近两倍的速度,且是慢了, : 为什么呢? : 例如不是带区的盘是D盘,带区的盘是E盘,我把130M的文件(在D、E : 盘上皆有,是一模一样的文件)各在D盘及E盘上拷贝,前者用了约1分钟时间, : 后者居然多了15秒左右,相差数值不定。 : 为什么呢?速度竟没提高,反而下降??
这个要看你的控制卡了, 如果你的控制卡是多通道的, 才能使用 并发I/O, 就是两个硬盘一起工作, 否则的话, 数据还是只能依次 写到两个硬盘中去, 而且两个硬盘的寻道时间等等加起来还会更 多, 所以可能会慢.
如果你的硬盘是接在同一个IDE口上, 很明显是绝对不能提高速度的, 如果分别接在两个IDE口上, 我想可能也还是不行, 不过不太清楚, 也没有试过. 最好是用SCSI啦, 如果你很强调速度的话.
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 160.96.179.5] 发信人: Thinboy (Thinboy), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易 BBS (Tue Oct 6 12:00:11 1998), 转信
【 在 kerphis (~2000~) 的大作中提到: 】 : 【 在 Thinboy (Thinboy) 的大作中提到: 】 : : 我在winnt下用磁盘管理器在两个IBM 4.3G硬盘上各分出3.3G出来, : : 并创建了带区,也就是RAID0吧,理论的速度应是单盘的两倍速度,对不? : : 但是我经过copy文件来测试它的速度,发现在带区上的文件拷贝速度 : : 比起不在带区上的文件拷贝速度,不但没有接近两倍的速度,且是慢了, : : 为什么呢? : : 例如不是带区的盘是D盘,带区的盘是E盘,我把130M的文件(在D、E : : 盘上皆有,是一模一样的文件)各在D盘及E盘上拷贝,前者用了约1分钟时间, : : 后者居然多了15秒左右,相差数值不定。 : : 为什么呢?速度竟没提高,反而下降?? : 这个要看你的控制卡了, 如果你的控制卡是多通道的, 才能使用 : 并发I/O, 就是两个硬盘一起工作, 否则的话, 数据还是只能依次 : 写到两个硬盘中去, 而且两个硬盘的寻道时间等等加起来还会更 : 多, 所以可能会慢. : 如果你的硬盘是接在同一个IDE口上, 很明显是绝对不能提高速度的, : 如果分别接在两个IDE口上, 我想可能也还是不行, 不过不太清楚, : 也没有试过. 最好是用SCSI啦, 如果你很强调速度的话.
我漏说了一件东西,我用的SCSI卡是2940u/w
这点上,有什么问题呢?
-- ※ 来源:.广州网易 BBS bbs.nease.net.[FROM: 202.103.164.4] 发信人: Vic (Vic), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易BBS站 (Tue Oct 6 14:41:13 1998), 转信
这有点类似于并行处理里面的问题:多个CPU到底能提高多少运算速度? 如果不是专门为并行处理而设计的程序,多个CPU不仅不能提高速度,甚至 会降低速度.这种不能利用多个CPU能力的程序是所谓串行化的,即它的运算 步骤中后面的步骤依赖于前面的步骤,因此只能一步步来.如果前后两个步 骤彼此不依赖,那么两个步骤就可以分给两个CPU同时做,速度就能提高.
RAID的情况和此相似.多个硬盘对应多个CPU,运算速度对应传输速率,程序 对应I/O任务.NT的explorer在处理单个文件copy时肯定把它当成一个不 可分割的步骤,最多只是交替使用几个分区/硬盘,几个硬盘不能同时工作. 如果你让NT往RAID上拷几千个小文件,也许能让几个硬盘同时工作.当然这 也要看explorer在拷贝文件时是否是多线程的:当有100个文件copy 请求时,explorer会同时使用几个线程,每个线程执行一个copy请求吗? 我有点怀疑.如果explorer还是单线程方式一个一个copy,RAID仍然没有 被利用.也许你想要看到RAID的真正好处一定要使用能支持多线程的软件, 如数据库系统,并把数据库建到RAID上.
结论:要同时利用多个设备(CPU,HD)的能力,需要有专门的并发设计. explorer很明显是不行的.
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 202.102.13.202] 发信人: Vic (Vic), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易BBS站 (Tue Oct 6 14:56:13 1998), 转信
【 在 Thinboy (Thinboy) 的大作中提到: 】 : 【 在 kerphis (~2000~) 的大作中提到: 】 : : 这个要看你的控制卡了, 如果你的控制卡是多通道的, 才能使用 : : 并发I/O, 就是两个硬盘一起工作, 否则的话, 数据还是只能依次 : : 写到两个硬盘中去, 而且两个硬盘的寻道时间等等加起来还会更 : : 多, 所以可能会慢. : : 如果你的硬盘是接在同一个IDE口上, 很明显是绝对不能提高速度的, : : 如果分别接在两个IDE口上, 我想可能也还是不行, 不过不太清楚, : : 也没有试过. 最好是用SCSI啦, 如果你很强调速度的话. : : 我漏说了一件东西,我用的SCSI卡是2940u/w : : 这点上,有什么问题呢? : 如果你用的不是SCSI系统,两个硬盘就根本不可能同时工作.因此仍然是 我上面文章的观点:真正并行的系统,需要自上而下的全面支持:应用程序, 操作系统,I/O总线,外设.任何一个环节不支持并行,都只能得到一个低 效的串行系统.
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 202.102.13.202] 发信人: Thinboy (Thinboy), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易 BBS (Tue Oct 6 19:09:11 1998), 转信
这么说来,NT4搞这个带区有什么作用? 不是实现并行读写吗?
普通程序的读写, 不是通过它而成为并行读 写吗?
如果需要专门的并发设计的程序,那要这个NT4的带区有啥用?
我想提高硬盘速度的话, 现在可以怎样做?
重复说一次我的机器配置: PII-266 192M RAM, 华硕BX主板, Adapter 2940u/w SCSI卡, IBM DASV-34330(4.3G 68Pin) X 2 WINNT4 Server + SP3
【 在 Vic (Vic) 的大作中提到: 】 : 这有点类似于并行处理里面的问题:多个CPU到底能提高多少运算速度? : 如果不是专门为并行处理而设计的程序,多个CPU不仅不能提高速度,甚至 : 会降低速度.这种不能利用多个CPU能力的程序是所谓串行化的,即它的运算 : 步骤中后面的步骤依赖于前面的步骤,因此只能一步步来.如果前后两个步 : 骤彼此不依赖,那么两个步骤就可以分给两个CPU同时做,速度就能提高. : RAID的情况和此相似.多个硬盘对应多个CPU,运算速度对应传输速率,程序 : 对应I/O任务.NT的explorer在处理单个文件copy时肯定把它当成一个不 : 可分割的步骤,最多只是交替使用几个分区/硬盘,几个硬盘不能同时工作. : 如果你让NT往RAID上拷几千个小文件,也许能让几个硬盘同时工作.当然这 : 也要看explorer在拷贝文件时是否是多线程的:当有100个文件copy : 请求时,explorer会同时使用几个线程,每个线程执行一个copy请求吗? : 我有点怀疑.如果explorer还是单线程方式一个一个copy,RAID仍然没有 : 被利用.也许你想要看到RAID的真正好处一定要使用能支持多线程的软件, : 如数据库系统,并把数据库建到RAID上. : 结论:要同时利用多个设备(CPU,HD)的能力,需要有专门的并发设计. : explorer很明显是不行的.
-- ※ 修改:.Thinboy 于 Oct 6 19:10:19 修改本文.[FROM: 202.103.164.4] ※ 来源:.广州网易 BBS bbs.nease.net.[FROM: 202.103.164.4] 发信人: Magicboy (师傅仔), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易 BBS (Tue Oct 6 21:18:48 1998), 转信
【 在 Thinboy (Thinboy) 的大作中提到: 】 : 这么说来,NT4搞这个带区有什么作用? 不是实现并行读写吗? : 普通程序的读写, 不是通过它而成为并行读 写吗? : 如果需要专门的并发设计的程序,那要这个NT4的带区有啥用? : 我想提高硬盘速度的话, 现在可以怎样做? : 重复说一次我的机器配置: PII-266 192M RAM, 华硕BX主板, : Adapter 2940u/w SCSI卡, IBM DASV-34330(4.3G 68Pin) X 2 : WINNT4 Server + SP3 我想它的好处是"做大"分区,提供一个很大的逻辑盘。 要想提高速度可能要硬件磁盘阵列才行。
: 【 在 Vic (Vic) 的大作中提到: 】 : : 这有点类似于并行处理里面的问题:多个CPU到底能提高多少运算速度? : : 如果不是专门为并行处理而设计的程序,多个CPU不仅不能提高速度,甚至 : : 会降低速度.这种不能利用多个CPU能力的程序是所谓串行化的,即它的运算 : : 步骤中后面的步骤依赖于前面的步骤,因此只能一步步来.如果前后两个步 : : 骤彼此不依赖,那么两个步骤就可以分给两个CPU同时做,速度就能提高. : : RAID的情况和此相似.多个硬盘对应多个CPU,运算速度对应传输速率,程序 : : 对应I/O任务.NT的explorer在处理单个文件copy时肯定把它当成一个不 : : 可分割的步骤,最多只是交替使用几个分区/硬盘,几个硬盘不能同时工作. : : 如果你让NT往RAID上拷几千个小文件,也许能让几个硬盘同时工作.当然这 : : 也要看explorer在拷贝文件时是否是多线程的:当有100个文件copy : : 请求时,explorer会同时使用几个线程,每个线程执行一个copy请求吗? : : 我有点怀疑.如果explorer还是单线程方式一个一个copy,RAID仍然没有 : : 被利用.也许你想要看到RAID的真正好处一定要使用能支持多线程的软件, : : 如数据库系统,并把数据库建到RAID上. : : 结论:要同时利用多个设备(CPU,HD)的能力,需要有专门的并发设计. : : explorer很明显是不行的.
-- ※ 来源:.广州网易 BBS bbs.nease.net.[FROM: 202.103.136.25] 发信人: Vic (Vic), 信区: WinNT 标 题: Re: WINNT下RAID0的速度?! 发信站: 广州网易BBS站 (Wed Oct 7 09:49:08 1998), 转信
【 在 Thinboy (Thinboy) 的大作中提到: 】 : : 这么说来,NT4搞这个带区有什么作用? 不是实现并行读写吗? : : 普通程序的读写, 不是通过它而成为并行读 写吗? :
程序的流程不可能通过一个底层驱动而改变.比如文件拷贝的代码是 这么写的:(大概的意思) while(!feof(sourcefile)) { fread(sourcefile, buffer); fwrite(destfile, buffer); } 就注定了一定要先读过再写,写完上一块才能再读下一块。 即使源/目标文件在两个硬盘,也一点并行都来不了.如果写的复杂些, 用两个线程加一个缓冲区队列,读线程读到后加到队列尾部,写线程从 队列头部取内容写,两个硬盘才能同时开工.
使用windows时能感觉到在同一个硬盘上拷文件比跨硬盘拷文件要慢, 我想那是因为省去了硬盘磁头来回寻道(访问两个文件)的时间.
: 如果需要专门的并发设计的程序,那要这个NT4的带区有啥用? : : 我想提高硬盘速度的话, 现在可以怎样做? : 硬件RAID的好处:通过RAID接口提交一个请求,比如读10M文件,接口控制卡 会把这个请求拆分为很多小请求,并把这些请求同时提交给多个硬盘去完成. 最后再将所有结果拼装起来返回。
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 202.102.13.199]
|
|