亚马逊 EC2 上的传输速率低

亚马逊 EC2 上的传输速率低

我对 Amazon EC2 上的传输速率有疑问。基本上,我正在评估迁移到 Amazon 服务堆栈的可能性,但首先想根据我们当前的设置对其进行基准测试。我的设置非常简单,我只运行一个大型 EC2 实例,访问一个小型 RDS 实例,两个实例都位于欧盟西部区域。在 EC2 实例上,我运行的是普通的 apache 配置文件,而在当前服务器上,我运行的是修改后的 apache 配置文件。这意味着我预计并发连接数会更少,但我预计传输速率会相似。

我正在运行的基准测试只是标准的 ab(apache 基准测试)测试

ab-n 100-c 10http://www.example.com/

EC2 上的设置结果如下:

ab -n 100 -c 10 http://www.example.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.website.com (be patient).....done


Server Software:        Apache/2.2.14
Server Hostname:        www.example.com
Server Port:            80

Document Path:          /
Document Length:        99051 bytes

Concurrency Level:      10
Time taken for tests:   17.872 seconds
Complete requests:      100
Failed requests:        97
   (Connect: 0, Receive: 0, Length: 97, Exceptions: 0)
Write errors:           0
Total transferred:      9940632 bytes
HTML transferred:       9898332 bytes
Requests per second:    5.60 [#/sec] (mean)
Time per request:       1787.165 [ms] (mean)
Time per request:       178.716 [ms] (mean, across all concurrent requests)
Transfer rate:          543.19 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       22   29  11.9     26      87
Processing:   717 1740 689.6   1530    3744
Waiting:      586 1475 619.3   1302    3112
Total:        739 1769 688.7   1561    3770

Percentage of the requests served within a certain time (ms)
  50%   1561
  66%   1713
  75%   1892
  80%   1975
  90%   3300
  95%   3674
  98%   3674
  99%   3770
 100%   3770 (longest request)

而我的服务器响应如下:

ab -n 100 -c 10 http://www.example.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.example.com (be patient).....done


Server Software:        Apache
Server Hostname:        www.example.com
Server Port:            80

Document Path:          /
Document Length:        116922 bytes

Concurrency Level:      10
Time taken for tests:   9.024 seconds
Complete requests:      100
Failed requests:        95
   (Connect: 0, Receive: 0, Length: 95, Exceptions: 0)
Write errors:           0
Total transferred:      11731386 bytes
HTML transferred:       11693186 bytes
Requests per second:    11.08 [#/sec] (mean)
Time per request:       902.427 [ms] (mean)
Time per request:       90.243 [ms] (mean, across all concurrent requests)
Transfer rate:          1269.51 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       15   21   9.5     17      52
Processing:   311  840 663.6    482    2987
Waiting:      188  362 416.1    216    1607
Total:        338  861 661.8    501    3003

Percentage of the requests served within a certain time (ms)
  50%    501
  66%    909
  75%   1063
  80%   1292
  90%   2130
  95%   2366
  98%   2912
  99%   3003
 100%   3003 (longest request)

还有其他人遇到过这种低传输率的情况吗?这对于 EC2 实例来说正常吗?我可能做错了什么吗?

如果您需要更多信息,请告诉我。

感谢你的帮助。

答案1

example.com 是否托管 PHP/Rails?

老实说,在比较 EC2 与 Rackspace (RS) 基于云的产品时,我经历了相同的基准测试过程,结果非常相似(AB 中使用的是股票 wordpress index.php 页面)

我的结论和研究表明,EC2 的瓶颈(即使在高 CPU 实例上)也是 CPU 或“计算单元”,当它为 PHP 提供服务时。默认主题上最简单的 wordpress index.php 返回的请求数比相同操作系统/堆栈上的 RS 少约 40 倍/秒。老实说,RS 每月 10 美元的云服务器表现优于 160 美元或任何其他 EC2 实例 - 这可能是因为 RS 位于较新的基础设施上,并且每个云服务器都具有对现代 CPU 的直接物理访问。我猜 EC2 只是运行较旧的硬件和/或您的代码和处理代码之间存在更多移动部件/层。

EC2 与任何云产品一样稳定且经过深思熟虑,可能比所有云产品都要稳定和经过深思熟虑,但它并不是一个追求高负载性能的地方,除非您能投入大量资金,此时您可能会从专用产品甚至托管产品中获得更多。

Reddit(Alexa 排名前 100 位的网站)和其他高流量网站托管在 EC2 上 - 所以不要误会我的意思,这是可以做到的。使用高 CPU Web 节点集群预先进行缓存和负载平衡应该可以解决问题。我要说的是 - 如果您希望从一台机器上获得不错的性能来为 php 提供服务,那么其他地方可能更适合您...

如果您每秒获得的请求数不超过 2 个或每天获得的访问数不超过 216,000 次,那么这整个事情可能就不成问题了,您可以/应该从亚马逊堆栈的稳定性和功能中受益。

相关内容