提高整个系统的IO,我们可以从整个数据流向来进行提高。
一、数据源:
提高存储性能,如使用闪存。
二、传输链路
使用高传输速率的光模块,使用高性能的光交。
使用高性能的HBA卡,HBA模块等等。
三、提高接受者性能。
提高服务器性能,加大服务器或主机端的内存等系统资源。
四、提高软件对数据接受的能力。
优化数据处理队列技术,优化数据处理算法等。
其它。
收起其实就IO来讲,包括应用节点的IO,数据库节点的IO以及存储本身的IO。如果从业务角度来分析读写的话,那么应该从前到后一串对象都要去做相应的监控以及分析,确定究竟是哪个层面上的瓶颈之后,才好有针对性去解决问题。
如果说现在瓶颈卡在存储设备本身的IO能力上,那么
首先,判断目前的IO参数是否已经达到存储设备本身的产品极限,如果已经达到或者超过,那么不用想别的了。直接根据产品技术规格及产品要求购买新的存储设备。或者采用新的存储架构,比如说存储虚拟化技术,分布式存储技术、闪存技术、Fast技术等。往往新一代的或者高端的存储会伴随硬件设备以及存储内部架构的变更,从而带来存储技术参数的质变。
如果,IO参数远远没有达到存储设备本身的产品规格。接下来需要做的事情就是对于存储设备本身的判断。首先判断有没有非健康状态的硬件模块?如果硬件模块一切正常,包括链路、缓存、硬盘、接口SFP等都没有问题。那么判断你的存储软件层面的配置,包括存储设备上配置的所有逻辑对象是否合理?包括磁盘的划分、Raid的信息、快慢盘的搭配、Fast机制的合理等等。如果着一切都正常,那么接下来观察一下你的数据写入分布特点,是否有集中扎堆儿的现象,若果有,那么分析业务层面的逻辑是否合理?
收起个人认为,单纯提高存储的IO可以从两个层面去考虑:
1. 提高存储内部的数据交换效率。比如采用读写效率比较高的RAID10,比如优化RAID组中成员磁盘的组成,比如采用数据分层管理技术,比如增加存储控制器中的高速缓存,提高数据命中率等等。
2. 提高存储外部的数据交换效率。也就是提高服务器与存储之间的数据交换效率。方法基本上可以聚焦到提高数据链路的带宽和交换速率,比如,提高服务器HBA卡、交换设备和存储前端模块的速率;再比如,在服务器端安装多路径负载均衡软件等等。
比较片面,仅供参考
收起