Teres-1t.ru

Инженерные решения
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Оптимизация производительности ЦП в vSphere

Оптимизация производительности ЦП в vSphere

2,5 года назад я написал перевод vSphere 4.1 performance troubleshooting. С тех пор утекло много воды, рекомендации мною так и не были переведены, поэтому исправляюсь: перепечатаю статью нашего спонсора — компании ИТ-Град.

Как быстро идентифицировать проблему, связанную с производительностью процессора, какие метрики в этом случае будут наиболее информативными? На эти и многие другие вопросы, имеющие отношение к производительности CPU в виртуальном окружении vSphere, ответим в этой статье.

Интенсивность потребления процессорных ресурсов зависит от множества факторов и различных условий. Именно поэтому вопрос контроля ресурсоемкости и загруженности CPU должен быть максимально проработанным. Допустим, в окружении vSphere используется слишком большое количество виртуальных машин с запущенными на них высоконагруженными приложениями, это может привести к нехватке процессорных ресурсов. Иногда причиной подобной нехватки становится неэффективное использование или неоптимальная конфигурация виртуальных машин. В любом случае, нехватка ресурсов CPU может привести к серьёзным проблемам с производительностью и сказаться на работе жизненно важных для бизнеса сервисов.

Как запустить монитор производительности

В Windows 10 вы найдете не менее пяти способов доступа к системному монитору. Лично я использую только первый метод, но не стесняйтесь использовать тот, который вам наиболее знаком и удобен.

  • С помощью поиска Windows: Открой Стартовое меню, ищи Монитор производительности, и запустите системный монитор (который должен быть помечен как настольное приложение).
  • С помощью административных инструментов: Открой Панель управления и перейдите к Система и безопасность> Администрирование, затем дважды щелкните ярлык системного монитора.
  • С помощью подсказки «Выполнить»: Использовать Windows ключ + R ярлык для запуска подсказки запуска (один из многих сочетаний клавиш Windows для изучения
    ), затем введите Perfmon и нажмите Хорошо.
  • Через командную строку: Использовать Windows ключ + X ярлык, чтобы открыть меню Power User (одна из многих сверхспособностей Windows для изучения
    ), затем нажмите на Командная строка. В командной строке введите Perfmon и ударил Войти.
  • Через Windows PowerShell: запуск PowerShell используя ваш метод выбора, затем введите Perfmon и ударил Войти. Этот метод наиболее полезен, если вы уже являетесь обычным пользователем PowerShell.
    ,

Когда Performance Monitor запущен, не пугайтесь его не очень дружественного интерфейса. Вот наш пошаговый взгляд на то, что может сделать этот инструмент, который облегчит вам все это.

Поиск проблемных мест стоит начать с использования команды top.

Данная утилита широко используется для анализа программ в режиме реального времени. Набрав в командной строке top, мы сразу же видим динамическую выдачу процессов, которые в данный момент выполняются, спят или ожидают своей очереди. Однако сейчас нас в большей степени интересует самый верх — шапка — вывода команды. Выглядит это следующим образом:

Показатели, на которые стоит обратить внимание, помечены красным цветом, их показатели — зелёным. В данном случае значения были выделены вручную для наглядности.

Более яркий вывод может обеспечить использование htop — это аналог рассматриваемой нами системной утилиты top, но для начала разберёмся с тем, на что стоит обращать внимание в обоих случаях.

Читайте так же:
Инструкция по счетчику стк3

Показатели загруженности системы: load average и %CPU, us, id, wa

1. load average

Состоит из трёх чисел и демонстрирует усреднённую загрузку сервера за 1, 5 и 15 минут. Чем ниже значения, тем лучше.

Простое правило: значения не должны быть больше количества процессоров.

2. %CPU

Какие процессы сколько процессорных ресурсов потребляют:

  • us

Загрузка пользовательскими процессами. Если ваш сервер постоянно не загружен ресурсоёмкими операциями типа конвертации видео, то этот показатель не должен превышать 10-20%.

  • id

Процент времени бездействия процессора должен быть высоким, в норме — от 80.

  • wa

Ожидание операций ввода/вывода, чем ниже, тем лучше (иначе процессор слишком долго ждёт ответы от диска или сети).

Существует целый набор консольных утилит для измерения и анализа производительности системы — sysstat:

  • iostat — показывает статистику использования процессора и потоков ввода/вывода для дисков;
  • mpstat — выводит информацию об отдельных параметрах и общей статистике по процессору;
  • isag — построение графика активности системы в интерактивном режиме;
  • pidstat — мониторинг отдельных задач, управление которыми осуществляется ядром Linux.

Последнюю утилиту стоит рассмотреть подробнее. Для её использования мы сможем применить информацию, полученную с помощью предыдущей программы — top.

Pidstat — это утилита, которая предназначена для сбора и вывода статистики использования ресурсов процессами.

Команда сообщает об использовании процессорного времени. Мы используем её с флагом (что означает, сейчас мы будет указывать PID):

PID необходимого процесса вы можете посмотреть в результатах вывода той же команды top: первый столбец сообщается process id (мы указали PID 611 и 1102).

Таким образом мы узнаём количество выделяемых ресурсов процессам с определённым идентификационным номером в системе.

После необходимо указать время в секундах, в течение которого будет осуществляться проверка (в данном случае это 10 секунд). Вы можете задавать время на своё усмотрение в зависимости от задач, которые предстоит решить.

В завершение указываем число отчётов, которые желаем видеть по итогу.

При помощи флага -d можно получить статистику ввода/ вывода (остальные показатели остались неизменными):

При помощи флага -r можно получить статистику использования оперативной памяти:

Метрики производительности для задач классификации

Мы обсуждали классификацию и ее алгоритмы в предыдущих главах. Здесь мы собираемся обсудить различные метрики производительности, которые можно использовать для оценки прогнозов для задач классификации.

Матрица путаницы

Это самый простой способ измерить производительность задачи классификации, когда выходные данные могут быть двух или более типов классов. Матрица путаницы — это не что иное, как таблица с двумя измерениями, а именно. «Фактические» и «Предсказанные», и, кроме того, оба измерения имеют «Истинные позитивы (TP)», «Истинные негативы (TN)», «Ложные позитивы (FP)», «Ложные негативы (FN)», как показано ниже —

Фактические и прогнозируемые

Пояснения терминов, связанных с матрицей путаницы, следующие:

True Positives (TP) — это тот случай, когда фактический класс и прогнозируемый класс точки данных равны 1.

True Negatives (TN) — это тот случай, когда фактический класс и прогнозируемый класс точки данных равны 0.

Читайте так же:
Кухонные весы со счетчиком калорий что это такое

Ложные срабатывания (FP) — это тот случай, когда фактический класс точки данных равен 0, а прогнозируемый класс точки данных равен 1.

False Negatives (FN) — это тот случай, когда фактический класс точки данных равен 1, а прогнозируемый класс точки данных равен 0.

True Positives (TP) — это тот случай, когда фактический класс и прогнозируемый класс точки данных равны 1.

True Negatives (TN) — это тот случай, когда фактический класс и прогнозируемый класс точки данных равны 0.

Ложные срабатывания (FP) — это тот случай, когда фактический класс точки данных равен 0, а прогнозируемый класс точки данных равен 1.

False Negatives (FN) — это тот случай, когда фактический класс точки данных равен 1, а прогнозируемый класс точки данных равен 0.

Мы можем использовать функцию confusion_matrix в sklearn.metrics для вычисления Confusion Matrix нашей модели классификации.

Точность классификации

Это наиболее распространенная метрика производительности для алгоритмов классификации. Это может быть определено как число правильных прогнозов, сделанных как отношение всех сделанных прогнозов. Мы можем легко рассчитать его по матрице путаницы с помощью следующей формулы —

Т о ч н о с т ь = г и д р о р а з р ы в а T P + T N T P + F P + F N + T N

Мы можем использовать функцию precision_score sklearn.metrics, чтобы вычислить точность нашей модели классификации.

Классификационный отчет

Этот отчет состоит из оценок Точности, Напомним, F1 и Поддержки. Они объясняются следующим образом —

точность

Точность, используемая при поиске документов, может быть определена как количество правильных документов, возвращаемых нашей моделью ML. Мы можем легко рассчитать его по матрице путаницы с помощью следующей формулы —

Т о ч н о с т ь = г и д р о р а з р ы в а T P T P + F N

Напомним или Чувствительность

Отзыв может быть определен как число положительных результатов, возвращаемых нашей моделью ML. Мы можем легко вычислить его по матрице смешения с помощью следующей формулы.

Н а п о м н и м = г и д р о р а з р ы в а T P T P + F N

специфичность

Специфичность, в отличие от напоминания, может быть определена как количество негативов, возвращаемых нашей моделью ML. Мы можем легко рассчитать его по матрице путаницы с помощью следующей формулы —

Служба поддержки

Поддержка может быть определена как количество выборок истинного ответа, который лежит в каждом классе целевых значений.

Счет F1

Эта оценка даст нам гармоничное среднее точность и отзыв. Математически, оценка F1 — средневзвешенное значение точности и отзыва. Наилучшее значение F1 будет равно 1, а худшее — 0. Мы можем рассчитать показатель F1 с помощью следующей формулы:

F 1 = 2 ∗ ( т о ч н о с т ь ∗ в ы з о в ) / ( т о ч н о с т ь + о т з ы в )

Счет F1 имеет равный относительный вклад точности и отзыва.

Читайте так же:
Счетчик со 505 описание

Мы можем использовать функциюification_report в sklearn.metrics, чтобы получить отчет о классификации нашей модели классификации.

AUC (площадь под кривой ROC)

AUC (область под кривой) -ROC (рабочая характеристика приемника) — это показатель производительности, основанный на различных пороговых значениях, для задач классификации. Как следует из названия, ROC — это кривая вероятности, а AUC измеряет отделимость. Проще говоря, метрика AUC-ROC расскажет нам о способности модели различать классы. Чем выше AUC, тем лучше модель.

Математически это может быть создано путем построения графика TPR (True Positive Rate), т. Е. Чувствительности или отзыва по сравнению с FPR (False Positive Rate), т.е. 1-специфичность, при различных пороговых значениях. Ниже приведен график, показывающий ROC, AUC, имеющий TPR на оси Y и FPR на оси X —

Площадь под кривой

Мы можем использовать функцию roc_auc_score sklearn.metrics для вычисления AUC-ROC.

LOGLOSS (логарифмическая потеря)

Это также называется потерей логистической регрессии или потерей перекрестной энтропии. Он в основном определяется по оценкам вероятности и измеряет эффективность модели классификации, где входными данными является значение вероятности в диапазоне от 0 до 1. Это можно понять более четко, дифференцируя его с точностью. Поскольку мы знаем, что точность — это количество прогнозов (прогнозируемое значение = фактическое значение) в нашей модели, тогда как Log Loss — это количество неопределенности нашего прогноза, основанное на том, насколько оно отличается от фактической метки. С помощью значения Log Loss мы можем получить более точное представление о производительности нашей модели. Мы можем использовать функцию log_loss sklearn.metrics, чтобы вычислить Log Loss.

Ниже приведен простой рецепт в Python, который даст нам представление о том, как мы можем использовать вышеописанные метрики производительности в бинарной модели классификации.

«На зарядку!» или классификация пороговых значений

Для дифференцирования состояния аккумулятора, контроллер, управляющий процессом зарядки, использует два пороговых значения.

  1. Weak Battery Threshold задает границу между состояниями Good Battery и Weak Battery.
  2. Dead Battery Threshold задает границу между состояниями Weak Battery и Dead Battery.

Численные значения данных порогов, выраженные в напряжениях на зажимах батареи, зависят от модели батареи и не оговариваются спецификацией.

Каким образом определить скорость Интернета

Перечень сетевых ресурсов для тестирования компьютера был бы не полон без разнообразных сервисов для проверки скорости Интернета.

В числе их рекомендуем следующие альтернативы:

  • Speedtest.net – популярный во всём мире тест скорости Интернета;
  • Fast.com – ещё один удобный сервис;
  • Yandex.ru/internet – измеритель от Яндекса;
  • Testskorosti.ru – отечественный тест скорости онлайн.

О важности и влиянии кэш-памяти процессора на его производительность

Перед началом основной беседы о важности объема кэш-памяти у процессоров остановлюсь на криптовалюте Raptoreum, которая, собственно, и подтолкнула меня написать этот блог. Кто хочет узнать, что ожидает всех майнеров и геймеров в следующем году, когда появятся видеокарты на рынке, вероятный прогноз развития событий можно найти здесь.

реклама

А теперь о Raptoreum. Важно! Не поддавайтесь на провокации, относительно этой криптовалюты, которая добывается на мощностях кэш-памяти центральных процессоров! Чем больше кэш-память второго и любого последующего уровня (при его наличии), тем быстрее происходят расчёты, результатом которых является условный доход. Так как сейчас на рынке именно у процессоров AMD самый «жирный» кэш, то наличие их на полках магазинов и соответственно рекомендованной стоимости этих процессоров под угрозой со стороны новой криптовалюты. Под удар могут попасть старейшие модели AMD Ryzen и все Threadripper.

Читайте так же:
Epson 355 сброс счетчика памперса

А теперь поговорим о кэш-памяти процессора. При решении задач процессор получает из оперативной памяти необходимые блоки информации, обработав их, он записывает в память результаты вычислений и получает для обработки следующие блоки. Этот процесс продолжается, пока задача не будет на 100% выполнена.

Все эти операции производятся на очень высоких скоростях, от десятков гигабайт в секунду у процессоров 20-ти летней давности, до сотен гигабайт в секунду у современных процессоров. Все это время процессор обменивается данными с оперативной памятью, которая работает в разы медленнее самого процессора. Каждое считывание из нее и обратная запись информации в неё отнимают уйму времени.

реклама

Несмотря на такой дисбаланс, процессор не простаивает в ожидании очередной порции данных из оперативной памяти, так как эти данные подгружаются в его кэш-память.

Кэш-память процессора – это небольшая по объему, но супербыстрая оперативная память. Она встроена в процессор и является своеобразным буфером, при обмене CPU данными с медленной оперативной памятью, а в современных реалиях еще и с NVME SSD и видеокартой.

В большинстве процессоров используется многоуровневая система кэша:

реклама

• Кэш-память первого уровня или L1 – самая маленькая, но и самая быстрая область кэш-памяти. Её объем не превышает пару десятков килобайт. Работает L1 без каких-либо задержек. В нем содержатся данные, которые чаще всего используются процессором.

• Кэш-память второго уровня (L2) чуть медленнее кэш-памяти L1, но и объем ее в современных процессорах измеряется уже в мегабайтах. Служит она для временного хранения важных данных, вероятность запроса которых ниже, чем у данных, находящихся в L1 кэше.

• Кэш-память третьего уровня (L3) – еще более объемная и еще более медленная. Но она все равно быстрее любой оперативной памяти, даже новой DDR5. Со скоростями в несколько сотен гигабайт в секунду пока еще приходится считаться. Ее размер в современных процессорах в мейнстрим сегменте достигает нескольких десятков мегабайт, а в серверных AMD Epyc счет пошел уже на сотни мегабайт. В отличие от L1 и L2, кэш третьего уровня является общим для всех ядер процессора.

L3 кэш служит для временного хранения важной информации с относительно низкой вероятностью запроса, а также для обеспечения обменом данными между ядрами процессора.

реклама

А теперь небольшой экскурс в развитие и эволюцию кэш-памяти. Если за отправную точку взять Pentium 1, то кэша L2 у него не было. L1 был объёмом 32 Кб. L2 как правило распаивался на материнской плате. Когда появился Pentium II, то L2 сразу стал равным 512 Кб, но он располагался рядом с ядром процессора на отдельной микросхеме и имел низкую скорость, но все равно это лучше, чем ничего.

Читайте так же:
Как обнулить счетчик картриджа hp 121

Pentium-III с Socket 370 имел уже половину объема от Pentium II – 256 Кб, но зато этот кэш был быстрее, так как он был интегрирован в кристалл процессора. Pentium 4 вначале удвоил этот объём до 512 Кб, так называемый Nothwood, а последовавшее за ним ядро Prescott довел L2 до 1 Мб. Это уже объём дней сегодняшних.

Во времена Pentium 4 случилось еще одно важное событие: у Pentium 4 Extreme Edition впервые появился L3 кэш. До этого момента в десктопах такого явления не было. Объем L3 равнялся «жирным» 2 мегабайтам, что положительно влияло на производительность и цену процессора.

После смены с 478 на 775 контактов без ножек, первые “новые” Pentium с ядрами Prescott-2M и Cedar Mill увеличили L2 до 2-х мегабайт, а L1 так и оставался в пределах 32 Кб.

Микроархитектура Core2 и Core2 Quad значительно увеличили объемы кэшей. Так, объем L2 кэша уже варьировался от 4 до 12 Мб, но эти цифры нужно поделить на два, из особенности организации кэша, так как группы ядер по факту взаимодействовали только с половиной этого объема, но суммарный объем был именно таким.

Микроархитектура Sandy Bridge поделила процессоры на различные линейки в зависимости от объема L2 кэша. В этот момент времени, именно объем кэш-памяти начинает решать главенствующую роль в позиционировании и производительности процессоров.

Так, i5-2500К отличался от i7-2600K только объемом кэша. И надо отметить, речь уже идет о L3 кэше, который начинает появляться уже повсеместно. В первом случае L3 = 6 Мб, во втором 8 Мб. L2 у обеих моделей равнялся 256 Кб на одно ядро, а L1 был равен по-прежнему 32 Кб.

Далее происходит рост L3 у последующих поколений. У i9-9900K он уже равен 16 Мб. Параллельно развивается HEDT линейка процессоров Intel, где L3 уже достигает 24.5 Мб. Но дальнейшее развитие всей процессорной архитектуры меняют процессоры AMD с микроархитектурой ZEN и производные от них. Стартовало первое поколение AMD Ryzen c L2 = 512 Кб и L3 = 8 Мб, а на сегодняшний день топовый Ryzen Gen3 уже обладает 64 Мб L3 кэша. Недавний анонс новых серверных процессоров AMD Epyс вообще увеличил объем L3 до астрономических 768 Мб.

Таким образом, система кэшей процессора позволяет частично уйти от зависимости от низкой производительности оперативной памяти, ведь процесс развития процессоров и скорости их кэшей намного опережает скорость оперативной памяти. Важно отметить и тот факт, что чем больше кэша у процессора, тем выше его производительность.

Поэтому при выборе того или иного процессора, обращайте внимание на объем L3 кэша процессора. Возможно, в будущем, объемы порядка пары гигабайт L3 кэша станут нормой, но а пока следим за стоимостью AMD Ryzen, в зависимости от популярности Raptoreum. Надеюсь, этот блог оказался для вас полезным.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector