首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么亚马逊ec2的性能会下降很多?

为什么亚马逊ec2的性能会下降很多?
EN

Stack Overflow用户
提问于 2013-04-11 15:50:26
回答 1查看 2K关注 0票数 0

没有详细介绍我的算法,只是给出了一些实验结果。对于某些给定的输入,我的Java顺序算法在我的笔记本电脑上工作4秒(Intel Core i5 430 m-2核,4个线程,2.27 GHz,4Mb缓存,3Gb内存)。该算法的并行版本使用1个线程运行6秒,5秒使用2个线程,4秒使用3个线程。如果我通过ssh在亚马逊ec2上运行它,那么无论有多少线程,时间顺序是6秒,并行是6到7秒。

你为什么觉得速度慢些?因为amazon使用虚拟机,而在那里运行的代码更慢?你有什么经验?

我有一个应用程序,我想在具有大量内存和计算能力的环境中进行测试。目前,它在亚马逊上是不成功的。

我使用普通Java对象和hppc外部库(高性能的原始计算库)。没有数据库和花哨的东西。

实例类型是c1,可能是这个类型(如果它正确,我很快就会通知您,我知道它是c1,但不知道它是中型还是大型):

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2013-04-11 16:28:04

根据我的经验,虚拟机有非常昂贵的多线程任务切换惩罚,如果:

  1. 您的线程有很多线程间的通信,而且
  2. 在一台物理机器上运行多个VM。

虚拟机“核心”实际上被映射为线程到物理机器的主操作系统上。如果主操作系统的线程量为30 OS,而VM的线程量为30 OS,那么可能发生的情况是:

  1. VM将尝试在其虚拟内核上“唤醒”一个休眠线程。
  2. 这会向硬件操作系统发送一个信号,以唤醒物理内核上的线程。
  3. 另一个VM正在使用它们。等待30毫秒的量子。
  4. 螺纹在HW上苏醒。

如果您的另一个线程期望响应速度比30 If快一点,那么您就遇到了瓶颈。更糟糕的是,在基于Linux的服务器上,非空闲线程调度的默认量程实际上是100 is。

亚马逊的EC2系统不仅仅是虚拟机,它们是共享一台物理机器的虚拟机。要想在每个服务器机架上获得最大的实惠,亚马逊必须在一定程度上进一步超额订阅这些系统。例如:

  • 物理主机有16个HT线程(8个物理内核)
  • VMs每个有8个虚拟核。
  • EC2将在机器上粘贴3-4个VM(超额订阅)

这是因为许多应用程序不使用满载8个核心。但是如果你和一个用了整整8个核心的东西配对.令人扫兴!我不知道实际的配对比率是多少,我想亚马逊也在不断地调整它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15953324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档