.NET Core Web Api на AWS Lambda работает медленно при первом запросе - PullRequest
0 голосов
/ 07 декабря 2018

Я развертываю свое приложение .net core 2.1 на AWS Lambda, я использую пакет AspNetCoreServer для маршрутизации прокси на мои контроллеры, и я обнаружил проблему в этом решении, в моем первом запросе лямбда очень медленная для выполненияКонтроллер действия, но в других запросах выполняется быстро, я просматриваю журналы CloudWatch, чтобы понять, что происходит, и я видел в журналах, что самое долгое время в ControllerActionInvoker: Route Match для вызова моего действия, я хотел бы знать, сделал ли я что-то неправильно илиЭто ядро ​​.net медленно для AWS лямбда.

Мои журналы доказательств:

Вот мой первый журнал запросов: Here is my first request log

И мойвторой журнал запросов: second request log

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

На самом деле первый медленный запрос вызван не только холодным запуском лямбды.С .Net Core в лямбде у вас есть 2 холодных запуска: холодный запуск самой лямбды и холодный запуск самого ядра .net.Чтобы избежать этих двух холодных запусков, вы должны:

  • Лямбда-холодный старт: разогревайте лямбду, вызывая ее каждые 5 минут
  • .Net Ядро холодного запуска: прогревайте .NetCore api, вызывая всю вашу конечную точку при запуске

, обратитесь к этой проблеме github , чтобы узнать больше о первом медленном запросе в .Net Core (все еще надеюсь, что эта проблема будет исправлена ​​илилучше управляется в следующих выпусках ядра dotnet, но сейчас у вас нет лучшего варианта)

0 голосов
/ 07 декабря 2018

Холодный запуск (первый лямбда-вызов) не является специфической проблемой .Net Core.Вы можете найти сравнение времени для разных языков в этой статье .

...