对于我的火花应用程序,我正在尝试确定是否应该使用10 r3.8xlarge或40 r3.2xlarge。我最关心的是应用程序的随机性能。
如果我使用r3.8xlarge,我将需要为每台机器配置4个工作器实例以保持JVM大小不变。如果工作站实例位于同一台计算机上,则它们可能会相互争用网络和磁盘I / O.如果我使用40 r3.2xlarge,我将能够为每个盒子分配一个工作器实例,允许每个工作器实例拥有自己的专用网络和磁盘I / O.
由于shuffle性能受到磁盘和网络吞吐量的严重影响,因此看起来像40 r3.2xlarge将是两者之间更好的配置。我的分析是否正确?我还没有考虑其他权衡吗?如果工作者实例在同一台机器上,火花会绕过网络传输并直接从本地磁盘读取吗?
答案 0 :(得分:0)
似乎你已经得到了答案:it seems like going with 40 r3.2xlarge would be the better configuration between the two.
建议您通过aws well架构师。
一般设计原则 Well-Architected Framework确定了一套通用设计原则 促进云中的良好设计:
停止猜测您的容量需求:消除猜测您的容量 基础设施能力需求当您之前做出容量决定时 如果部署系统,最终可能会占用昂贵的空闲资源 或处理有限容量的性能影响。同 云计算,这些问题可以消失。你可以使用尽可能多的 根据需要提供小容量,并自动放大和缩小。
生产规模的测试系统:在传统的非云中 环境,创建副本通常是成本过高的 环境仅供测试。因此,大多数测试环境都是 未按生产需求的实时水平进行测试。在云中,您可以创建 按需复制环境,完成测试,然后 退役资源。因为你只支付测试费用 环境运行时,您可以模拟您的实时环境 只需一小部分内部测试费用。
参考: