矫正偏移量
另外有一个很关键的问题就是偏移量(Alignment),偏移量基本上产生在WINDOWS平台,或者Wintel架构中。因为在WINDOWS平台里面,每个磁盘都留有一部分空间用来存放分区表,系统在启动的时候会有很多的信息在里面,一般为32K。由于我们知道一个盘片的基本容量在64K,那么这个盘片还有32K的可用空间。当一个大于32K的写IO过来的时候,这时候就需要2个磁盘或者更多的磁盘来完成这个IO操作,这就是偏移量。
偏移量对系统的整体性能有非常大的影响,那么我们通过什么方式能够调整呢?对于wintel的架构,我们可以通过diskpar工具来设定偏移量,例如将数据块大小设为64K,这样写操作的时候,数据将自动从第二块磁盘去写入。在虚拟机的环境下,如果是RDM的LUN环境,我们可以在虚拟机层面使用diskpar工具工具设定偏移量,如果是VMFS的LUN环境,我们需要先在ESX上使用FDISK,然后在虚拟机层面使用diskpar工具工具设定偏移量。
偏移量是个很重要的问题,但很多用户会很容易忽视它。我们举个例子来说明,在没有矫正偏移量的情况下,系统性能会损失多少。一般来说,最常用的数据块大小除以64,就是我们损失的性能比。如果常用数据块为8K,那么损失的性能为8/64=12.5%。
Oracle ASM环境下性能调优
对于Oracle ASM的环境,一般来说是大数据块的随机写入。如果我们对系统进行优化,通常会自动的把数据拆分成小数据块,例如8K、16K,对于这些小数据块来说主要是顺序读写,尽管整个大的数据块保持了随机读写的特性。在这种环境下,我们需要注意:
无论对于R26以前或者以后的版本,首先每一个RAID组设置1 或2 LUNs。
对于R26以前版本
– RAID 1/0 条带化成256 blocks时性能较好(需要在命令行或工程模式下进行)
– 2+2, 4+4 的条带吻合I/O 块大小
– 对齐偏移量! 比小数据块的随机访问环境更关键
– 把数据LUN的读高速缓存关掉-- 基本用不上
在Release 26及更高版本, CLARiiON支持‘multi-stripe read’
– RAID 1/0 2+2 的配置比较合适,可以让磁盘支持大的数据块读操作(高达512 KB).
– 使用条带化的MetaLUN, 8的倍数来获得更大的分区和分散热点数据
– 支持发送1MB的I/O到成员LUN上, 每个磁盘的处理I/O高达512 KB。