我有一台服务器,我知道它有存储作为瓶颈.我想瓶颈不是存储,因此我需要调整存储阵列的性能.也就是说,购买一个提供超出我需要的IOPS的阵列.
在给定一些系统IO统计信息或其他信息的情况下,我如何知道如何调整存储性能(购买什么)以提供超出我需要的服务(采用最坏的情况 – 重要的IO争用 – 作为参考).
例如,iostat实用程序可以提供有关IO使用情况的一些有趣统计信息.我可以使用该信息来了解我需要的硬件性能吗?怎么样?
这是一个普遍的问题,实际的工作负载类型或软件并不重要(例如可能是数据库),我只需要能够根据当前的IO统计信息和使用情况做出决定.
解决方法
IOPS当然是每个人都在谈论的容易限制,因为磁盘不好寻求和数据库喜欢寻找.这些天使用缓存和SSD,小块IO随机搜索读取比以前容易得多.一小块SSD和一个大缓存可能会确保如果它确实是IOPS(对于小块“搜索”类型IO)这是你的瓶颈,你将不再受它的影响.但要注意这些基准测试 – 你会读到各种不切实际的数字,因为人们会测量他们可以直接进行非镜像缓存的IO数量.那不会对你的linux服务器有所帮助.
另一种存储限制是带宽或吞吐量.这个很难隔离,但是如果你知道你想要读取或写入多少数据,并且知道现在需要多长时间,那么选择一个新的时间目标,这将是你的新数字.例如:如果您观察您的应用程序花费4个小时来执行大型备份或其他操作,并且在它结束时,它移动了9 TB,它告诉您当前的吞吐量限制:大约650 MB / s.如果你想在那段时间内移动18 TB,你需要1300 MB / s.在大多数情况下,以太网,光纤和SAS都可以配置为比存储硬件更快.存储保持传输层满的能力通常是真正的瓶颈.您希望查看前端端口的数量,以及启用了缓存镜像的基准数量(以确保镜像缓存写入之间没有瓶颈).
最后,就SCSI队列而言,您可能受到错误存储配置的限制.这并不常见,但是由于无法以尽可能快的速度推送存储硬件而定义.如果您看到主机写入的延迟时间为500毫秒,但您的存储报告3毫秒100%缓存命中,则可能是目标上SCSI队列不足的问题.基本上,SCSI启动器等待最多500毫秒来释放其队列中的一个插槽,它可用于接收请求.您想要询问存储供应商有关主机队列深度设置和扇出比的最佳实践.
我希望这会有所帮助,我知道这并不像你希望的那么简单.