Как ограничить работу процессора?

Содержание

Как ограничить использование процессора программой в Linux

Как ограничить работу процессора?

Некоторые программы в процессе своей работы нагружают центральный процессор на 100%. Это нормально и процессоры предназначены работать на максимальных своих частотах. Тем не менее, возможно возникновение сопутствующих проблем:

  • перегрев компьютера
  • подвисания операционной системы, «тормоза»

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

Обычно не нужно ограничивать количество процессорного времени, которое доступно для использования программой. Если процессор из-за интенсивной работы начинает перегреваться, то система сбрасывает частоты, то есть центральный процессор просто начинает медленнее работать. Это называется троттлинг. То есть имеется встроенная защита от того, чтобы процессор не сгорел. Если вы сталкиваетесь с перегревом и троттингом, то рекомендуется выполнить:

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

Это может значительно улучшить ситуацию и ваша система будет работать быстрее за счёт того, что ЦПУ не будет сбрасывать частоты.

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

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

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

Ограничение использование центрального процессора (с помощью cpulimit)

Изучим как пользоваться cpulimit.

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

Примером таких задач может быть: создание резервной копии системы или большого количества файлов, сжатие в архив большого объёма данных, брут-форс паролей и другие операции. Программа cpulimit не влияет на значение nice или другие способы планирования приоритета, она работает с настоящим использованием ЦПУ.

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

Если у вашей машины один процессор, вы можете ограничить процент от 0% до 100%, что означает, если вы, к примеру, установите 50%, процентов, то ваш процесс не может использовать более чем 500 миллисекунд времени центрального процессора каждую секунду.

Но если на вашей машине четыре процессора, то процент можно устанавливать от 0% до 400%. Так установка лимита на 200% означает использование не более чем половины имеющейся мощности.

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

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

cpulimit также ограничивает дочерние процессы указанной программы.

Установка cpulimit (в Ubuntu, Linux Mint, Kali Linux, Debian и другие его производные):

sudo apt update sudo apt install cpulimit

Команда запуска cpulimit имеет следующий вид:

cpulimit [ЦЕЛЬ] [ОПЦИИ…] [— ПРОГРАММА С ОПЦИЯМИ]

Изучим опции cpulimit:

ЦЕЛЬ должна быть в точности чем-то из: -p, —pid=N pid процесса -e, —exe=ФАЙЛ имя исполнимого файла программы Опция -e работает только если cpulimit запущена с правами администратора. -P, —path=ПУТЬ абсолютный путь до исполнимой программы ОПЦИИ -b —background запуск в фоне -f —foreground запуск целевого процесса в фоне и ожидание его выхода -c —cpu=N переписать определение ЦПУ на машине -l, —limit=N разрешённые для использования проценты cpu. На одноядерных системах от 1 — 100, на многоядерных системах может быть выше (обязательная опция) -m, —monitor-forks Просмотр детей/форков целевого процесса -q, —quiet запуск в тихом режиме (печатаются только ошибки). -k, —kill завершить процесс, выходящий за лимиты вместо того, чтобы ограничивать его. -r, —restore Восстановить процессы, после того, как они были завершены. Работает с флагом -k. -s, —signal=SIG Отправить этот сигнал наблюдаемому процессу, когда cpulimit выходит. Сигнал должен быть указан как номер, или SIGTERM, SIGCONT, SIGSTOP и т.д. SIGCONT это значение по умолчанию. -v, —verbose показать контрольную статистику -z, —lazy выйти если нет подходящего целевого процесса, или если он завершился — Это финальная опция CPUlimit. Все последующие опции предназначены для другой запускаемой программы. -h, —help показать справку и выйти

Примеры запуска cpulimit

Предположим, вы запустили foo —bar и вы обнаружили с помощью top или ps, что этот процесс использует всю мощность вашего ЦПУ, вы можете или:

Ограничить использование CPU процессом воздействуя на исполнимый файл программы (примечание: аргумент «—bar» пропущен):

sudo cpulimit -e foo -l 50

Ограничить использование CPU процессом воздействуя на, который показывает ps:

sudo cpulimit -p 1234 -l 50

Как и -e, но использует абсолютный путь:

sudo cpulimit -P /usr/bin/foo -l 50

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

sudo cpulimit -p $! -l 25 -b

Запуск веб-браузера Firefox и ограничение использование CPU 20% процентами:

sudo cpulimit -l 20 firefox

Флаг -c устанавливает количество ядер ЦПУ, которые, как начинает думать программа, доступны. Обычно программа правильно определяет количество ядер, но это значение можно переписать:

sudo cpulimit -c 2 -p 12345 -l 25

Запуск программы Firefox и остановка процесса, если он будет использовать более 20% CPU.

sudo cpulimit -l 20 -k firefox

Троттлить процесс 1234 на 20% использования CPU. Если cpulimit настроен для выхода, то он отправляет наблюдаемому процессу сигнал SIGTERM.

sudo cpulimit -l 20 -p 1234 -s SIGTERM

Примеры запуска в cpulimit программы с опциями

Запуск веб-браузера Firefox в приватном режиме и ограничение использование центрального процессора на 25%:

sudo cpulimit -l 25 — firefox -private

Запуск программы aircrack-ng с опциями для взлома пароля Wi-FI:

cpulimit -l 400 — aircrack-ng -w newrockyou.txt capture-01.cap

Ещё раз обратите внимание, как именно считается выделяемый процент. Одно ядро – это 100% Допустим, на компьютере восемь ядер, тогда максимально можно установить значение 100% * 8 = 800%, что соответствует стопроцентному использованию всех восьми ядер. Если мы хотим, чтобы использовалось только половина процессорной мощности, то нужно указать 400%, то есть -l 400.

Контроль использования количества CPU выполняется отправкой процессу сигналов SIGSTOP и SIGCONT POSIX.

cpulimit  всегда отправляет сигналы SIGSTOP и SIGCONT процессу, оба они нужны для верификации, что она может контролировать его и ограничивать среднее количество потребляемого ЦПУ.

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

Это также может вызвать проблемы с интерактивными оболочками, которые обнаруживают или иным образом зависят от SIGSTOP/SIGCONT. Например, вы можете разместить задание на переднем плане, но вы только увидите, что оно немедленно остановлено и перезапущено в фоне.

При вызове с опциями -e или -P, cpulimit ищет любой процесс в /proc с именем, которое соответствует имени процессу в переданном аргументе. Более того, она использует первый экземпляр найденного процесса. Для управление определённым экземпляром используйте опцию -p и укажите PID.

Читайте также  Как проверить разрядность процессора?

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

CPUTool – это ещё одна утилита, которая управляет использованием ЦПУ и нагрузкой на систему. Она умеет ограничивать нагрузку от одной программы или группы процесса по заданному лимиту.

CPUTool работает отправляя сигналы SIGSTOP и SIGCONT.

Установка CPUTool (в производные Debian):

apt install cputool

Использование CPUTool:

cputool [-c PCNT] [-l LOAD] [[-p PID | -P PID] | [—] КОМАНДА …]

Опции CPUTool:

-p, —pid Управление использованием CPU процессом с указанным PID -P, —pid-pgrp Управление использованием CPU группой процессов с указанным PID. -c, —cpu-limit Ограничительный процент CPU для процесса. Целое число. -l, —load-limit Ограничение нагрузки процессом. Разрешены десятичные числа -v, —verbose Быть вербальной, -vv, больше вербальности, -vvv самая большая вербальность. -V, —version Показать версию. -h, —help Показать справку

Как и для предыдущей программы, возможно более 100% процессорной мощности, например, для двухъядерного процессора можно указать до 200 и так далее.

Примеры запуска CPUTool

Ограничить PID 4711 на использование 75% одного ядра ЦПУ:

cputool -p 4711 -c 75

Запуск rsync для создания резервной копии только когда системная нагрузка не превышает 7.5:

cputool -l 7.5 — rsync -av /home /backup/`date +%Y-%m-%d`/

Заключение

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

О том, как контролировать текущую частоту и температуру процессора в Linux смотрите здесь.

Источник: https://ZaLinux.ru/?p=1743

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

Как ограничить работу процессора?

Привет бро Сегодня у нас необычная тема, полезная и.. как оказалось — задачу ограничения частоты процессора решить достаточно легко!

Скажу сразу — теоретически способ подходит и для процов АМД и для Интел.

Зачем ограничивать частоту процессора?

Вот смотрите — сейчас у меня жара. Нереальная. 15 этаж, в квартире не знаю сколько, градусника нет, но думаю куда больше за 30+ … процессор греется, из-за того что на нем стоит большой кулер — отлично рассеивает тепло, температура 45. Опасность в том что это тепло хавает блок питания — он греется теперь уже прилично. Сейчас разбираться в этом, химичить с охлаждением, отводом тепла — нет желания, ибо сам сижу под вентилятором — без него сума сойду..

Было решение — снизить частоту процессора, пусть не самый лучший вариант, но все таки..

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

Насколько корректно работает уменьшение частоты?

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

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

Главное — частота снижена и подымается, температура стала меньше. Все работает стабильно!

Где может пригодиться управление частотой?

  • Есть мнение, что когда процессор постоянно работает на высокой частоте и не скидывает ее — то комп будет работать быстрее. Так это или нет — сказать не могу. Однако я вроде как разницы не заметил.
  • В особо жаркое время лета, в квартире без кондишина и при высокой температуре проца даже при офисных задачах — есть смысл ограничить частоту либо заморочиться по поводу охлаждения. Да, идеал — водяное, хотя когда в комнате 30 градусов и более..
  • При разгоне проца оверлокеры советуют отключить любое автоматическое снижение частоты в простое.
  • Вы хотите собрать бесшумный медиацентр. Выход — купить офисный проц, какой-то Пентиум, снизить ему частоту в трое/двое — греться не будет, потребляет оч мало энергии, в итоге активное охлаждение не нужно.
  • Иногда дешевые материнки якобы поддерживают мощные процессоры. Когда материнка стоит НАМНОГО дешевле проца. Чтобы такой проц работал корректно — снижаем частоту в Windows. Ибо у дешевых материнок нет норм питания для мощных процов. Правда до загрузки Windows проц будет работать на полной частоте, тут уже нужно думать…

Снижение частоты: инструкция

Собственно перейдем к инструкции, которая подходит как для Windows 10, так и для Windows 7. Для семерки тоже подходит.

План действий. Открываем панель управления — универсальный рецепт (просто в десятке не всегда ее просто открыть):

  1. Зажимаем Win + R, появится окошко Выполнить.
  2. Пишем команду control, нажимаем ОК (еще можно использовать control panel).
  3. Откроется окно Панель управления.

Теперь находим значок Электропитание (обычно он в самом низу, зелененький):

Запускаем его. Далее шаги следующие:

  1. Нажимаем настройка отключения дисплея либо настройка перехода в спящий режим.
  2. Далее — нажимаем Изменить дополнительные параметры питания.

Наша цель — открыть маленькое окошко с названием Электропитание, в котором будет туча настроек. Спускаемся в самый низ — выбираем управление питанием процессора:

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

Теперь о главном:

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

100% — максимум.

0% — минимум.

Теперь по-простому:

  1. Минимальное состояние — означает, что когда процессор не работает, смысл ему дальше функционировать на всю мощность? Пусть тогда отдыхает. Вот насколько сильно можно отдыхать — вы указываете в процентах. Пример — процессор имеет частоту 4 ГГц. Вы в минимальном состоянии указали 25% — четвертая часть. Результат — в простое процессор скидывает частоту до 1 ГГц.
  2. Максимальное состояние — насколько сильно вы разрешаете процессору напрягаться. Может быть пусть попридержит коней, куда так гонит? Пример — у вас процессор 4 ГГц. В макс состоянии вы указали 75%. Проц будет максимально работать на 75%. Результат — частота проца не будет подыматься выше 3 ГГц.

Сценарии настроек

Я хочу чтобы процессор работал только на минимальной частоте:

Я хочу чтобы процессор работал постоянно на максимальной частоте:

Процессор работает максимум на половине частоты:

Если у вас проц 3 ГГц, то при таких настройках будет работать макс на 1.5 ГГц. Чтобы проц не скидывал частоту в простое, а всегда работал на 1.5 — в минимальное состояние процессора установите также 50%.

Кстати для применения настроек можно нажимать не ОКЕЙ, а ПРИМЕНИТЬ. Тем самым окошко будет дальше висеть — можно продолжать работать и тестировать изменения. И если что — пошаманить настройками, они ведь всегда под рукой

Надеюсь у меня получилось все обьяснить нормально и понятно

Заключение

Надеюсь данная инструкция поможет вам:

  1. Уменьшить аппетиты процессора при необходимости.
  2. Запретить процессору отдыхать даже в простое.

Надеюсь информация пригодилась. Удачи и добра!

! 16.06.2019

Источник: http://VirtMachine.ru/kak-ogranichit-chastotu-protsessora.html

Два мифа оптимизации компьютера, которые никак не умрут • Glashkoff.com

Как ограничить работу процессора?

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

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

Итак, вот тезисы, которые для меня являются истиной, подкреплённой фактами и знаниями. Надеюсь, после внимательного прочтения вы поймёте, к чему я веду.

1.Операционная система (ОС) — посредник между «железом» компьютера и программами (играми в том числе). В данном случае речь о Windows. Именно ОС и запущенные драйвера рисуют на экране картинку, обеспечивают запуск программ и позволяют запущенному софту использовать ресурсы компьютера: процессор, оперативную память, видеокарту, сеть и тому подобное.

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

Кто хочет узнать подробнее, может почитать статью на Википедии «Архитектура Windows NT», но это не обязательно. Главное знать, что система — посредник между физической частью ПК и теми программами, с которыми обычно работаем мы, люди.

Читайте также  Как узнать какой socket у процессора?

2. Возможности операционной системы определяют возможности софта. У прикладных программ и игр, которые мы видим на экране, нет прямого доступа к железу компьютера, они всегда работают через посредника — ОС. Если Windows (и установленные в неё драйвера) чего-то не умеют, то программы до этого «чего-то» не доберутся.

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

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

Например, графика часто создаётся с помощью команд DirectX, но в контексте данной статьи это не важно.

3. Создатели операционных систем никогда не стремятся намеренно ограничивать производительность компьютера. Иначе будет а-та-та и много исков. Например, Apple наказали штрафом на 5 000 000 евро, когда выяснилось, что ОС старых моделей айфонов снижает производительность со временем. И ещё на 5 миллионов евро за то, что функция замедления работала тайно, без уведомления владельцев устройств.

То есть нужно понимать, что если бы в Windows была какая-то функция, без явного уведомления пользователей как-то снижающая скорость вычислений ЦП, отключающая ядра процессора или ограничивающая возможности железа, то об этом бы писали во всех технических (и не только) СМИ. Были бы иски и репутационные потери.

Но этого нет и не будет, потому что семейство Windows исследовано вдоль и поперёк, там не осталось спорных моментов.

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

Оптимизация ядер и памяти с помощью MSConfig

Совет изменения настроек в системной утилите MSConfig основан на допущении, что Windows при загрузке не использует все ядра процессора и мегабайты оперативной памяти. Якобы нужно указать их нужное количество с помощью «секретной» настройки, чтобы компьютер быстрее включался и всё быстрее работало.

До «секретной» опции можно добраться так: Пуск — Выполнить (в Windows 10 используйте поле поиска вместо Выполнить) — msconfig — OK.

Запустится программа Конфигурация системы (msconfig.exe). Вкладка Загрузка:

Нужно нажать Дополнительные параметры, чтобы открыть параметры загрузки Windows и там будут вожделенные «суперсекретные» опции:

Сейчас ничего не настроено

Пока очумелые ручки не добрались до настроек, здесь ничего указано не будет, галочки проставлены не будут. С чего бы разработчикам Windows ограничивать производительность системы?

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

На компьютере восьмиядерный процессор и 8 Гб оперативной памяти

И после перезагрузки компьютер начнет использовать все ресурсы. Это противоречит третьему тезису о том, что Microsoft не ограничивает производительность изначально.

Вариантов у этого совета несколько. Я прошёлся по сайтам, посвящённым оптимизации Windows, выбрав парочку. Например, некий Юрий считает, что по умолчанию установлена загрузка с одного ядра:

Где автор мог узнать, что «по умолчанию загрузка с одного ядра»?

Другие вспоминают про оперативную память. «Блог мастера ПК» утверждает, что с ней та же беда.

Начало совета

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

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

Стоп. Где логика? Устанавливается опция, после отключается, как такая манипуляция может на что-то влиять в принципе?

Откуда миф? Полагаю, дело не только в незнании матчасти советчиков и отсутствии логического мышления, но и неоднозначной официальной справке по MSConfig. В статье MSConfig the System Configuration Tool на официальном сайте Microsoft описание опций действительно оставляет место домыслам, если не знать контекста:

Перевод: «Если вы нажмете на Advanced Options (в любой ОС), вы можете установить такие параметры, как количество процессоров, выделенных для операционной системы при загрузке, или максимальный объем оперативной памяти. (Как правило, обычно не отмечено)».

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

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

Опции в msconfig нужны программистам для тестирования программ, чтобы ограничить доступные ресурсы, сымитировав медленный ПК на быстром.

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

Некоторые «гении» пытаются доказать, что опция «Число процессоров» ускоряет компьютер, потому что при значении 1 игры начинают тормозить. Логики в этом аргументе нет. При включенном лимите на одно ядро производительность действительно снижается (особенно это заметно в играх), но по умолчанию ограничения выключены и программы вольны использовать все ядра, как им вздумается. То есть опции в MSConfig работают так, как задумано — позволяют при желании пользователя ограничивать ресурсы ПК.

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

Для самых непонятливых: просто снимите галочки.

Не имеет никакого значения, что там в полях — одно ядро или миллион. Не важно, что там в поле «Максимум памяти». Во что вы играете, насколько старое у вас железо — тоже не имеет никакого значения. Просто снимите все галки, нажмите ОК и живите спокойно дальше. Нет никаких тайных настроек в MSConfig для «разблокирования» процессорных ядер и памяти.

Заставить игру использовать все ядра процессора

Второй миф объяснить сложнее. Дело в том, что программы работают совсем не так, как представляется пользователям ПК. А где много невежества, там много эффекта Даннинга — Крюгера и, конечно, мифов.

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

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

Но вернёмся к работе программ на многоядерных процессорах. На границе знания и незнания возникла «гениальная» идея использовать программу CPU Control для назначения играм всех ядер.

Совет начал встречаться более десяти лет назад. Например, при обсуждении игры Gothic 3, которая любила тормозить на любом, даже самом мощном ПК:

У людей тормозит третья Готика. Что делать? Заниматься шаманством!

На скриншоте выше пользователь s063r посчитал, что игра не задействует второе ядро процессора. Товарищ Shifroval посоветовал использовать программу CPU Control.

Что же это за чудо-зверь такой, который залезает в программный код и заставляет программу изменить логику своей работы? CPU Control — это примитивная утилита для назначения процессу одного или нескольких ядер процессора:

К сожалению, разработчики этой софтины поступили глупо, сделав так, что при запуске все запущенные программы автоматически «назначаются» на первое ядро процессора (включается некий режим «Manual»). Обратите внимание на столбец «CPU» при запуске CPU Control:

Единица и три нуля означают, что программе назначено только первое по счету ядро процессора (четырёхъядерного, по мнению CPU Control). И это происходит после запуска самой утилитой. То, что до запуска ситуация была иной, с помощью CPU Control увидеть нельзя. Можно, конечно, до всех манипуляций глянуть назначения процессов на ядра в Диспетчере задач, но кто в наше время мыслит критически и проверяет работу программ родными утилитами Windows?

То есть получается нехорошая ситуация: человек запускает CPU Control и видит — о ужас — все программы назначены только на одно ядро!

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

Читайте также  Как узнать socket процессора?

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

В Диспетчере задач Windows видно, что по умолчанию программам назначены все ядра

На самом деле до запуска CPU Control ограничений на одно ядро не было. Это сама утилита при запуске назначает всем программам первое по счёту ядро. Назначение через CPU Control на все ядра возвращает настройку по умолчанию. Только и всего.

Если задействовать критическое мышление, возникнут вопросы:

  1. А почему Windows так сама не делает? Одноядерные процессоры днём с огнём уже не сыщешь, даже в офисных ПК минимум двухъядерники стоят. Почему какая-то утилита якобы может запустить программу на всех ядрах, а Windows спустя десятки лет развития — нет?
  2. Как вообще посторонней утилите удаётся что-то там регулировать внутри программ, якобы распределяя потоки по всем ядрам?

Ответ прост: CPU Control не делает того, что ей приписывают. Более того, на умение софта «задействовать» все ядра процессора нельзя повлиять извне. Это, в общем-то, внутреннее дело программ — в зависимости от алгоритмов некоторые задачи могут выполняться параллельно на нескольких ядрах, а могут только на одном. Даже слово «назначить» тут не совсем верное — правильнее употреблять «ограничить».

Без переписывания исходного кода программ как-то повлиять на то, сколько и как ядра ЦП будут «задействоваться», невозможно. Ограничить или дать потенциальную возможность — да, можно. А «задействовать», если изначально программа этого не умеет — нет, никак. Это как если бы человеку, который привык считать на калькуляторе, подсунули второй и сказали: считай на двух! Это бы ускорило его работу? Нет, конечно.

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

Источник: https://glashkoff.com/dva-mifa-optimizacii-kompyutera/

Уменьшаем тепловыделение процессора и увеличиваем время автономной работы ноутбука

Как ограничить работу процессора?

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

RMClock Utility 2.30.1

Разработчик RightMark

Объем загружаемого файла 463 Kb

Скачать

Предназначение программы

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

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

В режиме автоматического управления она постоянно отслеживает уровень загрузки процессора и автоматически изменяет его тактовую частоту, напряжение процессорного ядра и/или уровень троттлинга в соответствии с концепцией “производительность по требованию”.

Польза для простого пользователя

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

Если не вдаваться в технические подробности, то идея достаточно проста – понизить энергопотребление центрального процессора (ЦП).

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

Насколько сильно можно уменьшить электропотребление, зависит уже от удачи и от вашего ЦП. Мне повезло, так что результаты получились очень показательными.

Установка

Просто следуем инструкциям и ничего более. Учтите только, что программа автоматически прописывается в автозагрузку и становится стандартным ПО для управления профилями энергопотребления. Так что если у вас установлено другое ПО (фирменные утилиты в Acer, ASUS), то их нужно полностью отключить для избегания конфликтов.

Настройка

Settings

В этой вкладке нужно отметить два пункта в блоке Startup Options. Для того чтобы приложение запускалось автоматически при старте Windows.

Management

Также оставляем все по умолчанию и проверяем что пункт Enable OS power management integration активирован.

Profiles

Тут и начинается самое интересное. Для состояний AC power (работа от сети) и Battery (работа от аккумулятора) устанавливаем нужные профили. При работе от сети рекомендую поставить Performance on demand (производительность по необходимости), а при работе от батареи Power Saving.

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

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

Теперь нужно настроить профили Performance on demand и Power Saving. Для этого выбираем соответствующие пункты. В обоих случаях отмечаем галочкой UseP-state transitions (PST), тот профиль, в котором вы находитесь в текущий момент.

Причем, для профиля Performance on demand, выбираем все множители из списка, а для профиля Power Saving только первый (это означает, что при работе от аккумулятора процессор всегда будет функционировать на минимальной частоте, конечно, вы можете выбрать и другой множитель, тем самым повысив максимально допустимую частоту).Остальные опции оставляем неактивными.

Работа

Вот собственно и все. Теперь нужно активировать профиль энергопотребления RMClock Power Management. Для этого левой кнопкой нажимаем на батарейке в трее и выбираем нужный профиль. Если его нет, нужно нажать на Дополнительные параметры энергопотребленияи выбрать его там.

Теперь при подключении питания ноутбук будет использовать профиль Performance on demand, апри работе от аккумулятора — Power Saving, используя ранее сделанные нами установки.

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

Проверяем

Если вы сделали все правильно, то во вкладке Monitoring можно видеть результат работы. График FID-VID демонстрирует текущий множитель и вольтаж. Проверте это значения при работы от сети и от батареи, они должны совпадать с установленными значениями в профиле.

Теперь желательно протестировать все настройки какой-либо программой, например Prime95. Задача – удостоверится в том, что ЦП без проблем работает при выбранных нами установка вольтажа.

Тестирование

В теории все как всегда классно, но как эти действия сказываются на реальной работе?

Тестовая система: Terra 1220 (Intel Core 2 Duo T7300)

Я протестировал оба режима работы и сравнил их с аналогичными режимами стандартной программы управления питанием.

Сбалансированный VS Performance on demand

Автономность проверялась программой BatteryEater в режиме максимальной загрузки (Classic). Беспроводные интерфейсы отключены, яркость экрана установлена на максимум.

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

А вот температурные показатели интересны, максимальная температура во время теста при использование RMClock снизилась на 23°С! Просто отличный результат, который для конечного пользователя означает банальное уменьшение температуры корпуса ноутбука, а также уменьшения шума (вентилятор не включается на полные обороты).

Производительность в PCMark также не изменилась, разница в измерениях в рамках погрешности. А вот с температурой мы наблюдаем туже картинку – максимальная температура уменьшилась на 17°С.

Экономия энергии VS Power Saving

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

Источник: https://itc.ua/articles/umenshaem_teplovydelenie_processora_i_uvelichivaem_vremya_avtonomnoj_raboty_noutbuka_30280/