POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 6628|回复: 69
打印 上一主题 下一主题

烦躁,网上说的没一个准的,烦了,设置成8k

[复制链接]
含笑半步癫 该用户已被删除
跳转到指定楼层
1#
发表于 2009-6-3 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
2#
发表于 2009-6-3 23:54 | 只看该作者
我也搞不懂了,都说设置成卡支持的最大条带好。我的3个maw,设置128kb持续居然只有80,和单快盘一样,设置成64持续有193
回复 支持 反对

使用道具 举报

3#
发表于 2009-6-4 00:37 | 只看该作者
噢噢噢?!!!
回复 支持 反对

使用道具 举报

4#
发表于 2009-6-4 00:49 | 只看该作者
进来学习下
回复 支持 反对

使用道具 举报

5#
发表于 2009-6-4 01:21 | 只看该作者
我也不太懂 直接设置成4K 用了好几年了 还没从做过系统
回复 支持 反对

使用道具 举报

6#
发表于 2009-6-4 03:10 | 只看该作者
不会有不良后果……
理论上来说,条带越小的话,CPU占用率越低,持续速率越小,随机速率越快……
不过很多时候跟盘/卡都有关系。所以最好还是自己各种设置测一下。普通应用做系统盘的话,建议用PC Mark来测,看硬盘分数,尤其是Windows启动/应用程序载入/游戏载入三项的成绩。
回复 支持 反对

使用道具 举报

7#
发表于 2009-6-4 03:23 | 只看该作者
不会有不良后果……
理论上来说,条带越小的话,CPU占用率越低,持续速率越小,随机速率越快……
不过很多时候跟盘/卡都有关系。所以最好还是自己各种设置测一下。普通应用做系统盘的话,建议用PC Mark来测,看硬盘 ...
harleylg 发表于 2009-6-4 03:10

你说的完全相反了。。
没缓存、缓存小、没开预读的卡在大条带下持续低主要是这样一个情况,例如条带大小为64K,我现在要按64k对齐的每次读取64k,那就变成了先读一个盘,再读另一个盘,没有发生同时读取了。
但是有缓存的预读可以消除这种情况
在目前的卡来说最优性能基本可以按这样来算(去尾,如得70K就取64K):
条带大小=缓存/1024/盘数,如 512M/1024/2 = 256k
回复 支持 反对

使用道具 举报

8#
发表于 2009-6-4 03:29 | 只看该作者
上面说的是r0的,如果是r5 r6,就要看卡的运算能力和条带长度来做个平衡,缓存大小倒不是重点了
回复 支持 反对

使用道具 举报

9#
发表于 2009-6-4 05:50 | 只看该作者
你说的完全相反了。。
没缓存、缓存小、没开预读的卡在大条带下持续低主要是这样一个情况,例如条带大小为64K,我现在要按64k对齐的每次读取64k,那就变成了先读一个盘,再读另一个盘,没有发生同时读取了。
但是有 ...
bcyj 发表于 2009/6/4 03:23


我是说反了,正确应该是“条带越小的话,CPU占用率越,持续速率越小,随机速率越快”,严格点来说不应该说随机速率越快,而应该说随机IOPS越高。

不过你的说法也有问题,即使无缓存,大条带下持续地的原因一般是测试软件的问题(如果卡/盘/操作系统没有问题的话),很多时候换个软件测试结果就正常了,或者直接硬盘复制数据的时候速度也是正常的。既然是持续了,就不存在你说的“按64K对齐的每次读取”了。

一般的说法,有缓存的情况,相当于把多次的磁盘读写合并了,因此理论上是条带越大性能越好。不过问题是缓存有一个命中率的问题,对于系统盘来说,大量的随机小文件读写操作,要能命中真的很难。写还好一点,读是完全没办法的。考虑到NTFS默认的簇大小是4K,因此理论上系统卷的条带大小最理想应该是4K/盘数,这样可以保证任何一个IO操作都能分布到所有磁盘上。不过问题又回来了,这样一碰到大文件的读写时,性能又下来了,毕竟系统盘也并不是只有小文件。因此一般的说法是系统盘16K~64K,数据盘(非数据库)越大越好(毕竟现在很少文件小于1M了,就算有,这种文件的性能一般也不太需要性能,除非是网站的网页,那个归到系统盘环境去)。但比较严谨的说法,都是说到底需要多大的条带,取决于实际应用的测试结果,这也是为什么RAID卡厂商提供多种选择的原因,否则如果能肯定说越大越好/越小越好,又或者有标准计算公式的话,直接在RAID卡上写死就好了。

至于你说的缓存大小/1024/盘数的说法,恕我见识少,从来没有听说过……
回复 支持 反对

使用道具 举报

10#
发表于 2009-6-4 06:08 | 只看该作者
我是说反了,正确应该是“条带越小的话,CPU占用率越高,持续速率越小,随机速率越快”,严格点来说不应该说随机速率越快,而应该说随机IOPS越高。

不过你的说法也有问题,即使无缓存,大条带下持续地的原因一 ...
harleylg 发表于 2009-6-4 05:50

你还是错了,IOPS也是小条带的低,在同样的盘之下,要提高iops,就是尽量让一次读取只经过一个盘,关于这个概率,请看这个帖子,我就不再写一次了http://we.pcinlife.com/thread-1148525-1-1.html
关于持续,这是软件实现问题
for(;;)
{
读取64k;
}
明白不?
回复 支持 反对

使用道具 举报

11#
发表于 2009-6-4 06:14 | 只看该作者
无图无真相,建议lz把不同条带下的测试图发出来大家讨论。
回复 支持 反对

使用道具 举报

12#
发表于 2009-6-4 06:30 | 只看该作者
本帖最后由 bcyj 于 2009-6-4 06:33 编辑

预读缓存也基本不存在命中率的问题,因为这里不是CPU,没有条件跳转,不存在分支预测
卡做的预读就是在资源空闲时预读这次访问的下个块,本来就对随机读写没效,也就是只影响持续
关于你的“条带越小的话,CPU占用率越高,持续速率越小,随机速率越快”应该是“条带越小的话,CPU占用率越高,持续速率越大,随机速率不变,并发IO数越少”
回复 支持 反对

使用道具 举报

13#
发表于 2009-6-4 06:52 | 只看该作者
你还是错了,IOPS也是小条带的低,在同样的盘之下,要提高iops,就是尽量让一次读取只经过一个盘,关于这个概率,请看这个帖子,我就不再写一次了http://we.pcinlife.com/thread-1148525-1-1.html
bcyj 发表于 2009/6/4 06:08


我说的跟你那个帖子说的没有矛盾,我并不是说所有情况下都是小条带下IOPS高,我是说小条带的"随机IOPS"高……这个差很远的好不好?

至于你举的这个循环的例子,我只能说如果你是这样写的程序,操作系统并不一定就真的64K,64K这样去读取,很有可能:1、操作系统读取了1M,然后逐次给你64K的数据;2、操作系统每次读取4K,读取16次之后才给你返回。
回复 支持 反对

使用道具 举报

14#
发表于 2009-6-4 06:59 | 只看该作者
预读缓存也基本不存在命中率的问题,因为这里不是CPU,没有条件跳转,不存在分支预测
卡做的预读就是在资源空闲时预读这次访问的下个块,本来就对随机读写没效,也就是只影响持续
bcyj 发表于 2009/6/4 06:30


既然是缓存就一定有命中问题,即使不同于CPU的分支预测,RAID卡也有自己的缓存算法,不过就是最简单的顺序预测而已。但即使这样,因为往往同时不止一个IO产生,根据哪个IO去预读,预读多少块,也是有算法的。也不见得随机的时候就一定预读不中。
回复 支持 反对

使用道具 举报

15#
发表于 2009-6-4 07:06 | 只看该作者
我说的跟你那个帖子说的没有矛盾,我并不是说所有情况下都是小条带下IOPS高,我是说小条带的"随机IOPS"高……这个差很远的好不好?

至于你举的这个循环的例子,我只能说如果你是这样写的程序,操作系统并不一 ...
harleylg 发表于 2009-6-4 06:52

iops本来就是随机的,每个盘的iops都是相应固定的,所以理论上最高iops就是单盘的iops x 盘数,那么raid时要尽量靠近理论上的最高iops的方法,就是尽量让每次的io请求只由一个单独的盘去响应.条带越小,一次io请求由多盘响应的机会越大,iops越低(越接近单盘的iops)
关于例子,这只是一个例子,这里说的其实就是一个io请求的数据量,而不是上层的api
回复 支持 反对

使用道具 举报

16#
发表于 2009-6-4 07:09 | 只看该作者
既然是缓存就一定有命中问题,即使不同于CPU的分支预测,RAID卡也有自己的缓存算法,不过就是最简单的顺序预测而已。但即使这样,因为往往同时不止一个IO产生,根据哪个IO去预读,预读多少块,也是有算法的。也不 ...
harleylg 发表于 2009-6-4 06:59

不存在随机访问时命不命中的问题,因为根本没为随机访问去预读...
多并发io时,就是我上面说的"资源"
回复 支持 反对

使用道具 举报

17#
发表于 2009-6-4 07:56 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

18#
发表于 2009-6-4 08:23 | 只看该作者
本帖最后由 harleylg 于 2009-6-4 08:25 编辑
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 stripe raid0: 200×4/2=400 IOPS,128k stripe RAID0:100*4/((128+15/2)/128)=378 IOPS

另外,在响应大文件IO的时候,其实小条带也并不会太吃亏,上面的例子里面,4k stripe raid0例子里面,4k是最小操作块大小,并不是最大操作块大小,如果响应一个读取8M的请求,RAID卡不会给每个物理硬盘8096/4/4=506个4k的IO请求,而是和128k stripe raid0一样,都是每个硬盘1个8096/4=2048k的IO请求。因为RAID卡本身有IO合并/分发的功能。

当然,如果都是128k的请求,128k stripe raid0肯定是完胜的。至于64k/32k,那还要看硬盘本身的16k/8k IOPS的性能,计算下来才知道。

另外,举的这个例子比较极端,到底应该大条带还是小条带,还是要看实际应用到底什么样的IO多一点。

最后,随机应用里面,也肯定有一定量的持续的,这种时候往往也会命中的。
回复 支持 反对

使用道具 举报

含笑半步癫 该用户已被删除
19#
 楼主| 发表于 2009-6-4 09:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

20#
发表于 2009-6-4 09:35 | 只看该作者
学习了 ,
另外 如果是家用型主板的ICH7R以上做RAID5 HDTUNE 持续测试的时候图形跟山谷一样 很可怕 何解?

ICH9R和ICH10R上 用2003 EE和2008 STD都做过测试 结果是差不多的 条带为128K
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-9-3 07:51

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表