#google-app-engine #gcloud #google-cloud-spanner
# #google-app-engine #gcloud #google-cloud-spanner
Вопрос:
В настоящее время я испытываю очень большие проблемы с задержкой в моих приложениях .net core 2.2. Настройка состоит из API .net через app engine (память 2g, 1 процессор, экземпляр 2 в состоянии покоя), которые взаимодействуют с таблицами spanner с индексами. Всякий раз, когда наша система подвергается нагрузке, мы, как правило, получаем скачок, когда наши экземпляры скачут, и задержка значительно возрастает.
В среднем наше время запроса для запроса api составляет 30 мс, но затем оно увеличивается до 208 с даже для экземпляров, которые не меняются. Запросы spanner довольно короткие, в среднем около 0.072502. Просто отображается синяя полоса, охватывающая все время запроса. Проверка блокировок строк, но это просто запросы GET и ничего не показывают.
Есть ли что-нибудь еще, на что я могу посмотреть?
Комментарии:
1. Возможно, стоит профилировать ваше приложение, чтобы подтвердить, является ли это проблемой для Spanner, и исключить другие возможности. Я не использовал Cloud Profiler с .NET (только Go), но есть библиотека. Это похоже на конфликт с БД, но в вашем вопросе не так много подробностей. developers.google.com/api-client-library/dotnet/apis /…
2. И если подумать подробнее, используете ли вы клиентскую библиотеку API или облачную клиентскую библиотеку для Spanner? Я предполагаю последнее. Библиотеки облачных клиентов написаны вручную, возможно, вы сталкиваетесь с грубым краем, который не обнаруживается в других языковых SDK. Если он использует gRPC, вы также можете использовать Cloud Trace. Библиотеки gRPC обычно автоматически настраиваются.
3. Мы используем Google. Облако. Spanner.Data.dll 2.0.0 библиотека библиотеки nuget для вызова нашей базы данных spanner. Передача текста SQL, который является просто простыми командами SQL, заключенными в область транзакции. Я не уверен, что это может быть библиотека spanner, поскольку все это влияет вместе. Я посмотрю на профилировщик. Спасибо
4. Ваше число 208 секунд или 208 миллисекунд? Добавьте сведения о вашем развертывании. Определите «под нагрузкой». В каком регионе? Чем больше деталей, тем выше вероятность ответа. Можете ли вы создать дублирующую службу для нагрузочного тестирования? Добавьте профилирование, чтобы увидеть, где возникают узкие места.