Почему цп загружен на 100 процентов постоянно. Устраняем высокую загрузку процессора

  • Перевод

Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке 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 (или чего-то аналогичного) непосредственно рядом с загрузкой процессора, что даст пользователю полное понимание ситуации. Имея все эти данные, разработчики могут предпринять некоторые меры по оптимизации своего кода именно в тех аспектах, где это принесёт наибольшую пользу.

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

В чем проблема?

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

В первую очередь, следует уточнить, насколько мощный у вас процессор. Если вы покупали относительно дешевый компьютер, еще и довольно давно, то в таком случае может быть и так, что он просто не тянет какие-то ресурсоемкие приложения, и здесь не стоит даже долго думать, почему загрузка ЦП 100 процентов. Что делать в такой ситуации? Остается только обновить свой ПК, если вам действительно нужны какие-то ресурсоемкие приложения или современные игры.

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

Что еще может быть?

Если вы не знаете, что делать, если ЦП загружен на 100%, попробуйте сделать следующее:

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

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

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

После длительного использования системы она начинает тормозить, возникают разного рода проблемы, которые пользователи не всегда в состоянии решить. Одной из основных причин медленной работы ПК является загрузка процессора на 100 процентов. И тут не всегда ясно из-за чего эта проблема возникает.

Есть две причины – аппаратная и программная . Вторая, конечно, появляется намного чаще, поэтому с нее и начнем. Там могут быть и вирусы, и неизвестные процессы, все что угодно. В данной статье постараюсь помочь разобраться с загрузкой процессора на 100%.

Если есть подозрения на то, что процессор грузится на 100 процентов

Зайдите в диспетчер устройств (сочетание клавиш Esc+Shift+Ctrl ) и зайдите на вкладку «Производительность» . В разделе ЦП есть, как график, который даст понять, насколько сильно грузится процессор, а также строчка «Использование» . Если нагрузка все же в 100 процентов, то стоит принимать меры.

Проблема программного типа

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


Конечно, с помощью диспетчера задач не всегда возможно найти нужный процесс, тогда на помощь приходит сторонняя утилита Process Explorer . Запустите ее и проведите сортировку процессор по загрузке (CPU) и смотрим, что он нам выдает.

Скачать Process Explorer : https://technet.microsoft.com/ru-ru/bb896653.aspx


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

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

Драйвера

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

Проблема из-за вирусов

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

Проблема с жестким диском

Вообще такое бывает не часто, но этот пункт для подстраховки я тоже опишу. В жестких дисках есть два режима работы – DMA и PIO . Первый подразумевает работу напрямую с ОЗУ, а второй устаревший и задействует при работе процессор. Естественно, если жесткий диск работает у вас в режиме PIO, то нужно переключиться. Я этой статье описано, как это сделать.

Проблема со периферией

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

Попасть в диспетчер устройств можно так: нажимаем клавиши Win+R и вводим туда команду devmgmt.msc .

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

Аппаратные проблемы загрузки процессора на 100%

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

Частой виной нагрузки является перегрев . А как вы думаете, из-за чего он возникает? Скорее всего из-за плохой системы охлаждения или пыли.

Для начала проверим с помощью AIDA64 или любой другой подобной утилитой процессора. В AIDA64 откройте вкладку «Компьютер» и перейдите в раздел «Датчики» .



Оптимальную температуру для вашего процессора можно определить на официальном сайте производителя. В среднем конечно, до 40 градусов – это нормально. От 50 и вше уже ставит под подозрения, а выше 70 градусов говорит о каких-то проблемах. Конечно, для некоторых процессоров даже 70 градусов оптимальная температура.

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


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

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

В данной статье мы дадим несколько дельных советов по поводу решения данной проблемы.

Причины, по которым процессор может быть загружен на 100%

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

  1. Работа фоновых системных процессов по установке и загрузке обновлений операционной системы, а также ее обслуживание;
  2. Вирусная активность;
  3. Физическое устаревание процессора.

Теперь о каждой более подробно.

Работа фоновых системных процессов

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

svchost грузит процессор

Также не исключены периодические проверки ОС на наличие угроз встроенными средствами защиты.

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

Вирусная активность и вирусы — майнеры

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

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

Устаревание компьютера и процессора в частности

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

Вывод

Как видите возможных вариантов не так много. И метод устранения проблемы с загрузкой ЦП на 100 процентов следующий:

  1. Проверяем процессор, чтобы он не был слишком старым;
  2. Оставляем компьютер на несколько часов включенным и подключенным к интернету;
  3. Проверяем его на вирусы;
  4. Также можно открыть диспетчер задач, отсортировать процессы по нагрузке на процессор и почитать о процессе, который больше всего грузит процессор в интернете;
  5. В самом крайнем случае, если ничего не помогает — переустанавливаем Windows и сразу .

Загрузка центрального процессора является одной из самых распространенных и сложных проблем. 100% работ процессора отбирают непонятные службы и процессы. Это делает использование компьютера крайне сложным. Почему так происходит? Попробуем разобраться…


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

Распространенные причины увеличения нагрузки на ЦП

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

— нарушения в функционировании системы;
— перегрев процессора;
— недостаточное охлаждение.

Как выявить проблему?

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

Как определить программу, которая нагружает процессор?

Прежде всего, если компьютер вдруг стал плохо реагировать на команды и подтормаживать, нужно открыть диспетчер задач. Для выполнения данного действия можно использовать комбинации клавиш Ctrl+Alt+Del или Ctrl+Shift+Esc. Можно также вызвать в панели задач контекстное меню и найти соответствующий пункт. В открывшемся окне необходимо выбрать подробное представление. Появятся вкладки, среди которых необходимо выбрать «Процессы». В данной вкладке необходимо посмотреть, когда происходит загрузка процессора на 100%.

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

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

Сбои в работе системы

Ранее описанный метод не позволяет точно определить причину, по которой процессор загружается на 100%. Что предпринять в данном случае? В диспетчере задач часто можно увидеть ситуацию, когда вся нагрузка приходится на пункт «Бездействие системы». Снять задачу в этом случае не получится. Рекомендуется запустить утилиту, которую бесплатно распространяет корпорация Microsoft. Утилита Process Explorer позволяет получить расширенную информацию, показанную в диспетчере задач. В данном случае загрузка процессора на 100% может возникать из-за системных прерываний. В программе они обозначаются как Interrupts. Сложно сказать, в чем заключается причина подобного поведения, если не перейти к решительным действиям.

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

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

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

Перегрев и скопление пыли

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