cpu idle state что это

System Idle Process что это за процесс? (IDLE)

Поговорим о процессе System Idle Process (или Бездействие системы), который можно наблюдать в диспетчере задач и который часто у вас грузит систему на полную Но, я бы на вашем месте не паниковал, потому что этот процесс не простой, суть его в том, что в колонке загрузки ЦП он показывает обратное — сколько процессор не загружен!

Именно поэтому многие пользователи ошибочно думают, что если мол System Idle Process грузит систему (а в диспетчере именно так оно и видно), то видимо что-то не так с компом.

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

А еще некоторые юзеры думают что это вирус или системная ошибка в Windows, так как процесс нельзя завершить, но при этом пишут, что в системе все тупит и глючит и работать просто невозможно. Ну забавно, однако проблема может действительно быть, но просто в программах, которые медленно работают. Но самое главное, что если процесс System Idle Process сильно грузит систему — то это только хорошо, значит ваш процессор со всеми программами отлично справляется на компе!

Вот меню процесса, как видите с ним вообще ничего делать нельзя, он даже без ИД (что и логично):

Если у вас при этом все равно тормозит комп, то помимо программ попробуйте обратить внимание на процесс Системные прерывания — если он загружен хотя бы наполовину, то это плохо. Это уже аппаратная проблема, врать не стану, у меня такого не было и не знаю как бороться, но отключите все устройства от компьютера — мышку, клавиатуру, и посмотрите, прерывания снова грузят комп? Есть даже такое понятие как шторм прерываний, если что то у меня Windows 10, и никогда такого не было.

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

Второй частый случай — это ошибка в драйвере (у некоторых это например Jungo WinDriver, APIC), который постоянно запрашивает разрешение на выполнение операции, но при этом ничего не делает (это и есть штормящий драйвер), как-то так. А запрашивает то он постоянно. Проверьте что у вас в диспетчере устройств, нет ли каких-то подозрительных пунктов?

Некоторым пользователям помогло отключение контроллера LSI 1394 OHCI.

Источник

pro4gl.ru

Управление загрузкой процессора

Управление загрузкой процессора

Все ресурсы влияют тем или иным образом на загрузку процессора. К примеру, медленные дисковые устройства заставляют CPU выполнять холостые циклы в ожидании завершения операции ввода/вывода. Смена контекста (context switch) аналогичным образом увеличивает время отклика системы.

Что такое загрузка процессора

Чтобы понять, чем занят процессор необходимо знать – из каких компонент состоит его загрузка. На UNIX-системах работу процессора разделяют на следующие компоненты:

На Windows-системах загрузку процессора разделяют на следующие компоненты:

Настройка операционной системы.

Любое время, потраченное на ожидание ввода-вывода кажется неопытному администратору нежелательным. Но, на самом деле, не все I/O wait являются поводом для беспокойства. Время I/O Wait возникает каждый раз, когда процессор выполнил свою работу и находится в ожидании других ресурсов : дисков или памяти. Это естественно – центральный процессор является быстрейшим из ресурсов и должен ждать отклика более медленных устройств. Если же ожидание ввода-вывода оказывает заметное влияние на систему, то это является причиной для беспокойства.

При настройке системы желательно (но необязательно) иметь всегда ненулевое значение Idle time (время простоя). Да, вполне возможно нагрузить под завязку двухпроцессорную систему на 100% полезной работой (иными словами мы будем иметь 100% User Time). Это не означает, что система имеет плохую производительность, напротив, она работает так быстро насколько может. При настройке производительности мы пытаемся перенести узкое место (bottleneck) на самый быстрый ресурс – CPU. Если процессоры на 100% заняты пользовательскими задачами, то система настроена просто прекрасно. Дальнейшее увеличение производительности возможно только при увеличении тактовой частоты или при добавлении новых ядер. Утилизацию процессора необходимо рассматривать только в совокупности показателей. В общих чертах, если время I/O Wait увеличивается, то совсем необязательно, что узким местом стала подсистема ввода-вывода. Если мы говорим об идеальных условиях, то достаточно иметь 70 % времени на пользовательские задачи (User Time), 20% – время системы (System Time), 0% – ожидание ввода-вывода (I/O Wait) и 10% – время простоя (Idle Time). Еще одной метрикой наблюдения является отсутствие 100 % загрузки CPU на пользовательские задачи, если, конечно, это не обычное поведение вашей системы. Такую нагрузку могут вызвать неконтролируемые процессы. Неконтролируемые процессы – это, в основном, клиентские процессы, главный отличительный признак которых – отсутствие присоединенных к себе терминалов (tty) и исполнение в режиме отличном от пакетного (-b).

Отношение User Time к System Time должно быть приблизительно как 3:1 на host-based системах, в то время как на системах клиент-сервер это время может быть ближе как 1.5:1. Если время, затраченное на пользовательские задачи ниже 20% от общего использования CPU и меньше времени системы, то такое отношение может изменяться в широких пределах. В некоторых случаях System Time больше User Time из-за плохого выделения ресурсов. Таким образом, во время увеличения User Time при настройке сервера следует стремиться к тому, чтобы System Time составляло треть или менее от пользовательского времени. Это легко увидеть, взглянув на ресурсы CPU в любом средстве мониторинга.

Иллюстрация 5 показывает пример информации отображаемой Performance Monitor

Время простоя CPU (CPU Idle Time)

Наличие Idle time может являться хорошим знаком. Это означает, что вашей системе есть куда расти. Необязательно, чтобы время простоя было всегда больше нуля. Если Idle Time равно нулю длительный период времени и нет существенного времени I/O Wait, то для полного понимания ситуации необходимо пристальнее взглянуть на работу CPU.

Читайте также:  путешествую без ковид для какого вида транспорта

Например, посмотрите на глубину очереди CPU (cpu queue depth). Значение CPU queue depth показывает количество процессов в ожидании исполнения. Если в очереди всегда есть некоторое количество процессов, то необходимо предпринять один из следующих вариантов:

Если время I/O wait высокое и нет времени Idle Time, то необходимо повысить эффективность дисковой подсистемы (см главу 2 “Управление ресурсами OpenEdge”) – увеличить пропускную способность дисковой подсистемы или изменить временной график ваших вычислений. Если I/O Wait занимает 10 % или меньше и значение Idle Time не равно нулю, то необходимость в каких-либо действиях отсутствует.

Наблюдения за системой

Круглосуточный мониторинг за вашей системой всегда помогает принять решение при оптимизации загрузки процессора. Ваша система может выглядеть отлично в течение рабочего времени (пока вы видите, что происходит), но ночью могут быть серьезные проблемы производительности. Есть множество приложений, которые производят 70% своих вычислений в вечерние часы. Большинство систем выполняют в ночные часы совсем другие задачи, чем днем. Типичная система делает OLTP-транзакции с 9 утра до 5 вечера, производит закрытие дня с 7 вечера до 12 ночи и запускает большие “тяжелые” отчеты после полуночи.

Есть некоторые приёмы, которые вы можете использовать для более эффективного использования существующих ресурсов. К примеру, можно определить такое время суток, когда базе данных необходимо больше процессов APW (page writers); или запускать “тяжелый” отчет в ночные часы.

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

Использование OE Management для мониторинга производителоьности CPU

Информацию о CPU лучше разместить на странице My Dashboard для того, чтобы она все время была на виду. При настройке страницы My Dashboard вы можете выбрать CPU в пункте Other system resources to show, чтобы увидеть фрейм-viewlet со статистикой использования CPU.

Быстрый процессор или многопроцессорная конфигурация?

Итак, что же решить? Лучше всего – провести анализ вашего приложения и его использования. Например, если у вас большинство однопоточных задач, то выигрыш от быстрого процессора будет больше, даже за счет уменьшения количества CPU. А приложение с большим количеством ввода данных и малой долей однопоточных задач выиграет от наличия бОльшего количества CPU, даже если они будут медленными. В любом случае – залогом правильного решения будет детальный анализ утилизации процессоров.

В этой главе мы узнали как эффективно управлять системными ресурсами.

Источник

System Idle Process постоянно грузит процессор – что делать?

Во время простоя нагрузка на компоненты компьютера должны быть минимальна. Если вы не запустили ни одной программы, не поставили скачиваться файлы, а процессор уже загружен на полную – что-то в системе работает неверно. Разберемся с ситуацией, когда System idle process все время грузит процессор – что это за утилита и как ее отключить.

Что такое System Idle Process

Если компьютер тормозит, откройте «Диспетчер задач», нажав Win+X и выбрав одноименную утилиту. На первой вкладке приведен перечень выполняющихся процессов, кликните на столбец ЦП, чтобы отсортировать их по убыванию нагрузки на центральный процессор. На первой строке окажется главный виновник загрузки системы, иногда это System Idle Process или утилита «Бездействие системы» в русскоязычных версиях Windows.

System Idle Process – что же это такое? Это специальный процесс бездействия, но он не показывает процент простоя процессора. В Windows существует специальная утилита, которую ОС запускает в то время, когда компьютер не нагружен другими операциями. System Idle Process помогает снизить потребление энергии и температуру процессора, выполняя в цикле процедуру приостановки.

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

Поэтому проценты у System Idle Process в диспетчере показывают не загруженность компьютера, а количество свободных ресурсов.

Как отключить процесс

Отключить системный System Idle Process нельзя. Если вы кликните по нему правой кнопкой мышки, то в подменю будут недоступны стандартные операции «Снять задачу» или «Задать приоритет». Утилита обращается к ядру ОС, поэтому в Windows запрещено давать пользователям возможности управления такими системными процессами.

Как снизить нагрузку на процессор

В нормально работающей системе System Idle Process совсем не снижает быстродействие. Если же при больших показателях бездействия процессора в 60-70% компьютер заметно тормозит, надо искать причину. Проверьте в «Диспетчере задач», что вызывает повышенную нагрузку на ЦП. Также можно использовать «Мониторинг ресурсов»: зажмите Win+R и впишите resmon. Сервис покажет более подробную информацию по использованию ресурсов ЦП.

Часто нагрузку вызывают «Системные прерывания» — те самые, которые должны отслеживать возникновение запросов к ПК во время бездействия. Если они занимают больше 10% ресурсов, проделайте следующее:

Заключение

Мы разобрались, что означает загрузка системы процессом System Idle Process и как от него избавиться. В норме утилита понижает энергопотребление во время простоя ПК и не нагружает его ресурсы. Если компьютер работает медленно – ищите другие причины проблемы.

Источник

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

Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.

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

Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.

Читайте также:  geoserver timeout что это

Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.

Основные источники информации, использованные в этом тексте:

Особенности CPU

Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:

Теперь выясним, что значит каждое из этих определений.

Как снизить энергопотребление процессора во время его работы?

На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:

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

Примечание для тех, кто разбирается в цифровой электронике: Pcpu = Pdynamic + Pshort circuit + Pleak. При работающем процессоре Pdynamic является наиболее важной составляющей, именно эта часть зависит линейно от частоты и квадратично от напряжения. Pshort circuit пропорционально частоте, а Pleak — напряжению.

Более того, напряжение и тактовая частота связаны линейной зависимостью.

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

Каков предел энергопотребления процессора?

Это во многом зависит от процессора, но для процессора E3-1245 v5 @ 3.50 ГГц расчетная тепловая мощность (Thermal Design Power, TDP) составляет 80 ватт. Это среднее значение, которое процессор может выдерживать бесконечно долго (Power Limit, PL1 на изображении ниже). Системы охлаждения должны быть рассчитаны на это значение, чтобы быть надежными. Фактическое энергопотребление процессора может быть выше в течение короткого промежутка времени (состояния PL2, PL3, PL4 на изображении ниже). TDP измеряется при нагрузке высокой вычислительной сложности (худший случай), когда все ядра работают на базовой частоте (3.5 ГГц).

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

Состояния питания (C-states) vs состояния производительности (P-states)

Состояния питания (C-states) vs состояния производительности (P-states)
Вот два способа снизить энергопотребление процессора:

P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).

Так как большинство современных процессоров состоит из нескольких ядер, то С-состояния разделены на С-состояния ядра (Core C-states, CC-states) и на С-состояния процессора (Package C-states, PC-states). Причина появления PC-состояний очень проста. Существуют компоненты с общим доступом (например, общий кэш), которые могут быть отключены только после отключения всех ядер, имеющих доступ к этому компоненту. Однако мы в роли пользователя или программиста не можем взаимодействовать с состояниями пакета напрямую, но можем управлять состояниями отдельных ядер. Таким образом, управляя CC-состояниями, мы косвенно управляем и PC-состояниями.

Состояния нумеруются от нуля по возрастанию, то есть C0, C1… и P0, P1… Большее число обозначает большее энергосбережение. C0 означает, что все компоненты включены. P0 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.

С-состояния

Вот базовые С-состояния (определенные в стандарте ACPI).

Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.

Вот описание состояний из даташита:

Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.

Визуальное представление состояний:

Источник: Software Impact to Platform Energy-Efficiency White Paper

Последовательность C-состояний простыми словами:

Однако если ядро работает (C0), то единственное состояние, в котором может находиться процессор, — C0. С другой стороны, если ядро полностью выключено (C8), процессор может находиться в C0, если другое ядро работает.

Примечание: Intel Software Developer’s Manual упоминает про суб-C-состояния (sub C-state). Каждое С-состояние состоит из нескольких суб-С-состояний. После изучения исходного кода модуля ядра intel_idle я понял, что состояния C1 и C1E являются состоянием С1 с подтипом 0 и 1 соответственно.

Число подтипов для каждого из восьми С-состояний (0..7) определяется с помощью инструкции CPUID. Для моего процессора утилита cpuid выводит следующую информацию:

Замечание из инструкции Intel: «Состояния C0..C7 для расширения MWAIT — это специфичные для процессора C-состояния, а не ACPI C-состояния». Поэтому не путайте эти состояния с ACPI C-состояниями, они явно связаны и между ними есть соответствие, но это не одно и то же.

Я создал гистограмму, представленную ниже, из исходного кода драйвера intel_idle для моего процессора (модель 0x5e). Подписи горизонтальной оси:

Имя C-состояния: специфичное для процессора состояние: специфичное суб-состояние.

Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.

Константы задержок выхода и целевых резидентных значении C-состояний в исходном коде intel_idle
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.

Состояния питания ACPI

Прежде чем говорить про P-состояния, стоит упомянуть про состояния питания ACPI. Это то, что мы, пользователи, знаем, когда используем компьютер. Так называемые глобальные системные состояния (G[Х]) перечислены в таблице ниже.

Источник: ACPI Specification v6.2
Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.

Читайте также:  при какой стирке вещи уменьшаются

Существует несколько состояний сна (Sx). Всего таких состояний шесть, включая S0 — отсутствие сна. Состояния S1-S4 используются в G1, а S5, Soft Off, используется в G2. Краткий обзор:

Вот поддерживаемые состояния ACPI.

Комбинации состояний ACPI G/S и С-состояний процессора

Приятно видеть все комбинации в таблице:

В состоянии G0/S0/C8 системы процессора запущены, но все ядра отключены.

В G1 (S3 или S4) некорректно говорить про С-состояния (это касается как CC-состояний, так и PC-состояний), так как процессор полностью обесточен.

Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.

Как программно запросить переход в энергосберегающее С-состояние?

Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию MWAIT или инструкцию HLT. Это инструкции привилегированного уровня, и они не могут быть выполнены пользовательскими программами.

Инструкция MWAIT (Monitor Wait) заставляет процессор перейти в оптимизированное состояние (C-состояние) до тех пор, пока по указанному (с помощью другой инструкции, MONITOR) адресу не будет произведена запись. Для управления питанием MWAIT работает с регистром EAX. Биты 4-7 используются для указания целевого С-состояния, а биты 0-3 указывают суб-состояние.

Примечание: Я думаю, что на данный момент только AMD обладает инструкциями MONITORX/MWAITX, которые, помимо мониторинга записи по адресу, работают с таймером. Это еще называется Timed MWAIT.

Инструкция HLT (halt) останавливает выполнение, и ядро переходит в состояние HALT до тех пор, пока не произойдет прерывание. Это означает, что ядро переходит в состояние C1 или C1E.

Что вынуждает ядро входить в определенное С-состояние?

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

Возможно ли отключить С-состояния (всегда использовать С0)?

Это возможно, но не рекомендуется. В даташите (секция 4.2.2, страница 64) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.

Как прерывания влияют на процессор\ядро в состоянии сна?

Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel® Xeon® E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:

P-состояния

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

Процессор Intel® Xeon® E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel® SpeedStep Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel® Xeon® E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.

P-состояния, управляемые операционной системой

В этом случае операционная система знает о P-состояниях и конкретном состоянии, запрошенным ОС. Проще говоря, операционная система выбирает рабочую частоту, а напряжение подбирается процессором в зависимости от частоты и других факторов. После того, как P-состояние запрошено записью в моделезависимый регистр (подразумевается запись 16 бит в регистр IA32_PERF_CTL), напряжение изменяется до автоматически вычисленного значения и тактовый генератор переключается на заданную частоту. Все ядра имеют одно общее P-состояние, поэтому невозможно установить P-состояние эксклюзивно для одного ядра. Текущее P-состояние (рабочий режим) можно узнать, прочитав информацию из другого моделезависимого регистра — IA32_PERF_STATUS.

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

P-состояния, управляемые оборудованием

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

Я хочу рассказать об этом подробнее в следующей статье, но сейчас я поделюсь с вами своими мыслями. Мой домашний компьютер работает в этом режиме, я узнал это, проверив IA32_PM_ENABLE. Максимальный (но не гарантированный) уровень производительности — 39, минимальный — 1. Можно предположить, что существует 39 P-состояний. На данный момент уровень 39 установлен ОС как минимальный и как максимальный, потому что я отключил динамическое изменение частоты процессора в ядре.

Заметки про Intel® Turbo Boost

Поскольку TDP (расчетная тепловая мощность) — это максимальная мощность, которую процессор может выдержать, то процессор может повышать свою частоту выше базовой, при условии что энергопотребление не превысит TDP. Технология Turbo Boost может временно повышать энергопотребление до границы PL2 (Power Limit 2) на короткий промежуток времени. Поведение Turbo Boost может быть изменено через подсказки оборудованию.

Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?

Для примера, недавний MacBook Air с процессором i5-5350U в основном поддерживает возможности, описанные выше (но я не уверен про P-состояния, контролируемые оборудованием). Я также смотрел документацию ARM Cortex-A, и, хотя там применяются другие термины, механизмы управления питанием выглядят похоже.

Как это все работает, например, на Linux?

На этот вопрос я отвечу в другой статье.

Как я могу узнать состояние процессора?

Существует не так много приложений, которые могут выводить эту информацию. Но вы можете использовать, например, CoreFreq.

Вот какую информацию можно получить (это не весь вывод).

Вот информация о ядре, включая информацию о драйвере idle.

Мониторинг счетчиков С-состояний (для ядра):

Источник

Сказочный портал