У меня вопрос по скорости передачи на 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.