Microsoft Azure — использование ЦП и памяти виртуальных машин Azure в виде одной таблицы
В этой статье вы увидите, как вы можете анализировать производительность вашей виртуальной машины Azure как по использованию ЦП, так и по использованию памяти одновременно, используя запросы к журналу Azure. Эти запросы KQL помогут вам понять производительность всех виртуальных машин Azure в виде таблицы, а также позволят экспортировать данные в файл CSV.
С помощью этих данных вы можете легко проанализировать, какие серверы необходимо изменить для масштабирования (увеличения размера) или масштабирования (уменьшения размера).
Преимущества использования этих запросов KQL:
- Вы можете анализировать виртуальные машины за считанные секунды.
- Легко фильтровать виртуальные машины
- Легко фильтровать данные журнала с помощью условий.
- Легко анализировать производительность между временными диапазонами (например, 7 дней, 15 дней, 2 месяца, 2 часа, 12 часов и т. д.)
- Позволяет нам экспортировать данные в CSV для использования в будущем для прошлой работы.
Реализация:
Шаг 1. Войдите на портал Azure.
Шаг 2. Перейдите в рабочую область Log Analytics >> перейдите в раздел « Общие » в меню слева >> выберите «Журналы ».
Вставьте приведенный ниже запрос KQL, чтобы получить консолидированное использование ЦП и памяти в виде одной таблицы.
Использование ЦП ВМ и использование ПАМЯТИ — на всех компьютерах по типу ОС равно «Windows/Linux» из выбранной области.
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | where Computer in ((Heartbeat | where OSType == "Linux" or OSType == "Windows" | distinct Computer)) | summarize MIN_CPU = min(CounterValue), AVG_CPU = avg(CounterValue), MAX_CPU = max(CounterValue) by Computer | join ( Perf | where ObjectName == "Memory" | where CounterName == "% Used Memory" or CounterName == "% Committed Bytes In Use" | summarize MIN_MEM = min(CounterValue), AVG_MEM = avg(CounterValue), MAX_MEM = max(CounterValue) by Computer ) on Computer | project Computer, MIN_CPU, AVG_CPU, MAX_CPU, MIN_MEM, AVG_MEM, MAX_MEM
Выход:

Примечание. Вы можете загрузить данные таблицы в формате CSV, нажав Экспорт .
Пример 1. Фильтрация решения на основе средней загрузки ЦП более 50 %.
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | where Computer in ((Heartbeat | where OSType == "Linux" or OSType == "Windows" | distinct Computer)) | summarize MIN_CPU = min(CounterValue), AVG_CPU = avg(CounterValue), MAX_CPU = max(CounterValue) by Computer | join ( Perf | where ObjectName == "Memory" | where CounterName == "% Used Memory" or CounterName == "% Committed Bytes In Use" | summarize MIN_MEM = min(CounterValue), AVG_MEM = avg(CounterValue), MAX_MEM = max(CounterValue) by Computer ) on Computer | project Computer, MIN_CPU, AVG_CPU, MAX_CPU, MIN_MEM, AVG_MEM, MAX_MEM | where AVG_CPU > 50
Выход:

Пример 2. Чтобы отфильтровать решение на основе средней загрузки ЦП более 50 % и средней загрузки памяти более 50 %. Пока мы используем и в запросе, условие должно удовлетворять обоим условиям.
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | where Computer in ((Heartbeat | where OSType == "Linux" or OSType == "Windows" | distinct Computer)) | summarize MIN_CPU = min(CounterValue), AVG_CPU = avg(CounterValue), MAX_CPU = max(CounterValue) by Computer | join ( Perf | where ObjectName == "Memory" | where CounterName == "% Used Memory" or CounterName == "% Committed Bytes In Use" | summarize MIN_MEM = min(CounterValue), AVG_MEM = avg(CounterValue), MAX_MEM = max(CounterValue) by Computer ) on Computer | project Computer, MIN_CPU, AVG_CPU, MAX_CPU, MIN_MEM, AVG_MEM, MAX_MEM | where AVG_CPU > 50 and AVG_MEM > 50
Выход:
