Мой процессор на 100%, что я могу с этим поделать?

Опубликовано: 25 Апреля, 2023


Мощность процессора и серверы терминалов


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


Основными причинами этого дефицита являются изменчивая доступность ресурсов ЦП и непредсказуемое использование ЦП различными приложениями.


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


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


Сбор информации


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



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

Также рекомендуется регулярно собирать одни и те же счетчики производительности для анализа тенденций. Советую следить за следующими счетчиками производительности:



  • Процессор: процессорное время %
  • Система: длина очереди процессора
  • Память: страниц/сек
  • Память: % выделенных байтов в использовании
  • Сетевой интерфейс: всего байт/сек
  • Физический диск: % дискового времени
  • Физический диск: средняя текущая длина очереди диска
  • Файл подкачки: % использования

Как только ваш сервер действительно испытывает высокую загрузку ЦП, вы должны следить за счетчиками производительности. Вы должны детализировать свои действия по мониторингу для других счетчиков производительности, таких как:



  • Физический диск: % времени чтения
  • Физический диск: % времени записи
  • Физический диск: Текущая длина очереди диска
  • Файл подкачки: % пикового использования
  • Процессор: % времени прерывания
  • Процессор: % пользовательского времени
  • Сетевой интерфейс: получено байт/сек
  • Сетевой интерфейс: отправка байт/сек
  • Память: Ошибок страниц/сек
  • Память: чтение страниц/сек
  • Память: Страниц пишет/сек
  • Процесс: % процессорного времени
  • Тема: % процессорного времени

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


Анализ счетчиков производительности


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


Единый уровень приложения


Одной из причин является одно приложение, которое потребляет слишком много ресурсов ЦП. Основной причиной этого, вероятно, будет плохо написанный код для использования на терминальном сервере. Часто такие приложения требуют ресурсов ЦП и не освобождают их после завершения задачи; или конкретная задача потребляет все ресурсы ЦП в течение длительного времени, не давая другим потокам возможности использовать часть мощности ЦП. Если это поведение присутствует, счетчики Процессор: % процессорного времени, Система: Длина очереди процессора, Процесс: % процессорного времени и Поток: % процессорного времени будут показывать высокие значения.


Несколько уровней приложений


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


Уровень ресурса


При анализе данных о производительности может наблюдаться тенденция к тому, что большее количество ресурсов показывает высокие значения, такие как счетчики Файл подкачки: % использования, Память: ошибок страниц/сек, Физический диск: % дискового времени и сопоставимые счетчики. В этой ситуации существует вероятность того, что другой аппаратный ресурс перегружен, в результате чего ЦП поднимается до высокого значения. В этом случае вы должны проанализировать, какой компонент также имеет высокую ценность, и попытаться выяснить, почему этот ресурс перегружен.


Слишком много пользователей


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


Слишком много приложений


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


Настройка решения


После анализа данных и некоторых выводов следующим шагом будет настройка решения. Логически решение зависит от сделанных выводов.


Добавление дополнительного оборудования


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


Добавление дополнительных терминальных серверов


Добавление дополнительных серверов терминалов в вашу среду также может увеличить мощность ЦП. Разделение пользователей по большему количеству серверов автоматически подразумевает больше ресурсов, доступных для каждого пользователя. Чем больше терминальных серверов в вашей инфраструктуре, тем больше административных задач. Все на сервере нуждается в некотором администрировании и мониторинге. Кроме того, бюджет должен быть доступен для покупки дополнительного оборудования. Это решение можно использовать для уровня ресурсов и выводов на уровне слишком многих пользователей.


Представляем концепцию бункера


Концепция разрозненности — это хорошо известная концепция решения конфликтов приложений. Приложения, о которых известно, что они вызывают конфликты, размещаются на специальных терминальных серверах. На этом терминальном сервере установлено только это приложение (или небольшой набор приложений). Благодаря этому разделению наиболее часто используемые (обычные) приложения не страдают от влияния этих «плохих» приложений. Для этого решения также необходимо приобрести дополнительное оборудование, тем самым добавляя дополнительные административные обязанности для ИТ-отдела. Эту концепцию можно использовать для уровня отдельного приложения; множественный уровень приложений и слишком много выводов на уровне приложений.


Инструменты управления производительностью


Все вышеупомянутые решения так или иначе используют дополнительное оборудование. Вы также можете использовать программное решение для устранения такого поведения. Эти так называемые инструменты управления эффективностью можно разделить на две группы. Первая группа продуктов использует метод приоритета в Windows. С помощью нескольких средств (алгоритмы, фиксированное значение) продукты определяют, какие процессы должны иметь более низкий приоритет. Продукты, которые работают таким образом, это RES Powerfuse и Max-IT. Вторая группа использует так называемый зажим ЦП. При ограничении ЦП продукт обнаруживает, когда превышено указанное использование ЦП, и, контролируя таким образом все потоки, загрузка ЦП немедленно снижается ниже этого значения. Еще один способ работы этих продуктов — установка максимального использования ЦП для каждого потока. Хорошо известными продуктами являются Appsense Performance Suite, Relevos и Threadmaster от WMSoftware.


Вывод


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