Первый запрос API Google Cloud NodeJs занимает больше времени, чем последующие запросы - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть приложение на основе nodejs, работающее как приложение Google App Engine. Доступ к базе данных осуществляется с помощью модуля node- postgres. Я заметил следующее:

  • Первый запрос, который я делаю со своей машины (используя почтальона), занимает больше времени (около 800 мс - 1,5 секунды). Однако последующие запросы, которые я делаю, занимают гораздо меньше времени (около 200 мс - 350 мс). Я не могу точно определить точную причину этого. Это может быть связано со следующими причинами:
  • Новое соединение инициируется при первом обращении к серверу.
  • Существует некоторая проблема с извлечением базы данных с использованием узла- postgres (но поскольку проблема возникает только в первом случае, это более вероятно).

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

Что я могу сделать, чтобы продолжить расследование и решить эту проблему?

1 Ответ

1 голос
/ 04 апреля 2020

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

Чтобы лучше понять время запуска ядра приложения, вы можете прочитать Рекомендации по запуску App Engine: c ( немного староват но думаю очень понятно). А чтобы выполнить профилирование для своего приложения движка приложения, вы можете прочитать в этом Medium publi c blog .

После этого вы можете настроить панель мониторинга Stackriver, чтобы понять, являются ли ваши 20% медленные запросы связаны с запуском нового экземпляра ядра приложения.

...