我也搞不懂了,都说设置成卡支持的最大条带好。我的3个maw,设置128kb持续居然只有80,和单快盘一样,设置成64持续有193不会有不良后果……
理论上来说,条带越小的话,CPU占用率越低,持续速率越小,随机速率越快……
不过很多时候跟盘/卡都有关系。所以最好还是自己各种设置测一下。普通应用做系统盘的话,建议用PC Mark来测,看硬盘 ...
harleylg 发表于 2009-6-4 03:10
你说的完全相反了。。
没缓存、缓存小、没开预读的卡在大条带下持续低主要是这样一个情况,例如条带大小为64K,我现在要按64k对齐的每次读取64k,那就变成了先读一个盘,再读另一个盘,没有发生同时读取了。
但是有 ...
bcyj 发表于 2009/6/4 03:23
我是说反了,正确应该是“条带越小的话,CPU占用率越高,持续速率越小,随机速率越快”,严格点来说不应该说随机速率越快,而应该说随机IOPS越高。
不过你的说法也有问题,即使无缓存,大条带下持续地的原因一 ...
harleylg 发表于 2009-6-4 05:50
你还是错了,IOPS也是小条带的低,在同样的盘之下,要提高iops,就是尽量让一次读取只经过一个盘,关于这个概率,请看这个帖子,我就不再写一次了http://we.pcinlife.com/thread-1148525-1-1.html
bcyj 发表于 2009/6/4 06:08
预读缓存也基本不存在命中率的问题,因为这里不是CPU,没有条件跳转,不存在分支预测
卡做的预读就是在资源空闲时预读这次访问的下个块,本来就对随机读写没效,也就是只影响持续
bcyj 发表于 2009/6/4 06:30
我说的跟你那个帖子说的没有矛盾,我并不是说所有情况下都是小条带下IOPS高,我是说小条带的"随机IOPS"高……这个差很远的好不好?
至于你举的这个循环的例子,我只能说如果你是这样写的程序,操作系统并不一 ...
harleylg 发表于 2009-6-4 06:52
既然是缓存就一定有命中问题,即使不同于CPU的分支预测,RAID卡也有自己的缓存算法,不过就是最简单的顺序预测而已。但即使这样,因为往往同时不止一个IO产生,根据哪个IO去预读,预读多少块,也是有算法的。也不 ...
harleylg 发表于 2009-6-4 06:59

iops本来就是随机的,每个盘的iops都是相应固定的,所以理论上最高iops就是单盘的iops x 盘数,那么raid时要尽量靠近理论上的最高iops的方法,就是尽量让每次的io请求只由一个单独的盘去响应.条带越小,一次io请求由多盘 ...
bcyj 发表于 2009/6/4 07:06

原理上你说的没错,但是结论并不是必然的。举个极端的例子吧:
前提:4个硬盘组RAID 0,单盘性能:4k 200 IOPS/128k 100 IOPS,分别按照4k stripe size和 128k stripe size组成RAID 0
8K IOPS理论性能:4k stri ...
harleylg 发表于 2009-6-4 08:23
学习了 ,
另外 如果是家用型主板的ICH7R以上做RAID5 HDTUNE 持续测试的时候图形跟山谷一样 很可怕 何解?
ICH9R和ICH10R上 用2003 EE和2008 STD都做过测试 结果是差不多的 条带为128K
winddomain 发表于 2009-6-4 09:35
你以为每次访问文件都是从头访问到尾的(也就都是对齐的访问)?
你以为mft表里的内容也是全部对齐的?
你以为文件的附加权限控制也是对齐的?每个权限占一个簇?
你还是没有了解产生跨越的概率的问题,4k的stripe siz ...
bcyj 发表于 2009/6/4 12:00

恩,我的那个公式计算的确有问题,而且举的例子不对。
重新复习了一下,另外找了份评测的数据:
(来源:中关村在线,原文地址:http://memory.zol. ...
harleylg 发表于 2009-6-5 15:06
你第一步就错了,"按照512B对齐,Stripe Size=8K的时候有16种对齐方式,其中9种情况在1个硬盘上"
512B对齐,Stripe Size=8K,那其实就是把一个Stripe Size分成 16块,读取8K的数据,就是读取16块,
两个盘的话,就是在3 ...
bcyj 发表于 2009/6/5 16:10
8K Stripe Size,一共有16块512B,读取4K数据:
数据位置:1~8,2~9,3~10,……,9~16,一共9种情况在同一个盘上。10~17,11~18,……16~23,一共7种情况。MS我没有错吧?
harleylg 发表于 2009-6-5 16:15
1-16和17-32之间单盘读的机率是7/25,17-32和33-49之间单盘读的机率还是7/25
因为只可能发生一次跨越,明白不?
注意(7/(7+18))/2这个除以2
bcyj 发表于 2009/6/5 17:38
看了半天看不懂楼上两位在说什么。。。唉。。。。
其实我的问题很简单
我是dell p5i 的卡 512M缓存,,,两块富士通MAY的36G小硬盘
单盘寻道7ms,,持续55M
现在我用这两块硬盘做RAID0,做系统盘只装WIN ...
含笑半步癫 发表于 2009/6/5 18:07
我知道只能发生一次跨越,毕竟Stripe Size 8K,Data Size 4K,不可能发生两次跨越。
之所以发生跨越,是因为4K Data的起始位置可能在8K Stripe按照512B划分的16个块里面的任何一个位置,当起始位置处于9以后(不 ...
harleylg 发表于 2009-6-5 17:58
不过好像我的计算还是有问题,不能那么算……
还是那份数据,按照希捷7200.12,8K Stripe Size,4K IO响应……
应该是9种情况单盘:IOps=70.34×4=281.36 IOps,
7种情况双盘:IOps=70.34×4/2=140.68 IOps,
...
harleylg 发表于 2009/6/5 17:44
看了半天看不懂楼上两位在说什么。。。唉。。。。
其实我的问题很简单
我是dell p5i 的卡 512M缓存,,,两块富士通MAY的36G小硬盘
单盘寻道7ms,,持续55M
现在我用这两块硬盘做RAID0,做系统盘只装WIN ...
含笑半步癫 发表于 2009-6-5 18:07
现在有时间认真想了,这个机率的确是我错了,不过如果要精确算,还要算上带条的数目了,因为第一个和最后一个没有跨越,那公式改正为:
x为单盘iops,y为跨越的机率,现在计算的是双盘
x * 2 * (1-y) + x * y
bcyj 发表于 2009/6/5 18:34
按照这个计算方法,ST7200.12的四盘RAID0 IOps应该是
条带大小:8K_______32K_______128K______512K
1K 请求: 272.57____274.84____256.38____209.98
2K 请求: 254.98____270.51____255.37____209.77
4K ...
harleylg 发表于 2009-6-5 18:37
问题是条带大了之后,不管实际请求的IO是多少,每次物理IO都是最小按照条带大小请求的,而单个硬盘一般都是请求越大,IOps越低。
也就是说即使请求的是4K的数据,如果条带大小是128K的话,那么实际的IOps是按照 ...
harleylg 发表于 2009-6-5 19:01
不是这样的,不会按条带大小来放大请求的,放大请求的只有预读缓存才会,我现在用8888加两上x25-e,用1M的条带
如果是用条带大小来请求的话,就是4k的会变成1M来读,放大了256倍,那我的随机4k速度应该就只有持续的256分 ...
bcyj 发表于 2009/6/5 19:15
难道说Stripe不是RAID控制器的最小读写单位?还是说现在的RAID卡都有自适应读取了?
恩,我的4e/DC有可能开了总是预读,不过卡早出了,没法再试了。
不过如果小文件的随机IOps都是大条带胜出的话,小条带还有 ...
harleylg 发表于 2009-6-5 19:46
另外,现在用的x25-M和前阵子用的GSkill SSD,用板载RAID,跑PC Mark也是32k>64k>128k,这个又怎么解释呢?还是说就是因为小文件也分布的更碎,而且IO负担还未成为瓶颈,所以这时候小条带的性能更好?
harleylg 发表于 2009-6-5 19:50
只想说两点:
一、RAID0、5、6下面,不考虑存储系统带宽,盘越多,性能越好;
二、大量的小文件,用小的Strip Size,大文件就用大的Strip Szie,跟Oracle里面,OLTP用小的Block Size,OLAP用大的Block Size的道理是 ...
fly-fox 发表于 2009-6-9 21:03
| 欢迎光临 POPPUR爱换 (https://we.poppur.com/) | Powered by Discuz! X3.4 |