Я развернул образец приложения HelloWorld на Google Cloud Run
, который в основном равен k-native
, и каждый вызов API непрерывно занимает в лучшем случае 1,4 секунды. Так должно быть?
Образец приложения находится по адресу https://cloud.google.com/run/docs/quickstarts/build-and-deploy
Я развернул то же самое приложение на своем локальном хосте в качестве контейнера докеров, и это занимает около 22 мс, сквозное выполнение.
То же приложение в моем GKE
кластере занимает около 150 мс, сквозное выполнение.
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
target = os.environ.get('TARGET', 'World')
return 'Hello {}!\n'.format(target)
if __name__ == "__main__":
app.run(debug=True,host='0.0.0.0',port=int(os.environ.get('PORT', 8080)))
У меня небольшой опыт работы с FaaS, и я ожидаю, что вызовы API станут быстрее, если я буду вызывать их подряд. (как в холодном пуске по сравнению с теплым пуском)
Но сколько бы раз я ни выполнял команду, она не опускается ниже 1,4 секунды.
Я думаю, что расстояние в сети не является здесь доминирующим фактором. Время приема-передачи через ping до конечной точки API составляет всего 50 мс, более или менее.
Итак, мои вопросы следующие:
Это потенциально непреднамеренная ошибка? Это техническая трудность, которая со временем будет решена? Или, может, все в порядке, это просто SLA
k-native
?Если с
Google Cloud Run
и / илиk-native
все в порядке, каков основной фактор затрат времени на мой вызов API? Очень хотелось бы изучить механизм.
Дополнительные детали:
- Где я нахожусь: Сеул / Азия
- Регион для моего приложения Cloud Run: us-central1
- тип подключения к Интернету, который я тестирую: Business, Wired
- размер изображения контейнера приложения: 343,3 МБ
- местоположение корзины, которое использует Реестр контейнеров: gcr.io
время разминки WebPageTest из Сеула / Азии
- Тип содержимого: текст / html
- Начало запроса: 0,44 с
- Поиск DNS: 249 мс
- Первоначальное подключение: 59 мс
- Согласование SSL: 106 мс
- Время до первого байта: 961 мс
- Загрузка контента: 2 мс
WebPageTest из Чикаго, США (время разминки):
- Тип содержимого: текст / html
- Начало запроса: 0,171 с
- Поиск DNS: 41 мс
- Первоначальное подключение: 29 мс
- Согласование SSL: 57 мс
- Время до первого байта: 61 мс
- Загрузка контента: 3 мс
ОТВЕТ Steren, менеджера по продукту Cloud Run
Мы обнаружили высокую задержку при вызове сервисов Cloud Run из некоторых регионов мира. К сожалению, Сеул кажется одним из них.