Назад | Перейти на главную страницу

Низкая скорость перевода на Amazon EC2

У меня вопрос по скорости передачи на Amazons EC2. В основном я оцениваю переход на стек сервисов Amazon, однако сначала хотел бы сравнить его с нашей текущей настройкой. Моя установка довольно проста, у меня есть только один большой экземпляр EC2, работающий с доступом к одному небольшому экземпляру RDS, причем оба находятся в зонах ЕС-Запад. На экземпляре EC2 я запускаю стандартный файл конфигурации apache, тогда как на моем текущем сервере я запускаю измененный файл конфигурации apache. Это означает, что я ожидаю меньшего количества одновременных подключений, однако я ожидал, что скорость передачи будет аналогичной.

Тестовые тесты, которые я запускаю, - это ничто иное, как стандартные тесты ab (тест apache)

ab -n 100 -c 10 http://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? Может я что-то не так делаю?

Если вам нужна дополнительная информация по этому поводу, дайте мне знать.

Спасибо за вашу помощь.

На сайте example.com размещены PHP / Rails?

Честно говоря, я прошел тот же процесс тестирования при сравнении предложений на основе облака EC2 и Rackspace (RS) с очень похожими результатами (стандартная страница wordpress index.php, используемая в AB)

Мой вывод и исследование показали, что узким местом EC2 - даже на экземплярах с высокой загрузкой ЦП, был ЦП или «вычислительные блоки», когда дело доходило до обслуживания PHP. Самый простой wordpress index.php в теме по умолчанию возвращал примерно в 40 раз меньше запросов в секунду, чем RS в идентичной ОС / стеке. Честно говоря, облачный сервер RS за 10 долларов в месяц превзошел по производительности 160 долларов или что-то еще, что это был экземпляр EC2 - это, вероятно, потому, что RS находится в более новой инфраструктуре, и каждый облачный сервер имеет прямой физический доступ к современному процессору. Я предполагаю, что EC2 просто запускает старое оборудование и / или между вашим кодом и его обработкой есть больше движущихся частей / слоев.

EC2 примерно так же стабилен и хорошо продуман, как и любое облачное предложение, возможно, даже больше, чем все они, но это не место для высокой производительности, если вы не можете потратить на это кучу денег, и в этот момент вы, вероятно, получите больше из специального предложения или даже колорита.

Reddit (в топ-100 сайтов alexa) и другие сайты с высокой посещаемостью размещаются на EC2 - так что не поймите меня неправильно, это можно сделать. Кэширование и предварительная балансировка нагрузки с помощью кластера веб-узлов с большим числом ЦП должны помочь. Все, что я говорю, - если вы ищете приличную производительность на одной машине с целью обслуживания php, вам, возможно, лучше подойдет другое место ...

Если вы не получаете более 2 запросов в секунду или 216 000 посещений в день, возможно, все это не проблема, и вы можете / должны извлечь выгоду из стабильности и функций стека Amazon.