这是我通过R运行输入文件后得到的输出。它在EC2 ubuntu实例上运行,具有大约8GB的RAM和2个CPU。我查看了监视器,当R程序运行时,它只使用了大约20%的CPU。
proc.time() - T1 用户系统已过 0.584 0.320 0.902
proc.time() 用户系统已过 6.780 1.132 7.902
我本地计算机上的SAME输入文件大约需要1.5秒。硬件大致相同。有什么建议吗?
答案 0 :(得分:2)
当您遇到单个实例的性能问题时,要做的第一件事就是重新启动。如果主机忙,重启通常会将其移动到具有更多可用性的另一台主机。
如果这没有帮助,接下来要找出限制你的是什么。云观察指标没问题,但可能没有详细说明。您可以打开可能有用的详细监控,或者有许多可以提供帮助的监控工具。 NewRelic免费提供服务器监控,CopperEgg免费提供1个用户开发许可证,并且可能有数十个其他人通过免费试用版为您提供更多信息。
好吧,我们假设您知道问题所在。
如果是I / O,则有几种解决方案。您可以尝试使用临时存储 - 这通常附加到实例,因此可能比EBS支持的存储更快。缺点是当实例关闭时,您会丢失短暂存储中的所有内容,因此请确保保存所有结果。对于更多I / O,您可以在EBS中使用预配置IOPS,或者移动到提供本地SSD存储的实例。
如果是CPU,你使用两个核心吗?你看到一个很高的“被盗”百分比吗?如果是这样,您可能希望转移到具有更好CPU的实例 - 有Cxx类型实例可能比通用M1或M3类型实例更好。