Фон в двух словах: - У нас есть решение SAAS со следующими основными компонентами. 1. У нас есть веб-портал, где администраторы могут редактировать данные. 2. У нас есть веб-API, который вызывается мобильными устройствами. Мобильные устройства отслеживают или сообщают о ходе обучения студентовAzure удаляет базу данных cpu пределы слишком легко
До сих пор решение размещалось на виртуальных серверах. Теперь мы переносим решение в инфраструктуру Azure, чтобы мы могли использовать масштабируемость эластичных пулов баз данных. Мы используем темы событий для обработки больших объемов сообщений с мобильных устройств, когда сообщения могут обрабатываться асинхронно, , но есть несколько сообщений, которые нужно обрабатывать синхронно, и мы находим ткань Azure очень медленной, когда дело доходит до нескольких параллельные соединения.
Пример вопроса: -
Так что, когда Azure запускает запрос вроде следующего: -
пики CPUSELECT q.Category, COUNT(*)
FROM Question q
JOIN Answer a
ON a.QuestionId = q.QuestionId
GROUP BY q.Category
ORDER BY q.Category
SQL, выше 97% во всех следующих случаях: -
1. DTU - 50 и существует более одного одновременного вызова.
2. DTU - 1500 и есть 5 или более одновременных вызовов.
3. DTU - 4000 и 20 или более одновременных вызовов.
Итак, мы открыли телефонный звонок с Microsoft. Мы потратили больше недели на изучение вещей из статистики и индексов sql вплоть до уровней api-тарифов в Интернете. После всего этого мы все еще обнаружили доказательства того, что CPU достиг пика в базе данных SQL со сценариями, описанными выше.
Это приводит к неизбежному «переписыванию больших кусков вашей системы».
Таким образом, основная проблема заключается в том, что эластичные пулы баз данных не могут казаться практически недоступными для стандартных баз данных SQL. Кроме того, производительность автономной базы данных, похоже, не конкурирует с производительностью виртуального сервера.
Это настолько разочаровывает, что для нас были рекомендованы бассейны с эластичными базами данных из-за поддержания производительности и повышения масштабируемости. В настоящее время мы запускаем 700 клиентов на одном виртуальном сервере; и ожидали создать одну базу данных осколков для каждого клиента. Идея состоит в том, что мы могли бы затем расширить масштабы от сотен клиентов до десятков тысяч клиентов. На самом деле мы боремся за то, чтобы заставить Azure-ткань работать где-нибудь рядом с тем уровнем производительности, который у нас есть на виртуальных серверах. Итак, этот вопрос заключается в том, чтобы спросить, есть ли кто-либо со значительным опытом в создании Azure для выполнения нетривиальных задач в разумном темпе? (предпочтительно без необходимости переписывать большие куски системы)
Нет? отметьте в себе вопрос. Очистите его или он будет закрыт. – Paparazzi
Миграция из одного экземпляра базы данных в пулы не всегда является лифтом и сдвигом. Вы должны подумать о том, как в настоящее время обрабатывается ваша маршрутизация, зависящая от данных. Затем вы должны учитывать соединения с базой данных как с объёмом соединения (между хозяевами и арендаторами). Если MS предложила переписать большие куски вашего приложения, они, возможно, заметили некоторые области, где вы, возможно, не готовы к эластичной шкале. Если вы хотите разбить свои вопросы на единицы, я был бы рад ответить, как перейти от одного экземпляра к многим. –
Спасибо @ShannonLowder, я понимаю, что вы правы. Я надеялся, что рефакторинг не понадобится, но я принял сейчас, что это неизбежно. –