Что такое загрузка процессора
CPU Load: когда начинать волноваться?
Аналогия транспортного потока
Так Вы говорите, 1.00 — идеальное значание load average?
Что насчет многопроцессорных систем? Мой сервер показывает загрузку 3.00 и все ОК!
У Вас четырехпроцессорная система? Все в порядке, если load average равен 3.00.
В мультипроцессорных системах загрузка вычисляется относительно количества доступных процессорных ядер. 100% загрузка обозначается числом 1.00 для одноядерной машины, числом 2.00 для двуядерной, 4.00 для четырехъядерной и т.д.
Если вернуться к нашей аналогии с мостом, 1.00 означает «одну полностью загруженную полосу движения». Если на мосту всего одна полоса, 1.00 означает, что мост загружен на 100%, если же в наличии две полосы, он загружен всего на 50%.
То же самое с процессорами. 1.00 означает 100% загрузки одноядерного процессора. 2.00 — 100% загрузки двуядерного и т.д.
Многоядерность vs. многопроцессорность
Сведем все вместе
Давайте посмотрим на средние значения загрузки с помощью команды uptime :
Здесь представлены показатели для системы с четырехъядерным процессором и мы видим, что имеется большой запас по нагрузке. Я даже не буду задумываться о ней, пока load average не превысит 3.70.
Какое среднее значение мне следует контролировать? Для одной, пяти или 15 минут?
Количество ядер важно для правильно понимания load average. Как мне его узнать?
Команда cat /proc/cpuinfo выводит информацию обо всех процессорах в вашей системе. Чтобы узнать количество ядер, «скормите» ее вывод утилите grep :
Примечания переводчика
Выше представлен перевод самой статьи. Также много интересной информации можно почерпнуть из комментариев к ней. Так, один из комментаторов говорит о том, что не для каждой системы важно иметь запас по производтельности и не допускать значения загрузки выше 0.70 — иногда нам нужно чтобы сервер работал «на всю катушку» и в таких случаях load average = 1.00 — то, что доктор прописал.
Хабраюзер dukelion добавил в комментариях ценное замечание, что в некоторых сценариях, для достижения максимального КПД «железа», стоит держать значение load average несколько выше 1.00 в ущерб эффективности работы каждого отдельного процесса.
Хабраюзер enemo в комментариях добавил замечание о том, что высокий показатель load average может быть вызван большим количеством процессов, выполняющих в данный момент операции чтения/записи. То есть, load average > 1.00 на одноядерной машине не всегда говорит о том, что в Вашей системе отсутствует запас по загрузке процессора. Требуется более внимательное изучение причин такого показателя. Кстати, это хорошая тема для нового поста на Хабре 🙂
Вы неверно измеряете загрузку процессора
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.
Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:
А на самом деле это выглядит вот так:
«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Что это означает для вас? Понимание того, какое количество времени процессор действительно выполняет некоторые операции, а какое — лишь ожидает данные, иногда даёт возможность изменить ваш код, уменьшив обмен данных с оперативной памятью. Это особенно актуально в нынешних реалиях облачных платформ, где политики автоматического масштабирования иногда напрямую завязаны на загрузку CPU, а значит каждый лишний такт «холостой» работы стоит нам вполне реальных денег.
Что же такое загрузка процессора на самом деле?
Та метрика, которую мы называем «загрузкой процессора» на самом деле означает нечто вроде «время не-простоя»: то есть это то количество времени, которое процессор провёл во всех потоках кроме специального «Idle»-потока. Ядро вашей операционной системы (какой бы она ни была) измеряет это количество времени при переключениях контекста между потоками исполнения. Если произошло переключение потока выполнения команд на не-idle поток, который проработал 100 милисекунд, то ядро операционки считает это время, как время, потраченное CPU на выполнение реальной работы в данном потоке.
Эта метрика впервые появилась в таком виде одновременно с появлением операционных систем с разделением времени. Руководство программиста для компьютера в лунном модуле корабля «Апполон» (передовая на тот момент система с разделением времени) называла свой idle-поток специальным именем «DUMMY JOB» и инженеры сравнивали количество команд, выполняемых этим потоком с количеством команд, выполняемых рабочими потоками — это давало им понимание загрузки процессора.
Так что в этом подходе плохого?
Сегодня процессоры стали значительно быстрее, чем оперативная память, а ожидание данных стало занимать львиную долю того времени, которое мы привыкли называть «временем работы CPU». Когда вы видите высокий процент использования CPU в выводе команды top, то можете решить, что узким местом является процессор (железка на материнской плате под радиатором и кулером), хотя на самом деле это будет совсем другое устройство — банки оперативной памяти.
Ситуация даже ухудшается со временем. Долгое время производителям процессоров удавалось наращивать скорость их ядер быстрее, чем производители памяти увеличивали скорость доступа к ней и уменьшали задержки. Где-то в 2005-ом году на рынке появились процессоры с частотой 3 Гц и производители сконцентрировались на увеличении количества ядер, гипертрейдинге, много-сокетных конфигурациях — и всё это поставило ещё большие требования по скорости обмена данных! Производители процессоров попробовали как-то решить проблему увеличением размера процессорных кэшей, более быстрыми шинами и т.д. Это, конечно, немного помогло, но не переломило ситуацию кардинально. Мы уже ждём память большую часть времени «загрузки процессора» и ситуация лишь ухудшается.
Как же понять, чем на самом деле занят процессор
Используя аппаратные счетчики производительности. В Linux они могут быть прочитаны с помощью perf и других аналогичных инструментов. Вот, например, замер производительности всей системы в течении 10 секунд:
Ключевая метрика здесь это «количество инструкций за такт» (insns per cycle: IPC), которое показывает, сколько инструкций в среднем выполнил процессор на каждый свой такт. Упрощённо: чем больше это число, тем лучше. В примере выше это число равно 0.78, что, на первый взгляд кажется не таким уж плохим результатом (78% времени выполнялась полезная работа?). Но нет, на этом процессоре максимально возможным значением IPC могло бы быть 4.0 (это связано со способом получения и выполнения инструкций современными процессорами). То есть наше значение IPC (равное 0.78) составляет всего 19.5% от максимально возможной скорости выполнения инструкций. А в процессорах Intel начиная со Skylake максимальное значение IPC уже равно 5.0.
В облаках
Когда вы работаете в виртуальном окружении, то можете и не иметь доступа к реальным счетчикам производительности (это зависит от используемого гипервизора и его настроек). Вот статья о том, как это работает в Amazon EC2.
Интерпретация данных и реагирование
Если у вас IPC 1.0, то ваше приложение страдает не столько от ожидания данных, сколько от чрезмерного количества выполняемых инструкций. Ищите более эффективные алгоритмы, не делайте ненужной работы, кэшируйте результаты повторяемых операций. Применение инструментов построения и анализа Flame Graphs может быть отличным способом разобраться в ситуации. С аппаратной точки зрения вы можете использовать более быстрые процессоры и увеличить количество ядер.
Как вы видите, я провёл черту по значению IPC равному 1.0. Откуда я взял это число? Я рассчитал его для своей платформы, а вы, если не доверяете моей оценке, можете рассчитать его для своей. Для этого напишите два приложения: одно должно загружать процессор на 100% потоком выполнения инструкций (без активного обращения к большим блокам оперативной памяти), а второе должно наоборот активно манипулировать данным в ОЗУ, избегая тяжелых вычислений. Замерьте IPC для каждого из них и возьмите среднее. Это и будет примерная переломная точка для вашей архитектуры.
Что инструменты мониторинга производительности на самом деле должны показывать
Я считаю, что каждый инструмент мониторинга производительности должен показывать значение IPC рядом с загрузкой процессора. Это сделано, например, в инструменте tiptop под Linux:
Другие причины неверной трактовки термина «загрузка процессора»
Процессор может выполнять свою работу медленнее не только из-за потерь времени на ожидание данных из ОЗУ. Другими факторами могут быть:
990x.top
Простой компьютерный блог для души)
Загрузка ЦП в компьютере — что это такое?
Приветствую друзья! Компьютерный мир состоит из многих терминов, понятий, не все они нам знакомы.. Иногда бывает прикол — кто-то что-то говорит про компьютер, а что.. ну совсем непонятно(( Вот например — загрузка ЦП в компьютере — что это значит? Что хотят этим сказать? Сегодня тема будет для начинающих пользователей — я простыми словами расскажу что все это значит))
Разбираемся
Загрузка ЦП в компьютере — означает загрузка центрального процессора в компьютере, простыми словами — нагрузка процессора. Ее можно посмотреть в диспетчере задач, также можно увидеть какой процесс насколько грузит процессор. В этом плане диспетчер полностью предоставляет всю нужную информацию.
Сперва давайте я покажу как запустить диспетчер задач — есть простой способ, который должен вам подойти. Нужно нажать правой кнопкой по панели задач и там в меню выбрать нужный пункт:
Способ универсальный, работает как в старенькой Windows XP, так и в новенькой Windows 10))
Для продвинутых юзеров существует другой способ — зажимаете кнопки Win + R, появится окошко Выполнить, туда вставляете команду taskmgr и нажимаете ОК.
Загрузка ЦП в диспетчере
Теперь посмотрим где именно можно посмотреть нагрузку. Вообще диспетчер семерки и десятки немного отличается, но разобравшись в одном, вы с легкостью разберетесь в другом. Сегодня буду показывать на примере десятки.
Смотрите, на вкладке Процессы отображены запущенные программы и напротив, в колонке ЦП будет указано в процентах насколько происходит нагрузка на процессор:
Чем сильнее нагрузка — тем насыщеннее цвет. Касается всех колонок. А вот в семерке такого нет((
Важно — если нажать по колонке ЦП, то произойдет сортировка, таким образом можно узнать какой процесс вызывает максимальную нагрузку. Пример — нажали по заголовку колонки ЦП, результат:
Сортировать можно любую колонку.
Как точно определить процесс который грузит комп?
Для этого вы также сортируете колонку ЦП, определяете по процентам кто там грузит сильно, далее нажимаете правой кнопкой по виновнику — выбираете Подробно:
Если нажать Открыть расположение файла — тогда будет открыта папка, откуда запускается программа/процесс, при этом сам файл в папке будет выделен.
В результате вас перекинет на вкладку Подробности, где будет выделен процесс:
В колонке ЦП указана цифра, которая имеет значение от 0 до 100. Хоть нигде и не написано, но я думаю — это проценты. Собственно цифра и означает — насколько в процентах грузит процесс.
С другой стороны — можно сразу зайти на вкладку Подробности и там также сортировать процессы по колонке ЦП, возможно так будет даже эффективнее))
Как завершить процесс?
Здесь также все четко — нажимаете правой кнопкой по процессу и выбираете пункт Снять задачу:
А вот пункт Завершить дерево процессов позволит сразу выключить все остальные процессы, которые относятся к программе. Например в нашем случае программа Google Chrome с процессом chrome.exe — если завершить дерево, то все запущенные chrome.exe будут завершены))
В Windows 7 также есть колонка ЦП, там просто немного другое оформление (кстати оно мне нравится больше чем в десятке):
По названию колонки также можно нажать и будет сортировка. Скучаю я за Windows 7..
Под каким процессом работает сам диспетчер задач?
Работает под taskmgr.exe, его также можно увидеть в списке:
Если завершить — диспетчер закроется))
Диспетчер — системная прога, есть во всех Windows, ну по крайней мере начиная с XP. Запускаться всегда должен из папки:
Кстати видите taskschd.exe? Это коллега по цеху — процесс планировщика задач))
Минутку внимания. Под процесс taskmgr.exe могут маскироваться вирусы, такое уже встречалось в истории. При подозрениях — проверьте папку запуска, при желании можете просканировать ПК на вирусы утилитами Dr.Web CureIt!, AdwCleaner, HitmanPro — это лучшая тройка утилит, лично рекомендую.
Вывод
Почему загружен процессор и как уменьшить загрузку ЦП?
У вас постоянно загружен процессор и сильно тормозит компьютер или ноутбук? И при этом – в режиме простоя? Большая загрузка ЦП (центрального процессора) – это одна из наиболее распространенных на сегодня проблем. И с ней постоянно сталкиваются пользователи ПК и ноутбуков. Давайте разберёмся, как снизить нагрузку центрального процессора.
Эти советы – универсальны, поэтому можете применять их на Windows 7, 8, 10 и XP. Модель процессора на ноутбуке или компьютере тоже не имеет особого значения.
Какая программа загружает процессор
Для начала нужно запустить диспетчер и посмотреть, на сколько процентов загружен процессор на вашем ПК. Для этого нажмите Ctrl+Shift+Del и обратите внимание на пункт «Загрузка ЦП» (он находится внизу).
Если же процессор загружен на 50 или 100 процентов, то это явно перебор. Чтобы посмотреть, почему так сильно грузится процессор на Windows 7, перейдите на вкладку «Процессы», а затем нажмите на поле «ЦП». Это отсортирует список в порядке убывания.
На скриншоте ниже видно, что ЦП грузит только плагин Flash Player (из-за включенного браузера). Но не сильно, поэтому в данном случае это не критично.
А еще обязательно обратите внимание на неизвестные процессы, из-за которых процессор загружен на 50 процентов (или выше). Особенно, если вы их первый раз видите, и они грузят ЦП как минимум на 20%. Вполне возможно, что это вирусы.
Что делать, если процессор загружен без причин
Не нашли никаких процессов в диспетчере, а ЦП по-прежнему сильно грузится в простое? Для начала можно нажать кнопку «Отображать процессы всех пользователей». Обычно это не помогает, но, возможно, в списке появятся новые пункты.
А чтобы отобразить все процессы, из-за которых постоянно загружен ЦП, рекомендуется использовать бесплатную программу Process Explorer. Пользоваться ею очень просто:
На скриншоте выше видно, что всему виной процесс Interrupts (системные прерывания). Именно он нагружает процессор на 18% в режиме простоя. Хотя может грузить на 50 и даже на все 100 процентов!
Исправить подобную проблему крайне сложно. А все потому, что такая большая нагрузка ЦП может возникать из-за:
Чаще всего сильная загрузка центрального процессора возникает из-за драйверов. Чтобы проверить это, зайдите в безопасный режим и посмотрите, есть ли нагрузка на ЦП. Если нет – то, скорее всего, проблема кроется именно в драйверах.
Наиболее простой способ исправить ее – переустановить Windows 7. А потом поочередно устанавливать драйвера на компьютер или ноутбук и проверять загрузку ЦП после каждого из них. Так можно быстро найти виновника.
Обычно эта проблема появляется из-за универсальных драйверов Microsoft, которые ставятся сразу после установки новой Windows. В данном случае лучше самостоятельно найти нужные драйвера на оф. сайте производителя и установить их. Подробнее о том, как это сделать, читайте здесь:
При подозрениях на наличие вирусов нужно установить любой антивирус на компьютер и запустить проверку. Если не знаете, какой выбрать, посмотрите здесь: лучшие бесплатные антивирусы для Windows.
А еще совсем не лишним будет использование специальных утилит для поиска вредоносных программ и рекламных вирусов (adware, malware).
Некорректная работа жесткого диска тоже может повлиять на то, что процесс будет сильно загружен. Особенно, если он работает в режиме PIO (должен быть установлен режим DMA). Это нужно обязательно проверить и исправить при необходимости.
И последняя причина, из-за которой возникают системные прерывания и большая нагрузка процессора – проблемы с принтерами, сканерами и другим периферийным оборудованием. Чтобы это проверить, отключите все устройства и оставьте только мышку и клавиатуру.
Также зайдите в Пуск – Панель управления – Диспетчер устройств и посмотрите, имеются ли здесь устройства, возле которых стоит желтый восклицательный знак. Его наличие говорит о том, что оборудование работает некорректно и требуется обновить драйвер (что и нужно сделать).
Процессор постоянно загружен на 100 процентов в Windows 7
Есть еще одна довольно распространенная проблема, которая часто встречается на Windows 7. Заключается она в том, что на многих ПК и ноутбуках процессор постоянно загружен на 100 процентов в режиме простоя (т.е. даже на рабочем столе). И если открыть диспетчер задач, то там можно увидеть процесс svchost.exe, который дублируется несколько раз.
Причина здесь кроется в автоматическом обновлении Windows 7. Дело в том, что обновления сейчас выпускают только для Виндовс 8 и 10. Для Windows 7 они, конечно же, не подходят, а потому работают некорректно. Именно по этой причине на Windows 7 процессор грузится на 100 процентов.
Чтобы это исправить, нужно просто отключить автоматическое обновление. Для этого:
Как устранить проблему высокой загрузки процессора
Основные моменты:
Один процесс потребляет практически все ресурсы ЦП? Вот как исправить высокую загрузку ЦП.
Один процесс потребляет практически все ресурсы ЦП? Вот как исправить высокую загрузку ЦП.
Центральный процессор (ЦП) — это «мозг» вашего ПК. Все основные компоненты системы, такие как графический адаптер и ОЗУ, зависят от инструкций, выполняемых ЦП. Это делает функционирующий надлежащим образом процессор критически важным компонентом каждого игрового ПК.
Когда игра зависает или происходит сбой, открытые приложения перестают реагировать на вводимые команды, или программы открываются с очень медленной скоростью, причиной может быть чрезмерно высокая загрузка процессора. Рассмотрим, как устранить проблемы, связанные с высоким использованием ЦП в Windows* 10.
1. Перезагрузка
Первый шаг: сохраните работу и перезагрузите компьютер. «Выключите и снова включите его» — таков классический совет по устранению неполадок. Это может решить проблему, особенно если прошло много времени с момента последней перезагрузки. Перезагрузка может удалить временные файлы и устранить замедление в процессах, которые давно выполняются.
2. Завершение или перезапуск процессов
Откройте Диспетчер задач (CTRL+SHIFT+ESCAPE). Если программа снова начала использовать процессор даже после перезапуска, Диспетчер задач предоставляет один из самых простых способов наблюдения.
Обратите внимание, что полноэкранные программы, такие как игры, иногда скрывают диспетчер задач за своим окном. Чтобы избежать этого, нажмите «Параметры» в верхней строке меню, затем выберите «Всегда поверх остальных окон». Если у вас есть второй монитор, вы также можете просто перетащить на него окно Диспетчера задач.
Открыв Диспетчер задач, нажмите на вкладку «Процессы» в верхней части окна. Нажмите «Дополнительные сведения» в нижней части этой вкладки, чтобы открыть фоновые процессы Windows. Найдите столбец «ЦП» в верхней части вкладки «Процессы» и нажмите его, чтобы упорядочить содержимое по уровню использования ЦП:
Во время запуска некоторых игр, работы с приложением для редактирования видео или потоковой передачи, выполнения антивирусной проверки или одновременного открытия множества вкладок в браузере высокая загрузка процессора вполне ожидаема. Если вы сталкиваетесь с такой ситуацией высокой загрузки ЦП ежедневно, необходимо закрыть все неиспользуемые фоновые программы и вкладки, а затем вернуться в Диспетчер задач и проверить, изменилась ли ситуация.
Важно помнить, что высокая загрузка процессора при одновременной работе в многозадачном режиме может быть нормальным явлением. Современные процессоры поддерживают многозадачность, разделяя процессы между несколькими своими ядрами, которые работают одновременно с различными наборами команд. Технология Intel® Hyper-Threading (Intel® HT) делает еще один шаг вперед, создавая несколько «потоков» выполнения для каждого ядра, каждый из которых обрабатывает различные процессы Если загрузка ЦП в ресурсоемкой программе, например Adobe Premiere, высока, возможно, нужно просто эффективно использовать доступные ядра процессора.
Технология Intel® Turbo Boost также может помочь справиться с большими рабочими нагрузками, динамически увеличивая частоту процессора. Семейство процессоров Intel® Core™ серии X оснащено еще одним инструментом, который помогает избежать замедления работы. Это технология Intel® Turbo Boost Max 3.0, благодаря которой наисложнейшие задачи автоматически назначаются самым быстрым ядрам процессора. Также повышается частота этих ядер.
Эти процессорные технологии могут значительно повысить скорость работы в многозадачном режиме и при использовании ресурсоемких программ, но ситуации с чрезмерной загрузкой ЦП все равно могут возникать. Если вы сталкиваетесь со 100% загрузкой ЦП, а в верхней части столбца ЦП отображается фоновый процесс с именем Runtime Broker, Windows Session Manager или Cortana, значит имеется какая-то проблема.
Эти процессы Windows должны использовать очень мало вычислительной мощности или памяти в обычных условиях. Часто вы видите в Диспетчере задач, что они используют 0% или 1%. Когда компьютер находится в режиме простоя, все эти процессы вместе обычно используют менее 10% ресурсов процессора. Однако странное или нетипичное поведение — например, один процесс Windows, пытающийся выполнить поиск, который был заблокирован в другом месте, иногда может привести к тому, что процесс будет потреблять почти все ресурсы системы.
После открытия Диспетчера задач и обнаружения процесса, использующего существенную часть ресурсов ЦП, выполните поиск в Интернете, чтобы идентифицировать его. Не стоит без веской причины останавливать такие процессы, как например, explorer.exe (который управляет многими графическими элементами, в частности, рабочим столом и меню «Пуск») или winlogon.exe (задачи запуска и экран CTRL+ALT+DEL).
Если же вы определили процесс как некритический (еще раз проверьте, что сохранили свою работу), нажмите на процесс, чтобы выбрать его, затем нажмите «Завершить процесс» в правом нижнем углу Диспетчера задач. Завершение процесса приведет к прекращению работы программы без сохранения.
3. Обновление драйверов
Если процесс все еще использует слишком много ресурсов процессора, попробуйте обновить драйверы. Драйверы — это программы, управляющие отдельными устройствами, подключенными к системной плате. Обновление драйверов может устранить проблемы совместимости или ошибки, которые приводят к увеличению загрузки ЦП.
Откройте меню «Пуск», затем «Параметры». Нажмите «Обновления и безопасность», затем кнопку «Проверить наличие обновлений». Это приведет к обновлению критически важных драйверов. Производители графических плат также предоставляют утилиты (например, NVIDIA GeForce Experience для графических адаптеров), которые могут повысить общую производительность игр.
Некоторые редкие ошибки также могут быть исправлены путем обновления версии BIOS. BIOS — это встроенное ПО, установленное на системной плате и содержащее инструкции для других компонентов компьютера при запуске. Поскольку обновление BIOS обычно не приводит к повышению производительности (и может вызвать появление новых проблем), это следует делать только в том случае, если вы обнаружили ошибку, которая приводит к увеличению использования ЦП, и нашли обновление BIOS, непосредственно устраняющее эту проблему.