RAID 6> 80%的最高活动时间,小I / O

我有一个18个磁盘的RAID 6。 它被用作小图像(5-500Kb)的存储。 这是关于6TB充满数据。 我有一个实用程序,该图像读取内存,然后通过networking发送。 我注意到大约10Mb / s的I / OI有100%的活动时间。 qlen约为18-25,iops约为500-700。 是因为很多小的要求吗? 我可以改进吗? 我注意到它可能会影响其他使用该存储来满足其需求的应用程序。 此外,某些文件的响应时间可以增长到700-1000毫秒。

不能直接回答你的问题,因为驱动器的性能有很大的“取决于”。 这取决于IOtypes,IO大小,caching,控制器等等。

尤其是,您需要了解读写IO的“成本”差异。

写入IO在RAID 6上是昂贵的 – 每个IO需要6个磁盘操作。 这意味着您可以将您的主轴数量除以6,以便持续传输。 你可以做一些技巧来隐藏这个问题 – 你可以积极地caching,因为如果你能够合并,你可以大量减less这个问题。 如果你写一个块,你需要每个做6个操作。 但是,如果你可以写一个完整的条纹,你只需要写一个额外的2个块,使其比RAID 1更有效率。 您也可以延迟写入,稍后将其发送到磁盘 – 导致写入以“caching速度”完成,直到您填充caching为止。

另一方面读取IO – 需要一个操作来服务,但它必须实时完成 – 你不能像写入一样延迟它。 这意味着您的读取速度通常会比较慢 – 但是您可以通过caching来部分缓解这种情况 – 但是您必须利用可能的读取模式(例如,大的顺序,重新读取常用文件)。

这意味着实际上,基于工作负载的理论性能和最佳性能之间存在非常大的差异,这就是为什么这样的问题很难回答。

就你而言 – 你说你有小的IOP。 500-700 IOPs 10MB /秒意味着你有小IO。 所以你可以很容易地 – 如果它们是一个随机模式 – 以最坏的速度运行你的磁盘。 要么是因为读取的IO是随机的,不能被caching,要么是写入的IO是随机的,因此不能被整合到磁盘上,只要你的写入caching被填满,你就会放慢速度到磁盘速度,而且速度可能非常慢。 (在这种情况下,18个磁盘给你有效的3个主轴 – 但你得到的不止于此)

你在控制器与磁盘的比例上可能会好,但是很难说。 通常情况下,限制因素是旋转锈蚀,因为这通常是系统中最慢的部分。 但是由于巨大的caching和有效的cachingalgorithm,我们得到了扭曲的期望。

所以我会build议你需要检查什么样的比例你得到的IO。 (忽略MB /秒,很明显,你甚至没有接近理论水平)。 检查高速caching命中率和高速caching大小 – 如果可以的话,看看你的高速caching是多么充分,以及你得到的完整条带写入的速度是多less(如果你写很多IO的话)。

还要检查磁盘寻道速率 – 看你的头在磁盘上移动的频率 – 再次,密集随机读取模式的一个缺点是你的磁盘会抖动。