Java 为什么amazon ec2的性能会大大降低?
没有详细介绍我的算法,只是给出了一些实验结果。对于某些给定的输入,我的Java顺序算法在我的笔记本电脑上工作4秒钟(Intel Core i5 430M-2核、4线程、2.27 GHz、4Mb缓存、3Gb内存)。该算法的并行版本使用1个线程工作6秒,使用2个线程工作5秒,使用3个线程工作4秒。如果我通过ssh在AmazonEC2上运行它,顺序的时间是6秒,并行的时间是6到7秒,不管有多少线程 你为什么认为它比较慢?因为亚马逊使用虚拟机,那里的代码运行速度较慢?你有什么经验 我有一个应用程序,我想在有大量内存和计算能力的环境中进行测试。目前它在亚马逊上还没有成功 我使用普通Java对象和Java 为什么amazon ec2的性能会大大降低?,java,performance,amazon-ec2,Java,Performance,Amazon Ec2,没有详细介绍我的算法,只是给出了一些实验结果。对于某些给定的输入,我的Java顺序算法在我的笔记本电脑上工作4秒钟(Intel Core i5 430M-2核、4线程、2.27 GHz、4Mb缓存、3Gb内存)。该算法的并行版本使用1个线程工作6秒,使用2个线程工作5秒,使用3个线程工作4秒。如果我通过ssh在AmazonEC2上运行它,顺序的时间是6秒,并行的时间是6到7秒,不管有多少线程 你为什么认为它比较慢?因为亚马逊使用虚拟机,那里的代码运行速度较慢?你有什么经验 我有一个应用程序,我想
hppc
外部库(高性能原语计算库)。没有数据库和花哨的东西
实例类型是c1,可能是这个(如果它正确,我会很快告诉您,我知道它是c1,但不知道它是中型还是大型):
根据我的经验,虚拟机具有非常昂贵的多线程任务切换惩罚,在以下情况下可能会导致严重的性能惩罚:
- 物理主机有16个HT线程(8个物理内核)
- 虚拟机每个都有8个虚拟核
- EC2将在机器上粘贴3-4个虚拟机(超额订阅)
这样做是因为很多应用程序不使用8核的满负载。但是如果你与使用8个内核的东西配对。。真倒霉我不确定实际的配对比例是多少,我想亚马逊一直在调整它。你在用什么?我的经验是,虚拟机并不总是按照你认为应该的方式扩展。但不要回答你的问题。在任何情况下,您的算法似乎都不能很好地扩展,即使用3个线程可以使性能提高50%。您是否进行了任何磁盘i/O?使用更多线程时,硬盘IO到HDD的速度通常会较慢。如果操作系统只找到一个核心,听起来性能特征是合理的。否则,正如其他人所说,它可能是由I/O引起的,根据我的经验,I/O在EC2上可能非常慢。
High-CPU Extra Large Instance
7 GiB of memory
20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each)
1690 GB of instance storage
64-bit platform
I/O Performance: High
EBS-Optimized Available: 1000 Mbps
API name: c1.xlarge