我试图了解块大小和条纹大小。 我意识到这可能适用于比RAID5更多的configuration,但是我特别感兴趣的是RAID5,因为我想了解块大小和条带大小之间的关系,以及会导致性能下降的原因以及为什么会导致性能问题…
到目前为止,我的理解是,条带大小将是属于条带的磁盘上的每个“列”(驱动器?)上的空间量(基本上是通过驱动器具有相同空间量的行
因此,如果条带大小等于块大小,假设两者都是64kb,那么当我运行一个来自SQL服务器的写操作时,会发生什么情况呢?
在每个64kb写入之后是否会计算奇偶校验?
条纹通常比块更大。 如果它大得多,这是否会影响性能?
这里是一个例子:我configuration了HParrays – RAID5。 逻辑驱动器上的块大小为512字节,Windows单元分配大小为4KB,条带大小为256KB我处于高写入环境,逻辑驱动器加速为控制器高速caching,已启用并设置为100% / 0%(读/写)在性能方面我应该期待什么? 这与512字节块大小和256 KB带大小之间的关系有什么关系?
看,你在这里犯错….
可以说这两个都是64kb,当我运行一个只有几个字节的驱动器上的一个完整的写操作会发生什么(可能是一个大型的sql服务器数据库)
这不可能。
除了NTFS实际上具有4kb或更多的块的事实 – 并强烈build议将其设置为64kb的SQL Server。
SQL Serverpipe理8kb页面,并总是读取/写入8页作为范围 – 64kb。
http://msdn.microsoft.com/en-us/library/ms190969(v=sql.105).aspx
因此,对于SQL Server而言,不存在诸如写入几个字节之类的事情。 它会写出64kb。
因此,对于SQ LServer,build议使用一个64kb的NTFS节点大小(因此扩展不会导致拆分IO),显然是一个64kb Raid strize大小的乘法(因为SQL Server的企业版喜欢阅读前面的exteds)。
对于其他元素,事情是相似的 – 不是SQL Server …它取决于程序员的智能和特定软件的访问模式。