传统的机械硬盘往往是以数量取得更大的IO吞吐,但OS级别的条带尽量考虑存储级别的数据layout,尽量避免底层同一raid组内的磁盘争用,总之优化的原则就是os的数据可以很均衡的分布在存储pool中的磁盘上。另外现在有ssd用于fast cache,作为控制器ram的补充,再者就是传统的HDD盘混合SSD盘,最简单粗暴的就是全闪存阵列
收起很赞同楼上的分析角度,但个人有以下几点提示:
1、存储调优
增加存储缓存命中率要比无止境的扩展缓存好,毕竟缓存容量有限且成本非常高;
2、主机优化
增加LUN个数是为了条带化效果好,但实际上得和存储及应用条带化结合,过度的条带会带来性能的相反效果;童话死queue_depth也不是越大越好,合适的大小才能达到性能的最优;
3、数据库应该是增加并发,但并发带来的是热点数据,如何处理好热点数据才是重点
4、业务拆分,也是为了消除热点
收起随便提几点想法。
1. 存储设计。接触过几款IBM/EMC的高端存储,发现一个共同的特点,就是配置比较复杂。复杂的原因在于,控制器的负载分配,端口的流量均衡,物理盘阵列数据承载均衡,同时还要结合业务特点进行存储划分,久而久之就能感受到存储设计的个中艺术,所以,我觉得存储本身的设计的细致精巧程度和设计思想,是提高存储整体IO性能的一个重要方面。
2. 磁盘选型。光纤盘,SAS盘,各自都有性价比的考虑,按需选配,花合适的钱,做合适的事。
3. 容灾方式。同城容灾,采用同步方式,如果链路质量和容量跟不上,对于存储的写性能也是大打折扣的,所以有时候窄带传输技术,是否支持增量传输,是否必要做同步等考虑因素也会影响IO性能。
4. 操作系统的数据分层。虽然存储有底层条带化,但操作系统上的磁盘条带化仍然能够带来至少30%以上的性能提升,同时根据业务特点合理安排数据在存储上的分层分布,也是提高IO的好手段。
5. 定时分析性能数据,实时调整。监控端口压力,存储热点。
6. 特别热点数据上SSD,比如GPFS的metadata盘,部分热点日志数据,一点点改变带来的效果可能意想不到。
收起借助 IBM MicroLatency的超快响应速度,FlashSystem采用4个构建块最低延迟仅有200μs,IOPS高达2,520,000(15k HDD硬盘的IOPS最高是200,相当于12600块,是市场上同类闪存产品IOPS最高,采用闪存产品后会对对业务系统有数十倍速的性能提升
Throughput吞吐量是用来计算每秒在I/O流中传输的数据总量。广义上的Throughput吞吐量,也会被叫做“带宽”,用来衡量I/O流中的传输通道,比如2/4/8Gbps Fibre Channel、60Mbps SCSI等等。
衡量存储中的IO吞吐量指标包括存储真理中的磁盘的类型、磁盘的接口类型和速率、前端业务端口和后端业务端口的类型和速率、中间的传输网络带等,如果想提高存储的IO吞吐量量,也只能从这几个方面改变或是提高
首先是磁盘类型,包括SATA、 SAS、 FC、SDD等,每种类型的磁盘的吞吐量都是不一样的;
磁盘的接口类型,例如现在的SAS接口可以实现12Gbps
前端的业务端口,目前前端的业务端口包括ISCSI、FC、FCOE等,ISCSI实现1GB、而FC可以实现16GB、FCOE可以实现万兆传输带宽;
存储中间的网络也是非常关键是,可以是ISCSI或是FC链路,这个和存储的前端业务端口是相关的
收起我总结了一下一般传统提高IO吞吐的做法
场景 | 传统手段解决办法 | 闪存对比 |
1存储扩容 | 加扩展柜方式增加磁盘数量提高IO吞吐,随着IO吞吐逐渐增加效果提升有限 | |
2存储优化 | 抓取存储性能数据,分析数据特征及其热点数据,需要专业厂商人士进行合理重新RAID及其lun规划. | |
3 存储升级 | 存储升级能解决问题,代价是新购置设备,新采购成本较高需要数据迁移。旧设备不能更好的利旧 | |
4 优化应用 | 需要业务或者数据库人员进行代码级别优化,时间很长,不能立竿见影 |