Как уменьшить количество ядер процессора
Современные центральные процессоры (ЦП) обладают несколькими ядрами или, как их ещё называют, физическим процессорами (ФП). Операционные системы (ОС), под управлением которых работают персональные компьютеры (ПК) могут использовать несколько ФП для оптимизации мультизадачности. Проще говоря, каждое приложение может выполняться на каком-то одном ядре одновременно с другими приложениями на других ядрах. Число ядер, таким образом, существенно влияет на быстродействие системы в целом.
Иногда вследствие использования различных режимов экономии энергии или повышения времени автономной работы ПК некоторые ФП могут быть отключены и в дальнейшем системой не задействованы. Всё это может приводить к уменьшению быстродействия ПК в целом.
Рассмотрим, как включить второе (третье, четвёртое и т.д.) ядро процессора.
В операционной системе Виндовс можно посмотреть количество работающих ядер можно двумя способами:
- с помощью диспетчера устройств;
- во вкладке «Быстродействие» диспетчера задач.
В первом случае мы можем увидеть количество логических процессоров (ЛП). Если используется технология HyperTreading, то число физических будет в два раза меньше.
Во втором случае число хронологий загрузки также будет равно числу ЛП.
Следует понимать, что максимальное значение количества используемых физических процессоров может отличаться от задействованных в настоящее время.
Узнать это значение средствами ОС, доступными пользователям по умолчанию не представляется возможным. Для этого существуют сторонние программы, например, CPU-Z или AIDA. Первая показывает число работающих ФП и их максимально возможное количество на своей основной панели. Чтобы увидеть эту же информацию в программе AIDA, следует в ней зайти во вкладку «ЦП».
Запуск и отключение ядер процессора
Надёжнее всего осуществлять запуск или отключения ФП при помощи настроек BIOS. Способ этот хорош тем, что он в 100% случаев гарантирует их включение или отключение, но, самое главное – делает это перед загрузкой ОС, что в случае установок «по умолчанию» заставит её использовать все имеющиеся в наличии ФП.
К сожалению, единой инструкции, как это можно сделать, не существует, поскольку опции включения дополнительных компонентов ЦП в BIOS от разных производителей может быть где угодно.
Чаще всего раздел, в котором указывается количество работающих ФП, называется «CPU Settings», а искомый параметр имеет имя «Number of cores», «Cores activated» и тому подобное. Необходимо в него записать максимально возможное значение, которое позволит система, и выйти из BIOS, выбрав опцию «Save settings and exit».
Всем привет! Процессор i7 2600, материнка Gigabyte P67A-UD5,ОС 7 про. Проблема. Система работает нестабильно и часто уходит в синий экран и потом сама перезагружается. Причем при нагрузке работает более стабильно, а без нагрузки при открытии другого сайта, слетает. Знакомые посоветовали убрать в БИОСе функцию гипертрейдинг, убрал, но ничего не изменилось. Тогда я через msconfig сделал не 8 потоков, а 4 потока. И система стала работать стабильнее, за день только один раз перезагрузилась. Но утилита СPUZ и AIDA64 стали отображать 2 ядра и 4 потока, а не как раньше 4 ядра и 8 потоков. Процессор превратился из 4-х ядерного в 2-х ядерный. Вопрос к знатокам (я чайник), намного ли уменьшилась производительность этого процессора для игр? Для серфинга в интернете я разницы не уловил, в играх вроде тоже. Но это "На глаз",а на самом деле? Подскажите кто разбирается. Заранее спасибо за ваши ответы.
Память стоит DDR3 1333MHz 4Gb(2x2). Менял разные комплекты памяти, но эффекта нет. Подозреваю что сам проц глючной, но как это определить, если он может работать два часа без сбоев, а потом через каждые 5-10 мин. вырубается, причем переставлял его на 3 разные материнки и ведет себя он одинаково.
Нужно заметить какие конкретно синие экраны вылазят на них сверху код ошибки указывается и возможно указание на источник ошибки за ними кроется и решение проблемы. У меня у самого Ай7 2600 ни каких проблем ни с гипертрейдингом ни с виртуализацией, но были тоже синие эраны по ним и уличил косячный драйвер уже не помню от чего который в итоге обновил и дальше без проблем. Виндовс 64 битки очень часто преследуют проблемы, совместимости драйверов и прочего. Процессоры 2600 бывают как под 1155 так и по 1156 соккет может и в этом еще причина.
такого не должно быть, это не нормально.
проблема значит либо в перегреве какой-либо части, либо что-то с оперативкой.
может сам камень битый.
но такого что "слишком мощный процессор и его надо притормозить" такого не бывает в принципе.
От количества ядер процессора зависеть это не должно. Хотелось бы конечно видеть код ошибки с синего экрана. Появление синего экрана может говорить лишь о неисправности железа или о неподходящем драйвере какого-то устройства. p.s. А биос верните к установкам по-умолчанию.
производительность упала пополам для начало верни все назат и попробуй поставь семафора не про а максималку
Производительность в играх может уменьшиться, например в GTA, она требует многоядерности.
В других я думаю разницы ты не заметишь intel i7 итак достаточно мощный.
Но мне кажется проблема вообще не в процессоре, а в чипсете.
Биос ковыряй.
" Система работает нестабильно и часто уходит в синий экран и потом сама перезагружается". проблема в не процессоре, а в ОЗУ. вероятно стоят разные модули памяти, и из-за этого их конфликт ( синий экран и потом сама перезагружается). На глаз разницу тяжело увидеть-в связи с высокой производительностью i7.
На сегодняшний день работой процессора с 1-2 ядрами никого не удивить. Более того, такие системы не являются пригодными для большинства современных задач. Поэтому в дело вступают чипы уже с 6-8 ядрами для домашнего и офисного использования. В операционной системе Windows 10 предусмотрена опция включения и отключения определенного количества ядер процессора.
С одной стороны, это позволяет экономить ресурсы компьютера, а с другой – увеличить вычислительную мощность при необходимости. Знание того, как изменить количество ядер процессора, помогает пользователю рационально пользоваться ресурсами компьютера. Тем более, что многопоточность нужна далеко не для всех программ, и для экономии ресурсов ее можно отключить.
Другие причины неверной трактовки термина «загрузка процессора»
Процессор может выполнять свою работу медленнее не только из-за потерь времени на ожидание данных из ОЗУ. Другими факторами могут быть:
- Перепады температуры процессора
- Вариирование частоты процессора технологией Turboboost
- Вариирование частоты процессора ядром ОС
- Проблема усреднённых расчётов: 80% средней загрузки на периоде измерений в минуту могут не быть катастрофой, но могут и прятать в себе скачки до 100%
- Спин-локи: процессор загружен выполнением инструкций и имеет высокий IPC, но на самом деле приложение стоит в спин-локах и не выполняет реальной работы
Интерпретация данных и реагирование
Если у вас IPC > 1.0, то ваше приложение страдает не столько от ожидания данных, сколько от чрезмерного количества выполняемых инструкций. Ищите более эффективные алгоритмы, не делайте ненужной работы, кэшируйте результаты повторяемых операций. Применение инструментов построения и анализа Flame Graphs может быть отличным способом разобраться в ситуации. С аппаратной точки зрения вы можете использовать более быстрые процессоры и увеличить количество ядер.
Как вы видите, я провёл черту по значению IPC равному 1.0. Откуда я взял это число? Я рассчитал его для своей платформы, а вы, если не доверяете моей оценке, можете рассчитать его для своей. Для этого напишите два приложения: одно должно загружать процессор на 100% потоком выполнения инструкций (без активного обращения к большим блокам оперативной памяти), а второе должно наоборот активно манипулировать данным в ОЗУ, избегая тяжелых вычислений. Замерьте IPC для каждого из них и возьмите среднее. Это и будет примерная переломная точка для вашей архитектуры.
Как узнать сколько ядер у процессора
Чтобы понимать, какое количество ядер можно включить или выключить в ОС Windows 10, нужно знать, сколько ядер физически есть у процессора пользователя. Сделать это можно несколькими способами:
- в описании процессора;
- в Windows 10;
- с помощью программ.
Чтобы узнать сколько ядер у процессора, достаточно определить его модель. После этого в Интернете можно легко найти технические характеристики представленной модели чипа. Специалисты в области программирования и системного администрирования компьютерных систем рекомендуют обращаться к официальным источникам и сайтам компаний, производителей центральных процессоров (далее ЦП).
Существует более простой вариант: можно определить количество ядер процессора в диспетчере устройств Windows. Для этого нужно выполнить следующие простые шаги: в строке поиска или меню Пуск прописать Диспетчер устройств и в открывшемся меню нажать выпадающий список Процессор. Количество позиций в этом меню равняется количеству ядер процессора.
Определить количество ядер ЦП также можно с помощью специализированного ПО. Для этих целей программы CPU-Z и AIDA. Они анализируют и подробно раскрывают технические характеристики не только процессора, но и всей системы персонального компьютера. Поэтому такими инструментами часто пользуются системные администраторы и сервисные специалисты по исправлению программных и аппаратных неполадок устройства.
Как же понять, чем на самом деле занят процессор
Используя аппаратные счетчики производительности. В Linux они могут быть прочитаны с помощью perf и других аналогичных инструментов. Вот, например, замер производительности всей системы в течении 10 секунд:
Ключевая метрика здесь это "количество инструкций за такт" (insns per cycle: IPC), которое показывает, сколько инструкций в среднем выполнил процессор на каждый свой такт. Упрощённо: чем больше это число, тем лучше. В примере выше это число равно 0.78, что, на первый взгляд кажется не таким уж плохим результатом (78% времени выполнялась полезная работа?). Но нет, на этом процессоре максимально возможным значением IPC могло бы быть 4.0 (это связано со способом получения и выполнения инструкций современными процессорами). То есть наше значение IPC (равное 0.78) составляет всего 19.5% от максимально возможной скорости выполнения инструкций. А в процессорах Intel начиная со Skylake максимальное значение IPC уже равно 5.0.
В облаках
Когда вы работаете в виртуальном окружении, то можете и не иметь доступа к реальным счетчикам производительности (это зависит от используемого гипервизора и его настроек). Вот статья о том, как это работает в Amazon EC2.
Что же такое загрузка процессора на самом деле?
Та метрика, которую мы называем «загрузкой процессора» на самом деле означает нечто вроде «время не-простоя»: то есть это то количество времени, которое процессор провёл во всех потоках кроме специального «Idle»-потока. Ядро вашей операционной системы (какой бы она ни была) измеряет это количество времени при переключениях контекста между потоками исполнения. Если произошло переключение потока выполнения команд на не-idle поток, который проработал 100 милисекунд, то ядро операционки считает это время, как время, потраченное CPU на выполнение реальной работы в данном потоке.
Эта метрика впервые появилась в таком виде одновременно с появлением операционных систем с разделением времени. Руководство программиста для компьютера в лунном модуле корабля «Апполон» (передовая на тот момент система с разделением времени) называла свой idle-поток специальным именем «DUMMY JOB» и инженеры сравнивали количество команд, выполняемых этим потоком с количеством команд, выполняемых рабочими потоками — это давало им понимание загрузки процессора.
Так что в этом подходе плохого?
Сегодня процессоры стали значительно быстрее, чем оперативная память, а ожидание данных стало занимать львиную долю того времени, которое мы привыкли называть «временем работы CPU». Когда вы видите высокий процент использования CPU в выводе команды top, то можете решить, что узким местом является процессор (железка на материнской плате под радиатором и кулером), хотя на самом деле это будет совсем другое устройство — банки оперативной памяти.
Ситуация даже ухудшается со временем. Долгое время производителям процессоров удавалось наращивать скорость их ядер быстрее, чем производители памяти увеличивали скорость доступа к ней и уменьшали задержки. Где-то в 2005-ом году на рынке появились процессоры с частотой 3 Гц и производители сконцентрировались на увеличении количества ядер, гипертрейдинге, много-сокетных конфигурациях — и всё это поставило ещё большие требования по скорости обмена данных! Производители процессоров попробовали как-то решить проблему увеличением размера процессорных кэшей, более быстрыми шинами и т.д. Это, конечно, немного помогло, но не переломило ситуацию кардинально. Мы уже ждём память большую часть времени «загрузки процессора» и ситуация лишь ухудшается.
И так, как же добиться такой фичи?
Для начала в реестр необходимо добавить следующие ключи
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
"Attributes"=dword:00000000
После этого идем в
Панель управления -> Электропитание -> Настройка плана электропитания -> Изменить дополнительные параметры питания -> Управление питанием процессора
- Минимальное число ядер в состоянии простоя (Processor performance core parking min cores) — Установить 25% для четырех ядерного процессора (одно ядро) — или 50% для двух ядерного процессора.
- Разрешить состояния снижения питания (Allow Throttle States) – Включить.
- Отключение простоя процессора (Processor idle disable) — Включить состояние простоя.
- Переопределение ядра приостановки ядра производительности процессора (Processor performance core parking core override) – Отключено.
- Максимальное число ядер в состоянии простоя (Processor performance core parking max cores) — Установить 100% (использовать все ядра)
После применения новых параметров можно смело идти в «мониторинг ресурсов» и любоваться тем, что большая часть ядер отключена
Вот собственно и все. Мы получили политику использования ядер «пока нам хватает одного ядра (или сколько вы там укажите) — используем одно ядро», экономим батарейку, а еще и система стала более отзывчивой.
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.
Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:
А на самом деле это выглядит вот так:
«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Что это означает для вас? Понимание того, какое количество времени процессор действительно выполняет некоторые операции, а какое — лишь ожидает данные, иногда даёт возможность изменить ваш код, уменьшив обмен данных с оперативной памятью. Это особенно актуально в нынешних реалиях облачных платформ, где политики автоматического масштабирования иногда напрямую завязаны на загрузку CPU, а значит каждый лишний такт «холостой» работы стоит нам вполне реальных денег.
Как регулировать количество загружаемых ядер процессора в BIOS
Внимание! Настраивать загрузку ядер процессора в BIOS компьютера допускается лишь в том случае, когда настройки «слетели» в основной операционной системе. В обычном случае ядра ЦП лучше загружать в автоматическом режиме. Чтобы выбрать ручной режим нужно зайти в BIOS- Advanced Clock Calibration. В зависимости от контекста установить в этом разделе показатели Auto (загружать количество ядер автоматически) или All Cores (все ядра).
Здравствуй, хабра-человек.
Как известно, Microsoft очень хорошо потрудилась над своим последним детищем по имени Windows 7 и внесла много различных нововведений, об одном из которых я и хочу рассказать. Особенно актуально, я думаю, это будет для владельцев ноутбуков и нетбуков, но и пользователи настольных систем так же могут получить профит.
Как известно, самое большое новшество в «семерке» (после GUI) — это переработанная подсистема ACPI. Тут и нормальная поддержка многоядерных систем, и управление питанием устройств, мониторинга аппаратных средств, да и много чего еще, но одна очень интересная возможность остается за кадром — речь идет об энергопотреблении и управлении ядрами многоядерных/многопроцессорных систем.
Windows 7 позволяет управлять электропитанием процессоров, а так же назначать политики активности/простоя ядер.
При работе на многоядерных процессорах производится постоянная ротация потоков между ядрами и система переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер, но и не менее равномерное энергопотребление, приводит к потере производительности и повышению энергопотребления, а это сказывается в первую очередь на сроке работы от аккумулятора. Сегодня я попытаюсь «восстановить справедливость» штатными средствами ОС.
В Windows 7 и Windows 2008 R2, была реализована функция «Processor performance core parking» или по нашему — «Система парковки ядра», которая оставляет выполнение процесса на том ядре, на котором он начался, до полного его завершения. Такой подход позволяет получить более динамичную систему и значительно снизить потребление энергии.
В отличии от штатного режима работы, когда процессы постоянно переносятся с одного ядра на другое, равномерно загружая ЦП, Система парковки позволяет подключать ядра по мере необходимости, стараясь сложить все задачи на минимальное количество ядер (в идеале на одно).
Пример: На четырех-ядерном процессоре в период простоя будет использоваться только одно ядро, остальные будут запаркованы и отключены, а в период нагрузки будут подключены остальные ядра.
Преимущества и недостатки включения всех ядер процессора
Для реализации всех возможностей имеющегося у пользователя процессора, конечно, желательно активировать все его ФП. Даже если выполняется одна задача, при правильном распределении потоков, остальные ядра будут находиться в режиме ожидания и их работа не окажет никакого влияния на энергопотреблении всей системы.
В настоящее время трудно найти программу, не использующую многопоточность. Даже офисные приложения, казалось бы, уж на что простые, но и в них используется эта технология.
Единственным плюсом «одноядерности», то есть отключения всех ядер у ЦП, кроме одного, является необходимость экономии энергии в мобильных устройствах – ноутбуках или нетбуках.
Ну и конечно, обязательно стоит упомянуть главный минус «многоядерности»: даже при небольшой загрузке всех ядер энергопотребление ЦП возрастает в разы. Это увеличивает его износ, износ системы охлаждения и величину потребляемой электроэнергии.
Внимание! Мощность современных ЦП составляет десятки, очень редко сотни ватт в пике производительности. Среднее же энергопотребление ЦП равняется примерно 40-50 ватт. Для стационарных систем это совсем немного, а вот для ноутбуков весьма критично.
Что инструменты мониторинга производительности на самом деле должны показывать
Я считаю, что каждый инструмент мониторинга производительности должен показывать значение IPC рядом с загрузкой процессора. Это сделано, например, в инструменте tiptop под Linux:
Сколько ядер ЦП работают постоянно и в чем преимущества многоядерных систем
По умолчанию в ОС Windows 10 включены все ядра центрального процессора. Они могут работать на разных частотах, но это всегда лучше, чем одноядерная система. Наглядным примером этой выгоды может служить наполняющийся бассейн. Если он будет наполняться водой из одной трубы, то выполнит работу за определенное время, если труб будет несколько, вода наполнится гораздо быстрее. С процессорами примерно также: от количества ядер в чипе кардинально зависит скорость работы всей системы.
Как вручную регулировать количество ядер ЦП в Windows 10
Единственный случай, когда для вычислений процессору не нужны все ядра, – загрузка операционной системы. Конфигурацию применения всех ядер ЦП или определенного количества можно настроить в самой операционной системе Windows 10. Для этого нужно выполнить следующие шаги:
Это обеспечивает пользователю ручное регулирование количества загружаемых ядер процессора в системе. Также это окно содержит опции по регулированию памяти и ряд глобальных параметров отладки. Это полезно для администраторов системы, занимающихся оптимизацией работы операционной системы.
Выводы
Загрузка процессора стала сегодня существенно недопонимаемой метрикой: она включает в себя время ожидания данных от ОЗУ, что может занимать даже больше времени, чем выполнение реальных команд. Вы можете определить реальную загрузку процессора с помощью дополнительных метрик, таких, как количество инструкций на такт (IPC). Значения меньшие, чем 1.0 говорят о том, что вы упираетесь в скорость обмена данными с памятью, а большие — свидетельствуют о большой загруженности процессора потоком инструкций. Инструменты замера производительности должны быть улучшены для отображения IPC (или чего-то аналогичного) непосредственно рядом с загрузкой процессора, что даст пользователю полное понимание ситуации. Имея все эти данные, разработчики могут предпринять некоторые меры по оптимизации своего кода именно в тех аспектах, где это принесёт наибольшую пользу.
Читайте также: