我最近问了很多关于这个问题的问题,我想我还是不要再拐弯抹角了……
假设我有一个存储系统,用于具有不同 I/O 模式的各种应用程序。我一直在收集系统的性能统计数据:
- 每秒传输次数
- 秒/转帐
- 字节/传输
- 字节/秒
- %闲置的
我已经计算了每个数据的 95% 百分位数、平均值和中位数。我还知道我的平均读写比率是多少。
我了解如何根据磁盘、阵列和平均工作负载参数计算新系统的潜在平均 IOPS 和吞吐量。
我正在努力把这一切整合在一起。目前观察到的统计数据受到现有系统的限制,该系统正在努力跟上。因此,我可能知道我需要 X IOPS,但由于当前磁盘瓶颈等原因,这个值可能很低。(我知道它超负荷工作,因为我看到磁盘使用率持续很高,并且许多秒的传输时间非常长)
坦白说,我并没有做任何硬核的事情,我几乎可以只买一些更快的磁盘并更好地配置我的阵列,这样就可以了。但我想了解如何采取更正式的方法来证明费用的合理性,并且不要过度购买。
答案1
我认为你的数据不够多......你还需要知道系统其他部分的利用率,如果 IO 加速,这些部分可能会成为瓶颈,这样你就可以估计在 IO 受到 CPU、总线或网络限制之前你必须走多远。
“足够快”的某些定义也会有所帮助。但听起来你希望长时间等待 IO 消失。根据你正在做的事情,你可能没有足够的内存来正确缓存它。
答案2
我原则上同意 Andrew McGregor 的回答,但现实情况是,在解决磁盘瓶颈问题后,您可能没有能力执行任何类型的基准测试来查看下一个瓶颈在哪里。在理想情况下,您可以 (a) 以“演示”容量访问更快的磁盘子系统,并在其上运行当前的工作负载,或者 (b) 您可以导出从当前环境捕获的跟踪数据,并通过应用程序软件的“神奇”数学模型运行它,以绘制下一个瓶颈。
您不太可能获得演示硬件,并且不存在用于“回放”Exchange 工作负载的实时跟踪的数学模型(我读了您的其他问题)。以任何客观的方式发现您的下一个瓶颈将是非常困难的。考虑到这一点,我会做您知道可以提高性能的事情并计划更高性能的磁盘。除此之外还会有另一个瓶颈,但除非您能找到一种经济上可行或现实可行的方法来预测它,否则您实际上只是在猜测。
(我将此标记为“社区维基”,因为我真的宁愿将其保留为对安德鲁的回答的评论,但显然,人们不能发表这么长的评论......)
答案3
一定要进行所谓的理论驱动器计算,以获得最大 IOPS,并根据实际使用情况减少 20% 或更多。这会因制造商、磁盘速度等而异。然后与新驱动器配置进行比较,并确保峰值负载在此限制范围内。