Почему ядра процессора нагружаются неравномерно

Обновлено: 07.07.2024

Центральный процессор (ЦП) — это «мозг» вашего ПК. Все основные компоненты системы, такие как графический адаптер и ОЗУ, зависят от инструкций, выполняемых ЦП. Это делает функционирующий надлежащим образом процессор критически важным компонентом каждого игрового ПК.

Когда игра зависает или происходит сбой, открытые приложения перестают реагировать на вводимые команды, или программы открываются с очень медленной скоростью, причиной может быть чрезмерно высокая загрузка процессора. Рассмотрим, как устранить проблемы, связанные с высоким использованием ЦП в Windows* 10.

1. Перезагрузка

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

2. Завершение или перезапуск процессов

Откройте Диспетчер задач (CTRL+SHIFT+ESCAPE). Если программа снова начала использовать процессор даже после перезапуска, Диспетчер задач предоставляет один из самых простых способов наблюдения.

Обратите внимание, что полноэкранные программы, такие как игры, иногда скрывают диспетчер задач за своим окном. Чтобы избежать этого, нажмите «Параметры» в верхней строке меню, затем выберите «Всегда поверх остальных окон». Если у вас есть второй монитор, вы также можете просто перетащить на него окно Диспетчера задач.

Открыв Диспетчер задач, нажмите на вкладку «Процессы» в верхней части окна. Нажмите «Дополнительные сведения» в нижней части этой вкладки, чтобы открыть фоновые процессы Windows. Найдите столбец «ЦП» в верхней части вкладки «Процессы» и нажмите его, чтобы упорядочить содержимое по уровню использования ЦП:

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

Важно помнить, что высокая загрузка процессора при одновременной работе в многозадачном режиме может быть нормальным явлением. Современные процессоры поддерживают многозадачность, разделяя процессы между несколькими своими ядрами, которые работают одновременно с различными наборами команд. Технология Intel® Hyper-Threading (Intel® HT) делает еще один шаг вперед, создавая несколько «потоков» выполнения для каждого ядра, каждый из которых обрабатывает различные процессы Если загрузка ЦП в ресурсоемкой программе, например Adobe Premiere, высока, возможно, нужно просто эффективно использовать доступные ядра процессора.

Эти процессорные технологии могут значительно повысить скорость работы в многозадачном режиме и при использовании ресурсоемких программ, но ситуации с чрезмерной загрузкой ЦП все равно могут возникать. Если вы сталкиваетесь со 100% загрузкой ЦП, а в верхней части столбца ЦП отображается фоновый процесс с именем Runtime Broker, Windows Session Manager или Cortana, значит имеется какая-то проблема.

Эти процессы Windows должны использовать очень мало вычислительной мощности или памяти в обычных условиях. Часто вы видите в Диспетчере задач, что они используют 0% или 1%. Когда компьютер находится в режиме простоя, все эти процессы вместе обычно используют менее 10% ресурсов процессора. Однако странное или нетипичное поведение — например, один процесс Windows, пытающийся выполнить поиск, который был заблокирован в другом месте, иногда может привести к тому, что процесс будет потреблять почти все ресурсы системы.

После открытия Диспетчера задач и обнаружения процесса, использующего существенную часть ресурсов ЦП, выполните поиск в Интернете, чтобы идентифицировать его. Не стоит без веской причины останавливать такие процессы, как например, explorer.exe (который управляет многими графическими элементами, в частности, рабочим столом и меню «Пуск») или winlogon.exe (задачи запуска и экран CTRL+ALT+DEL).

Если же вы определили процесс как некритический (еще раз проверьте, что сохранили свою работу), нажмите на процесс, чтобы выбрать его, затем нажмите «Завершить процесс» в правом нижнем углу Диспетчера задач. Завершение процесса приведет к прекращению работы программы без сохранения.

3. Обновление драйверов

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

Откройте меню «Пуск», затем «Параметры». Нажмите «Обновления и безопасность», затем кнопку «Проверить наличие обновлений». Это приведет к обновлению критически важных драйверов. Производители графических плат также предоставляют утилиты (например, NVIDIA GeForce Experience для графических адаптеров), которые могут повысить общую производительность игр.

Некоторые редкие ошибки также могут быть исправлены путем обновления версии BIOS. BIOS — это встроенное ПО, установленное на системной плате и содержащее инструкции для других компонентов компьютера при запуске. Поскольку обновление BIOS обычно не приводит к повышению производительности (и может вызвать появление новых проблем), это следует делать только в том случае, если вы обнаружили ошибку, которая приводит к увеличению использования ЦП, и нашли обновление BIOS, непосредственно устраняющее эту проблему.

на 30%, видеокарта 40-50%, от чего и начинаются переодические подлагивания в игре, fps падает, ping 40-60, процесс игры запущен на обеих ядрах и вся система в принципе тоже. На винте под игру создан отдельный раздел. Вирусов быть не может, т. к. проверялось все на свежеустановленной винде, а результат тот же. работоспособность с установленным антивирусом проверялась, с ним и без него результат не менялся как и изменение настроек графики в игре на загрузку проца никак не отразилось. даже с пережатыми текстурами результат одинаков.
Короче, перепробовал массу вариантов, одно ядро так и заргужается. Как распределить загрузку равномерно или хотя бы разгрузить 1ое ядро? Процессор рабочий, другие игры идут без проблем. Драйвера все обновлены, операционка Windows 7 х64. Так же пробовал устонавливать типа "игровой софт", но все это лажа. А и еще, от изменения приоритета процесса никаких изменений, вот вроде все, ничего не забыл думаю.
Я уже реально запарился аж бесит. HELP

А почему, думаешь, Intel рулит? Да потому что основная масса программ однопоточная! А у Intel производительность на ядро выше. Вот и весь секрет.
"Как распределить загрузку" - никак.

Можно распределить нагрузку, нужно каждую программу повесить на отдельное ядро

たまごっち Мудрец (16082) Логично, чо. Но, вот у тебя браузер, а вторая программа - это поигруха. распределяй :-)

лагает потому процессор слабый.. все у тебя работает как надо

Это значит, что программа работает в однопоточно (одноядерном) режиме. А второе ядро обробатывет дополнительные процессы, но не основную программу. Смотри настройки проги, возможно там есть функция многоядерности и многопоточности

Вся система и WOT все на обеих ядрах, внимательней читай

Nert Оракул (94140) Именно ты и читай внимательно. Если в системе несколько ядер, это не значит что программы поддерживают многоядерный режим. клиент wot не оптимизирован для работы на многоядерных процах. Поэтому идет неравномерная загрузка ядер. Обычно для правильного распределения наггрузки достаточно воспользоваться CPU controll

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

МУРЗИК КУЗМИН Мудрец (16359) как варинт CPU Control 2.0 но она вроде для intel только! папробуй мож проканает! запускать от имени администратора! да и лучше windows 8 поставь! у меня давно типо такой хрени было поставил windows 8 + cpu control всё норм! даже в wacht dogs cpu control +10 фпс прибавляет! и все ядра равномерно грузяться! смотрел через MSI Afterburner

Да не парься, Wot юзает 1,5 ядра, оптимизации у данной игры под многопоточность попросту нет.
Так что не парься, у самого i5 игра грузит 1 ядро на 90-100% 2 ядро 30-40% а остальные в холостяк работают.

Не сочтите за издевательство, но возьмите интел 5930 и карту 980 и во всех играх всё будет хорошо, а чего Вы хотите от этого железа семилетней давности.

Почему процессор не работает на полную мощность

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

Выясняем причину сниженной мощности

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

Причина 1: Отсутствие нагрузки

Прежде чем грешить на CPU и рассуждать, почему тот не работает на полную, следует посмотреть, есть ли ему нужда задействовать свою мощь в полном объёме. По умолчанию он не обязан использовать всю, даже номинальную частоту, если никакое приложение того не требует. Главный вычислительный элемент при этом «отдыхает» или же находится в режиме простоя, что сохраняет пользователя от чрезмерных трат электроэнергии, ЦПУ не греется лишний раз, чтобы не «мучить» систему охлаждения.

В той ситуации, когда ваш процессор не нагружен, то показатель его частоты может находиться на уровне номинальной заявленной производителем или даже ниже. Например, если процессор обладает базовой скоростью в 3,70 ГГц, это не помешает ему снизить её до 2,50 ГГц и меньше (до минимальных 800 МГц), при отсутствии надобности в более высоких частотах, например, когда CPU не загружен и на 5%.

Проверка производительности в панели управления Диспетчер задач Windows

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

Причина 2: Аппаратная несовместимость

Если же процессор загружен под завязку, но непонятно, почему использует лишь часть своей вычислительной мощности, следует углубиться в настройки системы и подсистемы, будь то BIOS или UEFI.

Первым пунктом станет проверка совместимости вашей материнской платы с CPU. Обычно для этого хватит факта наличия или отсутствия вот такой надписи при загрузке компьютера: «Intel CPU uCode loading error». Именно она будет обозначать, что процессор несовместим с текущей версией BIOS материнской платы. Это не самый критичный сбой и при нём даже можно работать, однако, одним из последствий такой несовместимости может стать то, что процессор не работает на максимальной мощности.

Ошибка intel cpu ucode loading error при включении компьютера

Причина 3: Измененные опции BIOS

Сразу несколько параметров в БИОС могут стать виновниками работы компьютера не на всю мощность.

Пониженная тактовая частота

Возможно, причина недостаточной производительности кроется в выставленных в BIOS заниженных показателей CPU, из-за которых берутся не максимальные частоты. Войдите в БИОС и посмотрите на конфигурацию процессора и его ядер.

Если вы увидите, что настройки переведены в ручной режим, а где-то установлено лимитированным минимальное значение, будь то настройка по отдельным ядрам или всему ЦПУ, значит, именно в этом кроется причина отсутствия работы на полную мощность. Ориентируйтесь на названия типа «CPU Core Ratio» и «Core Ratio Limit» и найдите подобные строчки в своей подсистеме.

Кроме того, если процессор будет находиться под напряжением ниже рекомендуемого для него значения, CPU не сможет работать на высоких частотах. Скорее всего, этот показатель будет называться как-то вроде «CPU Core Voltage». Оба этих параметра в различных BIOS и UEFI можно проверить в одном окне.

Проверка состояния электропитания и частот процессора и ядер в BIOS UEFI

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

Отключённые ядра/режим многопоточности

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

Не стоит забывать и о «Hyper-Threading», иным словом – многопоточности. Отключение этого режима процессора может вызвать значительное снижение производительности, особенно при параллельной работе с несколькими программами. В связи с этим стоит проверить одноимённую строку «Hyper-Threading», и узнать, какое число ядер является активным, то есть «Active Processor Cores».

Проверка состояния режима Hyper-Threading и количества включённых ядер в BIOS UEFI

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

Отключённый Turbo Boost/Core

Выключенный режим «Turbo Boost» у CPU от Intel или «Turbo Core» у AMD не даст процессору достигнуть частоты выше базовой, что довольно обидно, когда вы приобретали модель с возможностью саморазгона, а компьютер работает максимум на номинальной вычислительной мощности. За этот режим ответственная одноимённая строчка или слегка переиначенная, типа «Turbo mode».

Проверка состояния режима Turbo Boost в BIOS UEFI

Причина 4: Пониженное электропотребление

    С помощью функции поиска в меню «Пуск» найдите «Панель управления» и откройте данное приложение.

Открытие системного приложения Панель управления в Windows

Выбор категории Оборудование и звук в Панели Управления Windows

Выбор категории Электропитание в Панели Управления Windows

Выбор Настройки схемы электропитания в Панели Управления Windows

Выбор Изменения допольнительных настроек параметров питания в Панели Управления Windows

Если показатель будет ниже «100%», то процессор физически не сможет работать на полную мощность. Уже на «99%» режим «Turbo Boost» автоматически отключается и максимальная частота становится равной номинальной. Ну а если там указано всего «50%», процессор сможет работать лишь в половину своей мощности в лучшем случае.

В данной статье мы рассмотрели основные причины, почему процессор не работает на полную мощность. Это может быть и банальный простой CPU, исправляющийся самой нагрузкой, но вероятна и аппаратная несовместимость, при которой нужно обновить BIOS. При сбое параметров подсистемы можно просто сбросить настройки до исходных значений, при которых ЦПУ не должно ничего ограничивать.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

У одного из наших клиентов на новых и мощных серверах кластер «1С:Предприятия» демонстрировал низкую производительность, время ожидания пользователей при выполнении рабочих операций превышало все разумные пределы. Быстрый анализ показал периодический дисбаланс нагрузки между физическими процессорами — в отдельные моменты один мог быть загружен на 100 %, второй на 5–10 %. В статье рассказываем, как локализовали и решили эту проблему.

Общая схема работы при устранении проблемы

Забегая вперед, вот действия, которые мы выполняли при диагностировании и устранении проблемы клиента:

  • Проверка платформы и конфигурации «1С:Предприятия».
  • Внесение изменений в настройки платформы.
  • Проверка изменений в производительности.
  • Исследование аппаратного и программного комплекса у клиента.
  • Поиск схожих проблем на имеющемся железе в базах знаний производителей оборудования и в публичных источниках.
  • Внесение изменений в настройки аппаратного обеспечения.

Оптимизируем «1С:Предприятие»

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

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

Стали разбирать инцидент совместно с фирмой «1С» в рамках ИТС КОРП. В результате была выявлена ошибка платформы 30158420, зафиксированная фирмой «1С» еще в ноябре 2017 года, но не исправленная на момент возникновения сложностей у нашего клиента. По итогам переговоров с корпоративной поддержкой «1С» информация об ошибке весной 2018 года была опубликована, а для нашего клиента выпустили внеочередную сборку платформы с исправлением. Вот суть ошибки:

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

В текущий момент ошибка исправлена в актуальных релизах платформы «1С:Предприятие».

ustranyaem_neravnomernuyu_zagruzku-1.jpg

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

ustranyaem_neravnomernuyu_zagruzku-2.jpg

Проверили еще несколько вариантов, приводящих к снижению производительности, в том числе давно известные — про ограничения, описанные в 2015 году о работе платформы «1С» с многопроцессорными системами:

Поддержка NUMA в кластере серверов 1С полноценно пока не реализована. Сервер «1С» не управляет распределением ресурсов по NUMA узлам, полностью полагаясь в этом на операционную систему, что не всегда даёт оптимальный результат. Поэтому при работе на современных многопроцессорных системах Intel и AMD, в зависимости от характера нагрузки, может наблюдаться неравномерная загрузка процессоров/ядер.

Выполнили все рекомендации по оптимизации «1С» для многопроцессорных систем. Однако, к улучшению ситуации это не привело.

Настраиваем серверное окружение

Перешли к проверке системного ПО и аппаратной части вместе с ИТ-отделом заказчика. Система построена на базе двухпроцессорной системы с 32 ядрами, по 16 на процессор.

Поиск и исследование информации о схожих с нашей задачей сложностях, материалов от поставщиков оборудования и серверной ОС дало нам три направления работы:

  1. Механизмы работы операционной системы на многоядерном/многопроцессорном сервере.
  2. Настройка аппаратной части — BIOS сервера.
  3. Ограничение на выполнение приложения одной группой процессоров.

Серверные операционные системы семейства Windows начиная с WinServer2008R2 64bit поддерживают работу с более чем 64 логическими процессорами на одном компьютере. Для того, чтобы это реализовать в ОС используется механизм группировки процессоров (processor group, kernel group, kgroup). Каждая из групп может содержать до 64 логических процессоров и если на сервере менее 64 логических процессоров, то должна создаваться только одна группа с порядковым номером 0. Следуя этой логике на испытуемом сервере должна быть только одна группа (Group 0), что подразумевает более-менее равномерное распределение нагрузки между ядрами наших двух физических CPU.

Проверка аппаратной части дала пищу для размышлений. Во-первых, нашлись кейсы, где наблюдалось падение производительности, похожее на наше, для различных приложений. В этих кейсах проводилось тестирование аналогичных серверов двух вендоров. У вендора, которого использует наш клиент, проблема была. А у иного — нет. Проблему на момент размещения кейса частично решали использованием неофициальной (unpublished) версии BIOS с добавленным в настройки параметром NUMA Group Size Optimizations.

Во-вторых, на сервере клиента использовалась устаревшая версия BIOS, для которого вендором была уже зафиксирована и исправлена ошибка, из-за которой серверные ОС Windows могли использовать только половину или менее логических процессоров определенной линейки Intel Xeon. BIOS был обновлен до актуальной версии. В этой версии BIOS уже штатно присутствует параметр NUMA Group Size Optimization.

ustranyaem_neravnomernuyu_zagruzku-3.jpg

В-третьих, по умолчанию BIOS настроен таким образом, чтобы обеспечивать работу максимального количества логических процессоров в системе. У сервера два процессорных сокета и параметр NUMA Group Size Optimization выставлен в значение Clustered, обеспечивающее работу максимального количества ядер/процессоров. Получается, что настройка BIOS (напомним, что у сервера клиента всего 32 ядра) разбивала имеющиеся ядра/процессоры на 2 kgroup.

Получается, что в платформе «1С:Предприятие» поддержка NUMA пока не реализована и отдается на откуп ОС. ОС объединяет по умолчанию все ядра в количестве менее или равно 64 в одну группу процессоров. А на уровне оборудования выставлена настройка разбивать на несколько групп имеющиеся ядра. Явная нестыковка.

Особенность отслеживания загрузки процессоров в perfmon

Дополнительную сложность в работе принесло использование Performance Monitor Windows. В Perfmonitor есть счетчик в разделе Processor, который должен показывать общую загрузку процессоров на сервере. «1С» рекомендует этот счетчик включать. А вот Microsoft его обозначает как устаревший. При наличии нескольких групп процессоров вместо общей загрузки системы в графики и показатели попадает значение только той группы, на которой исполняется сам Performance Monitor. Ниже скриншоты. На графиках синей линией обозначены некорректные данные только по одной группе процессоров. А красной указано то, как на самом деле должен был выглядеть график. Поэтому для многопроцессорных систем не используйте неправильный счетчик в мониторе производительности.

ustranyaem_neravnomernuyu_zagruzku-4.jpg

Выводы и предупреждение

Итак, у клиента меньше 64 ядер, но BIOS сервера всё равно использовал две процессорные группы и таким образом ограничивал каждый процесс в системе лишь половиной мощностей.

При запуске нескольких процессов кластера «1С» можно было бы ожидать, что они равномерно распределятся между двумя группами, но это не всегда происходило. ОС заточенная под механизмы работы NUMA-архитектуры могла принять решение, что работать с одним процессором быстрее, чтобы использовать память адресованную для этого процессора. Получается, что несколько процессов «1С:Предприятия» оказывалось в одной группе, создавая загрузку на 100%, а вторая группа процессоров в этот момент простаивала. Очередь заданий росла, пользователи чувствовали замедление работы «1С» и выказывали недовольство.

Переключение в BIOS параметра NUMA Group Size Optimization с Clustered на Flat в данном конкретном случае вернуло производительность кластера «1С:Предприятия» на должный уровень. Для пользователей пропали нестерпимые периоды ожидания и работа стала комфортной.

Но не всё так радужно. Платформа «1С:Предприятие» не умеет на момент написания статьи работать с несколькими группами процессоров. Значит, если в сервере будет установлено больше 64 ядер мы окажемся в ловушке — необходимо будет переключить в BIOS параметр NUMA Group Size Optimization в значение Clustered. А это снова вернет нас в исходную ситуацию, когда часть ядер простаивает. Фирма «1С» знает об этой проблеме и прорабатывает необходимые решения.

Отдельно стоит отметить особенности измерения общей загрузки процессора с помощью утилиты perfmon в случае использования групп процессоров, то есть на любом крупном сервере с более чем 64 ядрами.

Мы будем дальше работать над вопросами производительности информационных систем и готовы поделиться знаниями и опытом.

Обращайтесь! Высокой вам производительности и консистентности данных!

Читайте также: