
Ниже приведены два изображения из нашего Azure 'App Service Plan', где размещено наше приложение. Недавно мы попробовали масштабирование, но это не решило проблему, показанную ниже.
Наш «Max CPU» достигает пиков в течение дня, каждый день... но это MAX агрегация. Это временные всплески. Между тем, наша AVG агрегация процента процессора в норме (второе фото).
Ожидаются ли максимальные переходные скачки нагрузки на процессор, как на первой картинке, или это ненормально?
Спасибо!
решение1
Это правило агрегации, а не фактическое использование. Когда собираются метрики, они имеют (для ЦП) одну метрику: текущую загрузку ЦП. Если метрики собираются 6 раз в минуту, есть 6 значений. Когда отображается большой интервал, он обычно не показывает все данные, а выполняет агрегацию. Например, если агрегация сводится к 10-минутному интервалу, то все данные в этом интервале сворачиваются в одно число. Для этого есть разные функции: min, max, avg, median и т. д.
Один из вариантов — усреднить (ваш второй график). Другой — показать максимальный найденный пик на этом интервале (ваш первый символ). Агрегация по средним значениям имеет тенденцию скрывать пики, агрегация по максимальным значениям имеет тенденцию неоправданно раздувать пиковое использование. Если у вас есть 10-минутное окно агрегации, и в этот момент какой-то процесс потреблял 100% в течение 0,1 секунды, и эти 0,1 секунды были моментом сбора метрик, у вас будет 10-минутный интервал 100% использования ЦП (когда используется 'max' агрегация).
решение2
Это во многом зависит от приложения, работающего на нем. Если оно выполняет интенсивную работу ЦП, то, вероятно, оно максимально увеличит использование ЦП. Разница, которую вы должны увидеть при обновлении оборудования, заключается в том, что задачи, над которыми оно работает, будут выполняться быстрее.
Я ничего не знаю о приложении, которое вы пытаетесь запустить. И поэтому не знаю, является ли это многопоточным приложением, которое, кажется, работает как надо во время этих скачков, или это однопоточное приложение, которое, кажется, зависает во время скачка? В первом случае я бы не стал беспокоиться. Но во втором случае я бы, вероятно, рассмотрел либо модернизацию ЦП еще больше, либо, если бы у меня был доступ к исходному коду приложения, попытался бы посмотреть, можно ли оптимизировать задачу, интенсивно использующую ЦП.