Производительность Crate AMI ниже с конечной точкой Flask-RESTful на EC2

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

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

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

Мои вопросы:

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

1 ответ

Решение

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

  • Аппаратные характеристики одинаковы? больше ядер, больше памяти, SSD против вращающихся дисков?
  • Является ли переменная среды CRATE_HEAP_SIZE установить половину доступной оперативной памяти? (/etc/sysconfig/crate)
  • Это CREATE TABLE Скажите то же самое? Разное количество ядер приводит к другому количеству шардов, если не указано иное. Избыточность / недостаточная защита заметно ухудшат производительность.

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

Ура, клаус

Другие вопросы по тегам