6

根据我的发现,只是对 EC2 和 Linode 之间的区别感兴趣。我意识到有一百万件事情会出错。只是想知道从哪里开始。

我一直在对我的博客登录页面的请求进行计时(通过 Apache Benchmark)。它有大约 22 个 sql 查询和相当数量的 html。我在两台服务器上设置了完全相同的站点。

Web1 - 托管在 Linode(512 大小 VPS)。

Web2 - 托管在亚马逊(微型 VPS)。

然后我测试了对两者的 100 个并发连接。我首先运行测试以预热数据库,然后真正运行它。

Web1 - 每秒 33 个请求。

Web2 - 每秒 5 个请求。

然后我安装了页面缓存。这是它将完整的 html 返回存储在文件中的位置。因此,它不会通过 PHP 控制器进行数据库连接,而是返回静态 html 文件。

Web1 - 每秒 32 个请求。

Web2 - 每秒 88 个请求。

您会注意到文件缓存在 Web1 上并没有真正发挥作用。似乎数据库/PHP返回速度很快,只需打开一个文件并返回它。您会注意到在 Web2 上,与第一个请求相比,它变得非常快。

我一整天都做了很多次这些测量。这不是一次性的问题。


这是我所知道的。

  • 两个系统都是一样的。当我使用相同的部署脚本配置它们时。
  • Web2 (Amazon) 很可能在 SAN(文件系统)上运行。
  • Web1 (Linode) 很可能从本地硬盘驱动器(文件系统)运行。
  • 不知道它背后的CPU是什么。我会假设它们是不同的CPU。我无法想象CPU有很大的不同。

我真的很想知道是什么让 Web2 在没有缓存的情况下如此缓慢,而在有缓存的情况下却非常快,而 Web1 两种方式都是一样的。

你有什么想法?处理器,IO?

你会做什么来追踪瓶颈?

我没有看到任何疯狂的负载(带有“w”)。不是 100% 在“iostat”中有价值的东西(至于我应该看的东西)。


谢谢。

4

3 回答 3

4

所以我想通了。

瘸。但是如果你在亚马逊有一个微型实例,它们会限制你的 CPU。因此,当我尝试使用并发连接进行多次连接时,它们限制了我的 CPU。

于 2012-08-31T17:51:05.547 回答
1

似乎 EC2 很慢。除非你是一个大网站并且需要大量的扩展。

我找到了https://www.digitalocean.com。在比较 EC2 微实例时,它们似乎非常棒。

于 2012-09-01T05:57:45.270 回答
0

一个可能的因素是,与标准 HDD 相比,EC2 EBS 卷往往非常慢(与 SSD 相比甚至更慢)。

请参阅此 SO Q&A。 而这个批评(从SO链接链接到)。

这可能不是缓慢的全部原因,但如果 Linode 选项使用真正的 HDD,这至少是部分原因。

于 2012-08-31T12:11:38.230 回答