影响OLTP 系统性能的存储因素解析
OLTP 系统每笔交易数据量小,并发数高,对存储子系统有比较高的要求,特别是存储的IOPS能力。
总结下影响OLTP 系统性能的存储因素。
按重要性可从大到下排列
1 存储架构的选择 不同的存储架构影响上有所不同,对于数据库应用一般来说 FC-SAN>DAS>NAS。
FC-SAN架构上性能最快。NAS是文件级别共享,不大适合数据库这种BLOCK级的应用。
2 磁盘整列的选择
高端磁阵>中端磁阵>低端磁阵
高端磁阵是多控制器结构,如IBMDS8000系列(8100、8300),HDS的9970、9980/USP100、600、1100系列,EMC的DMX3,DMX4。
中端磁阵是双控制器结构,如IBM的DS4000/6000系列,HP的EVA系列EVA4000/6000/8000,EMC的CX300/CX500/CX700等等
低端磁阵单控制结构使用比较少。
注意观察磁盘阵列的CACH,IOPS,带宽,主机接口的类型 等参数
这些都影响阵列的性能。
HDS提供的双控制器负载均衡技术也能提高性能。
3 硬盘接口技术的选择
有个大致的顺序如下
SSD>SAS>SCSI3 over FC>SCSI>SATA>IDE
当然这个顺序不是绝对的,带宽范围往往有些重叠。
参考http://news.watchstor.com/news-24413.htm
4 选择不同的RAID方式
对于OLTP RAID 10比较合适,对OLAP RAID5比较合适。
RAID,实现了对多个磁盘的同时读写,所以速度比单个磁盘访问要快。
硬盘的个数也影响OLTP的性能,硬盘的IOPS由于转速不同,所支持的最大理论IOPS是有限制的。
5 数据文件的分布方式,尽量将热点分散
划分了RAID组,可在每个RAID组上划分LUN,一般建议OLTP系统每个LUN不超过50G。
下面有两种方法(参考piner)
a然后把不同RAID组内的LUN组成一个VG,然后再在这个VG上创建LV,创建的LV时同时在OS层面做软条带。也就是所有文件都条带在RAID组上。
b配置多个LUN,将访问特征不同的数据文件放在不同的LUN。比如以离散读写的数据库文件放一个LUN,连续写的文件放一个LUN;充分利用双控制器的冗余通道,使用ACTIVE-ACTIVE方式 可充分利用磁阵的CACH。
6 选用不同的文件系统或裸设备。
比如使用IBM的CIO文件等等,不过这些文件系统的性能差别不大,不能抱太大希望。裸设备虽然比文件系统快,但维护不大方便,用得比较少。
7 不同高可用技术选择也会影响到性能
如双机热备,双机互备,双机双工(群集)
对磁盘阵列不同的访问方式也会有很大的影响。
特别是在群集模式下,访问磁盘整列的主机如太多,磁盘阵列的性能会下降很快。