Снижение производительности AMI Crate с помощью конечной точки Flask-RESTful на EC2

Запустил экземпляр Simple Crate AMI EC2 и открыл порты для Crate на 4200 и 5000 для Flask.

Когда я запускаю экземпляр EC2 с Crate AMI, скорость медленнее, но все же достаточно высокая (~ 1-2 секунды), но когда я вызываю то же самое с конечной точкой Flask, которая вызывает Crate DB (в том же экземпляре), передавая запрос к нему, это занимает около 10 секунд.

Я протестировал конечную точку на локальном хосте, и скорость выполнения как таковая не изменилась. Следовательно, я исключил код, являющийся проблемой.

Мои вопросы:

  • Почему запросы выполняются через конечную точку Flask-Restful в EC2 так медленно?
  • Есть ли разница в скорости создания AMI EC2 с нуля и установки в него CrateDB по сравнению с готовым AMI Crate?

person Augmented Jacob    schedule 22.12.2016    source источник


Ответы (1)


Это может быть одна из нескольких вещей, но в основном я подозреваю, что это проблема с оборудованием:

  • Аппаратные характеристики одинаковые? больше ядер, больше памяти, SSD против вращающихся дисков?
  • Установлена ​​ли для переменной среды CRATE_HEAP_SIZE половина доступной оперативной памяти? (/etc/sysconfig/crate)
  • Оператор CREATE TABLE такой же? Другое количество ядер приводит к другому количеству осколков, если не указано иное. Oversharding/undersharding заметно снизит производительность.

Я предполагаю, что размер таблицы и запросы одинаковы;) в противном случае, казалось бы, незначительные изменения могут повлиять на производительность. Секционированные таблицы оптимизируются, если столбец раздела находится в предложении WHERE , а также запросы, напрямую попадающие в первичные ключи, намного быстрее. Точно так же агрегации/сравнения для строк выполняются медленнее, чем для числовых типов и т. д.

Привет, Клаус

person claus    schedule 22.12.2016