Производительность 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
предложение, а также запросы, напрямую обращающиеся к первичным ключам, работают намного быстрее. Аналогично, агрегации / сравнения в строках медленнее, чем в числовых типах и т. Д.
Ура, клаус