作者将本文同时发布到:EMC中文支持论坛 https://community.emc.com/docs/DOC-27020

介绍

 

存储阵列上LUN响应时间快慢是一个重要性能指标,对于OLTP数据库这类的重要应用影响非常大。造成存储阵列上LUN响应时间慢的原因很多,本文将介绍在磁盘负载轻的情况下,如何解决VNX存储阵列上LUN响应时间慢的方法。

 

更多信息

 

 

响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。

 

 

响应时间是通过I/O队列长度除以吞吐量计算而来。当吞吐量非常低时(通常低于100IOPS),存储阵列记录的响应时间也会很慢。因此,我们需要通过如下二种方法判断LUN响应时间慢是否为真正问题:

 

1、存储阵列LUN响应时间慢,同时主机性能监控也发现同一LUN的响应时间也非常慢。这时可以通过检查相同RAID组或存储池上其它LUN在相同时间的响应速度来做进一步判断。

2、第二种方法是比较主机上的响应时间图(如:Windows任务管理器或perfmon工具相关记录)和存储阵列Unisphere Analyzer上LUN响应时间。如果主机与存储阵列的LUN响应时间峰值发生在同一时间点,我们则认为这个LUN响应时间确实很慢。否则,就是可以被忽略的异常。

 

 

 

引发存储阵列LUN响应时间慢有多种原因,以下几种可以通过收集NAR或NAZ文件很容易发现:

 

·强制flushing写缓存

上述问题可以参考EMC知识文库186107。

 

·SP使用率高

上述问题可以参考EMC知识文库207795。

 

·RAID组和存储池中磁盘使用率高

上述问题可以参考EMC知识文库199493。

 

·FAST Cache磁盘使用率高

上述问题可以参考EMC知识文库251589。

 

·SP端口I/O队列满

上述问题可以参考EMC知识文库204523。

 

以上问题通过收集 NAR或NAZ文件都能够很容易发现(相关信息见EMC知识文库284523)。

 

 

 

当然,VNX存储阵列也存在下列几种比较难诊断的LUN响应时间慢的问题:

 

·读或写饥饿

通常这种情况是因为前端端口拥塞了一些非常大的I / O,造成其它LUN的I/O受阻无法传输。解决方法是将发送非常大块读写数据的主机迁移到其它前端端口,EMC知识文库322545提供了详细的解决方案。

 

 

·短时间内I/O数据突然爆发

通常这种情况是因为一些主机或应用程序在很短的时间内突然发送大量的I/O数据,然后又恢复到正常的I/ O数据量水平。由于存储整列都是通过轮询间隔采样来计算响应时间,因此这些短时间的I/O数据量突然爆发很难被侦测。当LUN的ABQL(平均忙队列长度)值很高时,可能也存在这种情况。

 

解决方法:通过将主机负载平均分配到更多的LUN可以帮助吸收大量I/O数据突然爆发。某些应用程序可以分担I/O数据到多个LUN上,或者对主机的文件系统进行条带处理。以上方法中并行使用的LUN不要使用相同磁盘,以避免链路资源紧张(相关信息见EMC知识文库188729)。 HBA队列的长度也可以进行调整,以防止主机一次发送过多I/O数据(相关信息见EMC知识文库204523)。

 

 

·SCSI预留冲突。

通常这种情况是因为多个存储组的LUN拥有不一致HLU,上述问题可以参考EMC知识文库159749。

 

 

·iSCSI连通性的问题

上述问题可以参考EMC知识文库245445。

参考

 

EMC知识文库319125

应用于

 

VNX存储阵列性能调优