存储:
存储的几个主要指标是IOPS、带宽与响应时间。
IOPS:
指的是系统在单位时间内能处理的最大IO频度,一般是指单位时间内能完成的随机小IO个数。
带宽(throuput):
有的时候也较吞吐量,指的是单位时间按内最大的IO流量。往往是采用大的IO块、大的带宽获得的最大流量。
这几个指标即相互独立有相互关联。一般来说,当涉及更多的频繁读写时(OLTP),更多的考虑IOPS与响应时间;
而一些大量的顺序文件访问,例如数据仓库应用(OLAP),流媒体,更多的考虑带宽指标。
响应时间:
单IO的响应时间指的是一个IO请求从开始到结束的时间,它往往与cache大小以及命中率有很大关系。
决定IOPS的因素有如下几个:
磁盘个数:
首先看磁盘个数,这个是决定存储IOPS的最关键因素,因为每个磁盘的最大IOPS个数是有限制的。
目前的情况是:
FC硬盘(光通道硬盘)速率>SATA硬盘速率
15K转速FC硬盘>10K转速硬盘
举个例子:
如果一个磁盘阵列有120块 15K rpm的光纤硬盘,他能支撑的磁盘IOPS为 120×150=18000,基本达到硬件限制的理论值。
cache命中率:
cache 如果命中,一个查询可能只需要 1-2ms就可以返回,而磁盘读取,就可能需要
5-10ms;如果读操作特别多,可能需要更高。cache读操作速度是磁盘读操作速度的5倍以上。
一般情况下,cache越大,命中率也越高,当然命中率也和应用,数据库设计也有关。
好的应用设计可以大大的提高cache命中率。
因为读 cache 采用类似 LRU的算法设计,对于比较典型的OLTP环境是比较合适的,而在数据仓库应用(OLAP)
或者类似文件流的系统中,因为读cache很不容易命中,所以作用不是很大。
阵列的算法:
阵列算法有 cache算法、寻道算法、预读算法等,它们对IOPS与cache命中率也有直接间接的影响,
阵列不一样,算法也不一样。
cache命中:
如果数据在内存中(磁盘阵列的内存),则可以直接从内存中获得,这个称为cache命中。
关于cache,有几个要注意的地方:
一般在生产系统中都要打开cache mirror这个功能,如果一个节点失败,另一个节点的 cache mirror镜像的存在能保证不丢失数据,
把cache 数据写回磁盘。
cache读和cache 写:
对于raid 5 格式的磁盘阵列来说, cache尤其重要,数据可以先写到cache中,再由磁盘阵列写回到硬盘上去。
否则,直接写到磁盘阵列的硬盘上,由于raid 5还要读写额外的校验信息,比 raid 10 需要更多的io。
关于RAID:
建议对OLTP数据库,采用RAID 10而不是 RAID5.
原因前面也说了,因为一个读写,同样的情况下,RAID5 需要的 io比 RAID10 更多.
存储的第二个重要指标 带宽
吞吐量主要取决于硬盘的个数、光纤通道的数量和带宽、阵列的构架。
与IOPS一样,每个硬盘也有自己最大能支持的流量大小,硬盘类型与最大流量的关系是
15kRPM光纤硬盘>10KRPM光纤硬盘>SATA光纤硬盘
比如说,假设一个阵列有120块,15K rpm 的光纤硬盘,那么硬盘上最大可以支撑的流量是
120*13=1650MB/s
除了硬盘,就要考虑光纤通道了,
如数据仓库环境(OLAP)中,如果1块2Gb的光纤卡,所能支持的最大流量是 2Gb/8=250MB/s的实际流量。
需要4块才能达到 1GB/s的实际流量,所以数据仓库可以考虑用 4Gb的光纤卡。
最后,阵列的构架因每个阵列的不同而不同,它们也都存在内部带宽,(类似PC的总线),不过一般情况下,
内部带宽都设计的很充足,不是瓶颈所在。
存储的第三个重要指标 响应时间
除了IOPS与吞吐量,另一个重要指标就是 单IO的响应时间,单IO的响应时间与IOPS的当前值、吞吐量大小以及
cache 命中率都有很大的关系。
经验值表示,一个IO的响应时间在20ms以内,应用基本可以正常工作,作为一个核心的高可用OLTP环境,
最佳的单IO响应时间建议在10ms以内。
总结存储的选型:
如果应用是一个大型的交易系统,也就是典型的OLTP环境,其中以事务与小的查询语句多,基本是离散读与
离散写,首先考虑IOPS因素,并配置合适的硬盘个数和Cache 大小。
如果应用数数据仓库环境,或者是典型的OLAP环境,其中主要运行大型的SQL语句,需要大吞吐量,读写规则
基本上是连续读和连续写,则需要考虑存储系统带宽与 存储大的光纤通道带宽之和,并配置适当的硬盘个数,
这与CACHE大小关系不大。
存储的测试方法与测试软件
LOAD RUNNER:
ORION:
推荐使用ORION,可以用它来模拟ORACLE的运行,并获得极限压力情况下的压力数据,包括IOPS,带宽与IO响应时间。
个人对目前存储主流的选型考虑:
1.成本预算问题。一般来说,级别越高,成本也越高,处于成本的考虑,采用中低端存储成为大多数用户的选择。
2.响应速度与可靠性的问题,中端存储就可能提供高速的响应速度,在相同的磁盘数量的情况下不会和高端
存储相差多远(高端存储扩展能力更强),但是可靠性方面确要差很多,所以,如果可靠性要求非常高的系统,
可以考虑用高端存储。
3.存储的评估指标。存储的主要测评指标是IOPS、带宽、与响应时间。然后,需要根据自己的业务类型,是偏重于
IOPS的OLTP环境,还是偏重于带宽的OLAP系统。如果有了这些信息,就可以根据自己的需求,多选择几个合适
于自己的存储产品,分别去做测试。
测试是非常重要的,存储厂商一般都会配合完成这些测试,而且测试的时候,最好不要依靠存储厂商的测试软件,
要模拟自己的真正应用,做最真实的模拟测试。另外,不同的存储厂商之间,硬件环境与测试指标要完全一样,
这样才有对比。
另外,不要轻易相信厂商的数据与指标,更不要相信他们广告式的宣传。他们的指标是在适合他们的环境下测试得到的,
如IOPS,可能全部是在存储cache命中的基础上得到的,而对于用户业务环境,这样的情况不可能发生。
随着小型机的飞速发展,很多大/中型机器上的技术已经移植到小型机上,所以,大型机与小型机的区别已经不像以前那么明显,一般只是沿用以前的叫法。
在机器处理能力上,高端的PC SERVER可能比低端的小型机更快,高端的小型机,也可能比部分大/中型机更具有快速处理能力与优越的性价比。可靠性方面,小型机具有接近大/中型机的可靠性,PC Server在这里是无法比较的。
小型机不仅具有高速的事物处理能力,也具有高效的稳定性,比较适合高可用的OLTP数据库业务。在评测机器的具体处理能力,也就是性能指标方面,现在又了很多种方法,如TPC-C是一种行业标准测试项目,旨在衡量联机事物处理(OLTP)的系统性能与可伸缩性的。这种基准测试项目将对包括查询、更新及队列式小批量事务在内的数据库功能进行测试。许多IT专业人员将TPC-C视为衡量“真实”OLTP系统性能的有效指示器。
主流小型机对比:
IBM小型机系列:
IBM 小型机系列现在基本是 I系列与P系列,从Power5开始,I与P其实是统一的硬件体系,只是
OS许可(以及微码)不一样而已。在P系列,从POWER3发展到现在的Power6,IBM以强劲的CPU处理能力,发展了众多的型号。如完整的Power5系列中,有从P505开始到P595结束的一系列机器,在P595中,最多可以支持到2TB的内存与64颗强劲的64位power5+的处理器内核(CORE).最近推出的POWER6,可以到到4.7GHZ的主频,并支持更复杂的计算模式,例如十进制运算。另外,从Power6与AIX6开始支持更多的虚拟化功能,例如可以把工作负载从一个服务器转到另一个服务器,而且不会使应用发生任何中断.
HP小型机系列:
由于HP和COMPAQ合并了,所以HP服务器的产品线显得有些复杂,即有HP本身的服务器系列,也有Compaq服务器系列.另外,因为采用了Inter 的安腾CPU,小型机方面主要分为两个系列,一是采用Inter Itanium2的RX系列,以及采用Pa-risc的Rp系列.在Rx系列,有采用Intel Itanium2的RX1620到高性能的Superdome服务器.在Rp系列,也有从Rp3410到Superdome的众多服务器.
比如Superdome 服务器,就有2TB的内存和192个IO插槽,可以扩展到64路/128颗处理器内核(Core),也就是最多可以采用128颗PA-8800/8900或者是Itanium 2的CPU,是HP的高端小型机。
SUN小型机系列:
SUN的主机的市场占有率不如IBM与HP那样高,原来的主要型号有采用 UltraSparc 3构架的V系列到采用UtralSPARC 4(+)的E系列,例如 Sun Fire V100到E20K与Sun Fire E25K服务器,E20K最多36个UltralSparc 4+双线程处理器,而E25K可达72个 UltralSparc 4双线程处理器。
SUN在最新产品中,开发了6款基于SPARC架构、运行Solaris 10开源操作系统的主机。其中 SPARC Enterprise T1000与SPARC Enterprise T2000两款服务器基于UltralSPARC T1处理器;
数据中心等级的SPARC Enterprise M9000与SPARC Enterprise M8000,以及中端款式的SPARC Enterprise M5000/Enterprise M4000 两类产品,均采用SPARC 64-4处理器。例如 M9000最多可以达到2TB 内存与64颗 CPU,128个核心(Core)
注:
不同的厂家,在处理器(processor,也叫CPU)的概念上出现了差异,在IBM与INTEL,AMD的CPU中,一般一个核心(CORE)对应一个处理器,就是通常叫的CPU,而在SUN CMT技术的CPU中,一个硬件芯片,可能存在多个(CORE),但是它们只叫一个处理器(CPU).
小型机的技术:
几大关键技术
1、多核技术与CMT技术
2、SMT技术
3、虚拟化与分区技术
4、高RAS特性
1、多核技术
多核技术可以看成是一种CPU的集成技术,在一个CPU处理模块(芯片)上,也就是以前的一个CPU空间大小上,可以集成一个或多个Core。一般情况下,因为一个Core就具有一个单独处理能力与运行能力,也具有单独的CACHE,所以,在IBM/INTEL/AMD等CPU生产厂家,都是把一个Core当成一个CPU。
而在SUN那里,这个技术被称为CMT技术,虽然一个CPU处理模块(芯片)上集成多个Core,但是,却把每个CPU处理模块(芯片)才叫一个CPU。这个技术解决了,单位单个CPU主频上不去,但是单位面积内的CPU芯片大小不变,确具有更强大处理能力的问题。(注意,ORACLE的收费方式不是按物理的CPU来购买LICENSE,而是按实际的Core来收费)
2、SMT技术
如果说多核技术一般指CPU的高集成度,而并发多线程技术(SMT Symmetic Muti-Threading)则是指
单一物理处理器同时分发来自多与一个硬件线程上下文的指令,在特定的OS与特定的技术条件下,可以虚化为两个逻辑的CPU。
如IBM的很一个物理的POWER5 CPU,也就是一个CORE,在OS层面(AIX 5.3以上),将显示为两颗逻辑的CPU。
这种技术与硬件构架以及OS都是有关系的,如SMT只有POWER5才支持,而且也要特定的OS,如AIX5.3才支持。也就是说,POWER5上跑AIX5.2,都是不支持这样的技术的。
在这样的技术中,每个POWER5 CPU有两个硬件线程,SMT旨在利用POWER5处理器的超标量特性,以便同时执行多个指令。
它的基本理念是:没有一个单一应用可使像POWER5这样的超标量处理器达到完全饱和的状态,因此,部署同时提供输入的多个应用效果更理想。
按照这样的设想,SMT技术将在细小的OLTP应用中受益,例如高可用的OLTP数据库环境。
而大型的计算业务,例如浮点密集型的工作(耗费单个CPU很长时间,对浮点单元与内存带宽消耗比较大),是不适合使用SMT技术的。
当然,可以在OS级别决定是否打开SMT技术,这主要取决于这个技术是否为我们带来好处,单AIX 5.3默认就是打开SMT的。
3、虚拟化技术与分区技术
虚拟化是一个抽象层,他将物理硬件与操作系统分开,从而提供更高的IT资源利用率和灵活性。分区技术是虚拟化技术的一个重要体现,目前常用的分区虚拟化技术是---主机之下,硬件之上的虚拟化:
主机之下,硬件之上的虚拟化:
例如HP的电路板方式的硬分区,IBM的静态与动态分区(LPAR).在同一个物理主机上,可以把硬件
隔离成几个部分,每个部分运行不同的OS并且互相没有影响。更高级的主机内部虚拟化,例如动态
逻辑分区,可以实现资源在不同的分区之间的动态迁移。
4、高RAS特性
小型机与普通的服务器,也就是常说的PC-SERVER是有很大差别的,最重要的一点是小型机的
高RAS(高可靠性、高可用性、高服务型)特性,以前这是大型机的特性,现在也开始在小型机上实现了。
RAS=RELIABILITY+AVAILABILIT+SERVICEABLITY,它反映了计算机的高可靠性、高可用性、高服务型
三个特点。
具体的含义如下:
高可靠性,即计算机能够不停机的持续运转
高可用性,即重要资源都有备份,能够检测到潜在的问题,并且能够将正在运行的服务转移到其他资源上去,以减少停机时间,保持生产的持续运转;具有实时在线维护和延迟性维护功能。
高服务性,既能够实时在线诊断,精确定位出问题根本问题所在,做到准确无误的快速修复。
一般小型机都有自我配置、自我诊断、自我优化、自我保护的技术。有些小型机通过上万个故障
检测点,帮助用户定位错误根源.
关于小机和存储的关系设计的几个意见:
1.lv 的划分尽量跨RAID组。而不要在一个RAID组内做,这样可以更大的提高磁盘读写效率。
2.尽量不要使用普通文件系统方式来存储ORACLE数据库的数据文件,在大的IO系统上,特别是高可用
的OLTP环境上,采用裸设备可以大大提高数据库的性能,并保持性能持续稳定。
理由如下:
直接写设备文件,不通过OS级别的缓存,节约了内存使用。
提升了高强度IO写的速度,对于频繁读写的系统来说,裸设备可以提高读写的性能。
采用裸设备避免了文件系统的开销,比如维护I-node,空闲块,超级块等。
裸设备的异步io/并行io管理一般在内核级别上完成,比文件系统优越。
裸设备相对文件系统,有更少的BUG,而且更稳定。
如果觉得《小机 数据库 存储选型应该注意的几个事项(摘自ORACLE高可用环境-陈吉平)》对你有帮助,请点赞、收藏,并留下你的观点哦!