У нас есть давно работающее ASP. NET WebApp в Azure, которое не имеет реальных конечных точек - оно служит единственной функциональной цели, в первую очередь считывая данные базы данных и манипулируя ими, фактически это пакетная, запланированная задача, запускаемая таймер каждые 30 секунд. Приложение работает нормально большую часть времени, но мы наблюдаем случайные проблемы, когда загрузка ЦП для приложения приближается к максимуму для AppServicePlan, мгновенно, а не постепенно, и перестает выполнять какие-либо дополнительные триггеры таймера, и мы не можем найти что-либо явно в выполнение кода для его учета (никаких признаков взаимоблокировок et c. и все пути кода имеют try / catch, поэтому не должно быть необработанных исключений). Чаще всего мы видим ошибки при подключении к базе данных, но неясно, являются ли они причиной или симптомами.
Обратите внимание, что это единственный ресурс в рамках плана AppService. База данных Azure SQL находится в том же регионе и, хотя она используется другими приложениями, используется ими очень слабо, и они также не проявляют никаких проблем, обнаруженных проблемным приложением.
Такое ощущение, что это связанных с инфраструктурой, но мы не смогли найти ничего, чтобы объяснить, что происходит, поэтому, если у кого-то есть предложения о том, где нам следует искать, они будут с благодарностью приняты. Мы включили basi c Application Insights (не SDK), но помимо наблюдения за скачком нагрузки на ЦП перед потерей ответа приложения, мало интересной информации, учитывая наши ограниченные знания о том, как лучше всего использовать Insights.