Цп под 100 как исправить. Уменьшаем нагрузку на процессор

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

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

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

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

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

Что нагружает процессор?

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

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

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

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

Медленная работа компьютера — при сильной нагрузке окна будут открываться очень медленно. Будут видны всевозможные «артефакты» при открытии. И просто будет невозможно использовать компьютер.

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

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

Диспетчер задач

Чтобы увидеть процент нагрузки на процессор, откройте диспетчер задач и во вкладке «Производительность» будет выявлен график, который показывает нагрузку на каждое ядро, а также, на весь процессор.

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

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

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

На операционной системе Windows 8 функция автозапуска расположена в более удобном месте — диспетчере задач.

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

Вирусы

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

Антивирусы

Как бы это странно не выглядело, но антивирусы могут сильно нагружать процессор. Рекомендуется не использовать антивирусы, а пользоваться лечащими утилитами раз в месяц. Они не требуют установки, но все же эффективнее, чем постоянно работающий антивирус (пример такой утилиты — dr.Web CureIt!).

Нестабильно работает система охлаждения

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

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

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

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

Для начала просто перезагрузите компьютер. Иногда бывает, что какое-то приложение зависло из-за неполадок в самом приложении и продолжает использовать процессор, часто на все 100 процентов. Можно удалить его через «Диспетчер задач» — «Снять задачу».

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

Если перезагрузка компьютера не решила проблему переходим к этапу проверки Windows на наличие вредоносных программ. Запустите полное сканирование антивирусом, установленным у вас. Вы должны понимать, что наличие антивируса не исключает возможность заражения компьютера. Оптимально для проверки использовать антивирусные сканеры известных разработчиков. Они бесплатны, не требуют установки, их можно записать на флешку или компакт-диск и, загрузившись с них, запустить проверку ПК – это увеличит шансы на отлов большинства зловредных программ.

Проведите анализ операционной системы Windows если наблюдаете высокий процент загрузки ЦП

Используя специальное программное обеспечение, проанализируйте почему тот или иной процесс запускается и загрузка ЦП увеличивается до 100%. Например, для этого хорошо подходит «AnVir Task Manager». Она позволяет оценить уровень риска и изменить тип запуска приложения в автозагрузке, процесса или сервиса (приведенное на рисунке меню вызывается правой кнопкой мыши) т.е. вы сможете понять, что с ним делать — причину проблемы.

Таким образом, запретив запуск приложений с высоким уровнем риска вы с большой долей вероятности избавитесь от процессов, которые грузят ваш ЦП на 100 процентов.

У Вас возникла необходимость нагрузить процессор компьютера на 100%! Например, необходимо протестировать его в экстремальных условиях, либо проверить насколько эффективная система охлаждения и как она справляется с перегрузками. Путей два. Первый — скачать и установить специальную программу вроде CPU Stress Test (CST). А второй — загрузить процессор самостоятельно, средствами только операционной системы Windows. Вот про этот вариант развития событий я сейчас и расскажу!

Для того, чтобы совершить задуманное, нам понадобится всего лишь стандартный блокнот Виндовс. Открываем его и пишем:

Выглядит это так:

Немного поясню — мы с Вами написали программный код, который запустит простейшую петлю из цикла While для стандартного обработчика Visual Basic. Теперь надо файл сохранить:

Да не просто, а с другим расширением. Для этого в строку «Имя файла» надо прописать его название «loop.vbs».

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

Чтобы нагрузить процессор на 100% необходимо будет его запустить. Но сначала — откройте диспетчер задач на вкладке «Производительность»:

Здесь отображается график загрузки процессора — ЦП. Так как сейчас большинство современных процессоров многоядерные, то чтобы его загрузить по максимуму, т.е. на 100 процентов, необходимо видеть все ядра. Для этого кликаем на графике правой кнопкой мыши и выбираем пункт меню «Изменить график»>>»Логические процессоры». У меня получилось так:

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

После того, как необходимый результат будет достигнут, нужно будет теперь уже наоборот — разгрузить систему.

Для этого там же, в Диспетчере задач на вкладке «Процессы» найдите каждую задачу «Microsoft Windows Based Script Host» и снимите её.

Достаточно часто пользователи жалуются на 100-процентную загрузку процессора. При этом компьютер зачастую начинает «тупить» и не позволяет нормально работать. Самое интересное, что даже при переустановке Windows ситуация меняется далеко не во всех случаях. Что же делать, как быть?

Причин на самом деле может быть множество, поэтому рассмотрим наиболее вероятные.

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

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

Суть в следующем: svchost.exe позволяет службам в виде dll-файлов исполнять их код в своем адресном пространстве, поэтому в диспетчере задач пользователь может видеть несколько запущенных копий svchost.exe.

Это нормальное явление. Разумеется, за тем исключением, когда под видом процесса прячется некий вирус. Запомните, что svchost.exe никогда не запускается от имени пользователя и вы не сможете найти его в автозагрузке. Если же это произошло, то перед вами — вредоносный файл или программа, не имеющая отношения к Windows.

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

Что делать тем, кто не хочет устанавливать обновления? Единственный вариант — это , чего делать крайне не рекомендуется. Но если вы все-таки решились на этот шаг, то зайдите в панель управления и выберите пункт «Центр обновления Windows». В открывшемся окне нажмите «Настройка параметров».

В новом окне в подразделе «Важные обновления» выберите пункт «Не проверять наличие обновлений (не рекомендуется)», после чего нажмите ОК.

Перезагрузите компьютер, после чего зайдите в диспетчер задач и проверьте загруженность процессора.

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

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

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

  • Перевод

Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности - от диспетчера задач Windows до команды top в Linux.

Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:

А на самом деле это выглядит вот так:

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

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

Что же такое загрузка процессора на самом деле?

Та метрика, которую мы называем «загрузкой процессора» на самом деле означает нечто вроде «время не-простоя»: то есть это то количество времени, которое процессор провёл во всех потоках кроме специального «Idle»-потока. Ядро вашей операционной системы (какой бы она ни была) измеряет это количество времени при переключениях контекста между потоками исполнения. Если произошло переключение потока выполнения команд на не-idle поток, который проработал 100 милисекунд, то ядро операционки считает это время, как время, потраченное CPU на выполнение реальной работы в данном потоке.

Эта метрика впервые появилась в таком виде одновременно с появлением операционных систем с разделением времени. Руководство программиста для компьютера в лунном модуле корабля «Апполон» (передовая на тот момент система с разделением времени) называла свой idle-поток специальным именем «DUMMY JOB» и инженеры сравнивали количество команд, выполняемых этим потоком с количеством команд, выполняемых рабочими потоками - это давало им понимание загрузки процессора.

Так что в этом подходе плохого?

Сегодня процессоры стали значительно быстрее, чем оперативная память, а ожидание данных стало занимать львиную долю того времени, которое мы привыкли называть «временем работы CPU». Когда вы видите высокий процент использования CPU в выводе команды top, то можете решить, что узким местом является процессор (железка на материнской плате под радиатором и кулером), хотя на самом деле это будет совсем другое устройство - банки оперативной памяти.

Ситуация даже ухудшается со временем. Долгое время производителям процессоров удавалось наращивать скорость их ядер быстрее, чем производители памяти увеличивали скорость доступа к ней и уменьшали задержки. Где-то в 2005-ом году на рынке появились процессоры с частотой 3 Гц и производители сконцентрировались на увеличении количества ядер, гипертрейдинге, много-сокетных конфигурациях - и всё это поставило ещё большие требования по скорости обмена данных! Производители процессоров попробовали как-то решить проблему увеличением размера процессорных кэшей, более быстрыми шинами и т.д. Это, конечно, немного помогло, но не переломило ситуацию кардинально. Мы уже ждём память большую часть времени «загрузки процессора» и ситуация лишь ухудшается.

Как же понять, чем на самом деле занят процессор

Используя аппаратные счетчики производительности. В Linux они могут быть прочитаны с помощью perf и других аналогичных инструментов. Вот, например, замер производительности всей системы в течении 10 секунд:

# perf stat -a -- sleep 10 Performance counter stats for "system wide": 641398.723351 task-clock (msec) # 64.116 CPUs utilized (100.00%) 379,651 context-switches # 0.592 K/sec (100.00%) 51,546 cpu-migrations # 0.080 K/sec (100.00%) 13,423,039 page-faults # 0.021 M/sec 1,433,972,173,374 cycles # 2.236 GHz (75.02%) stalled-cycles-frontend stalled-cycles-backend 1,118,336,816,068 instructions # 0.78 insns per cycle (75.01%) 249,644,142,804 branches # 389.218 M/sec (75.01%) 7,791,449,769 branch-misses # 3.12% of all branches (75.01%) 10.003794539 seconds time elapsed
Ключевая метрика здесь это "количество инструкций за такт " (insns per cycle: IPC), которое показывает, сколько инструкций в среднем выполнил процессор на каждый свой такт. Упрощённо: чем больше это число, тем лучше. В примере выше это число равно 0.78, что, на первый взгляд кажется не таким уж плохим результатом (78% времени выполнялась полезная работа?). Но нет, на этом процессоре максимально возможным значением IPC могло бы быть 4.0 (это связано со способом получения и выполнения инструкций современными процессорами). То есть наше значение IPC (равное 0.78) составляет всего 19.5% от максимально возможной скорости выполнения инструкций. А в процессорах Intel начиная со Skylake максимальное значение IPC уже равно 5.0.

В облаках

Когда вы работаете в виртуальном окружении, то можете и не иметь доступа к реальным счетчикам производительности (это зависит от используемого гипервизора и его настроек). Вот статья о том, как это работает в Amazon EC2 .

Интерпретация данных и реагирование

Если у вас IPC < 1.0 , то я вас поздравляю, ваше приложение простаивает в ожидании данных от оперативной памяти. Вашей стратегией оптимизации производительности в данном случае будет не уменьшение количества инструкций в коде, а уменьшение количества обращений к оперативной памяти, более активное использование кэшей, особенно на NUMA-системах. С аппаратной точки зрения (если вы можете на это влиять) будет разумным выбрать процессоры с большими размерами кэшей, более быструю память и шину.

Если у вас IPC > 1.0 , то ваше приложение страдает не столько от ожидания данных, сколько от чрезмерного количества выполняемых инструкций. Ищите более эффективные алгоритмы, не делайте ненужной работы, кэшируйте результаты повторяемых операций. Применение инструментов построения и анализа Flame Graphs может быть отличным способом разобраться в ситуации. С аппаратной точки зрения вы можете использовать более быстрые процессоры и увеличить количество ядер.

Как вы видите, я провёл черту по значению IPC равному 1.0. Откуда я взял это число? Я рассчитал его для своей платформы, а вы, если не доверяете моей оценке, можете рассчитать его для своей. Для этого напишите два приложения: одно должно загружать процессор на 100% потоком выполнения инструкций (без активного обращения к большим блокам оперативной памяти), а второе должно наоборот активно манипулировать данным в ОЗУ, избегая тяжелых вычислений. Замерьте IPC для каждого из них и возьмите среднее. Это и будет примерная переломная точка для вашей архитектуры.

Что инструменты мониторинга производительности на самом деле должны показывать

Я считаю, что каждый инструмент мониторинга производительности должен показывать значение IPC рядом с загрузкой процессора. Это сделано, например, в инструменте tiptop под Linux:

Tiptop - Tasks: 96 total, 3 displayed screen 0: default PID [ %CPU] %SYS P Mcycle Minstr IPC %MISS %BMIS %BUS COMMAND 3897 35.3 28.5 4 274.06 178.23 0.65 0.06 0.00 0.0 java 1319+ 5.5 2.6 6 87.32 125.55 1.44 0.34 0.26 0.0 nm-applet 900 0.9 0.0 6 25.91 55.55 2.14 0.12 0.21 0.0 dbus-daemo

Другие причины неверной трактовки термина «загрузка процессора»

Процессор может выполнять свою работу медленнее не только из-за потерь времени на ожидание данных из ОЗУ. Другими факторами могут быть:
  • Перепады температуры процессора
  • Вариирование частоты процессора технологией Turboboost
  • Вариирование частоты процессора ядром ОС
  • Проблема усреднённых расчётов: 80% средней загрузки на периоде измерений в минуту могут не быть катастрофой, но могут и прятать в себе скачки до 100%
  • Спин-локи: процессор загружен выполнением инструкций и имеет высокий IPC, но на самом деле приложение стоит в спин-локах и не выполняет реальной работы

Выводы

Загрузка процессора стала сегодня существенно недопонимаемой метрикой: она включает в себя время ожидания данных от ОЗУ, что может занимать даже больше времени, чем выполнение реальных команд. Вы можете определить реальную загрузку процессора с помощью дополнительных метрик, таких, как количество инструкций на такт (IPC). Значения меньшие, чем 1.0 говорят о том, что вы упираетесь в скорость обмена данными с памятью, а большие - свидетельствуют о большой загруженности процессора потоком инструкций. Инструменты замера производительности должны быть улучшены для отображения IPC (или чего-то аналогичного) непосредственно рядом с загрузкой процессора, что даст пользователю полное понимание ситуации. Имея все эти данные, разработчики могут предпринять некоторые меры по оптимизации своего кода именно в тех аспектах, где это принесёт наибольшую пользу.