Почему AWS лямбда-биллинг отличаются для разных времен выполнения? - PullRequest
3 голосов
/ 15 апреля 2020

Я тестирую приложения с двумя разными средами выполнения: node.js и java собственный исполняемый файл (заранее скомпилированный с GraalVM).

Вот журналы запуска.

Node.js:

Duration: 556.31 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 81 MB Init Duration: 365.44 ms

Собственный исполняемый файл:

Duration: 548.98 ms Billed Duration: 1000 ms Memory Size: 256 MB Max Memory Used: 106 MB Init Duration: 411.83 ms

Как вы можете видите, Duration и Init duration очень близки, но по какой-то причине Billed Duration почти в 2 раза больше для пользовательской среды выполнения с собственным исполняемым файлом.

Не могли бы вы объяснить, в чем разница и как я можно избежать этого?

1 Ответ

3 голосов
/ 15 апреля 2020

Для пользовательских сред выполнения выставляется счет за время инициализации, как указано в документах -

"Инициализация учитывает время и время выполнения выставленного счета. При выполнении запускает инициализацию нового экземпляра вашей функции, вы можете увидеть время инициализации в журналах и AWS рентгенограмму. "

548,98 мс (продолжительность функции) + 411,83 мс (инициализация ) = 960,81 мс с округлением до следующих 100 мс, что приводит к расчетной продолжительности: 1000 мс

Для времени выполнения, которое поддерживает Lambda; Время инициализации не засчитывается в счет установленной продолжительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...