Total cpu usage что значит
Перейти к содержимому

Total cpu usage что значит

  • автор:

Вы неверно измеряете загрузку процессора

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

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

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

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

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

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

Процессор может выполнять свою работу медленнее не только из-за потерь времени на ожидание данных из ОЗУ. Другими факторами могут быть:

Why top reports a different value for CPU usage compared to SeaLion?

Yogita Sharma

This is one of the questions that SeaLion team is asked every now and then. It is because most users schedule top command as top -b -n1 where the option -n specifies number of iterations over which top should summarize. But to summarize effective CPU utilization you should have at least two iterations as -n1 shows the total CPU utilization since the system boot. To do so, one can use -n2 which will let top sample the output over two iterations. But that’s not it, one should know that this sampling is done over a default time interval of 3 seconds or the value configured in toprc which means it gives effective utilization over a period of 3 seconds by default. However, this value could be given explicitly using the option -d in top command. So, running top -b -n2 -d1 will give you the effective CPU utilization, sampling the contents of two iterations over a period of 1 second.

Like top, SeaLion agent also samples contents of /proc/stat, at an interval of 1 second. So, it is due to this difference of sample intervals and missing out on correct number of iterations that there is no correspondence between the values reported by top and SeaLion.

To confirm the same, we ran an experimental Python script which accepts two arguments.The argument -p specifies the sample interval for /proc/stat and -t specifies the sample interval for top command. The script basically starts two subprocesses in parallel. One of them calculates directly from /proc/stat and the other one uses the output from top. It also creates multiple threads to simulate CPU usage. The script is run with Jython as it has no GIL which allows it to take full advantage of multithreading to simulate CPU usage. One can also use option -s to see details of process in top output. The script can be found here.

Let’s run the script by specifying the sample interval only for /proc/stat.

As you can see, CPU utilization reported by /proc/stat and that reported by top does not match. This happened because we didn’t specify the interval for top, it runs with the default sampling interval of 3 seconds. But in case of /proc/stat it was specified to run with sampling interval of 1 second. The time taken by script which is 3.169 seconds verifies that top command took around 3 seconds to finish.

Let’s see what happens when the intervals are same.

In this case utilization reported by /proc/stat and top is correspondent. As it is clear from the screenshot, top command runs with option -d using the argument provided to the script thereby using it as sampling interval. Since, both commands use the same interval, the outputs are correspondent.

Why some processes show CPU usage more than 100% in top output?

CPU usage for some processes, as reported by top, sometimes shoots higher than 100%. It happens only when a multithreaded process is running on a machine with multiple processors/cores. Effective CPU utilization for a process is calculated as a percentage of number of ticks elapsed by CPU being in user mode or kernel mode to the total number of ticks elapsed. If it is a multithreaded process, other cores of processor are also utilized summing the total utilization percentage to be more than 100.

To verify the same, the above mentioned script was executed on a dual core machine using option -s, showing the effective CPU utilization for a process as reported by top output.

In this case 458 is the total number of ticks for the process in user mode and kernel mode combined and that was over 3 seconds. Since 1 tick equals 10 ms, so 458 ticks equals 4.58 seconds and calculating percentage as 4.58/3 * 100 will give you 152.67, which is almost equal to the value reported by top.

So, how do I find actual CPU usage?

CPU usage refers to the time taken by CPU cycles when it is in user mode or kernel mode. Niced processes also belong to user mode whereas software and hardware interrupts are handled in kernel mode. If it is not doing any of these then either the CPU is idle or it is waiting for an I/O to complete.

From the above results, effective utilization can be calculated as sum of %us, %sy, %ni, %hi and %si, which in this case is 68.71%. Although some people may question as to why iowait is not included in CPU usage when very high value of iowait could be a reason for bad performance. It is because CPU usage by definition includes only the time spent by CPU cycles in running some processes or handling interrupts. When any process is waiting for an I/O to complete, it is not contributing to CPU cycles. So, ideally iowait is considered as a subset of idle CPU but it is true that high iowait is a bad sign and one needs to be aware of it. If a process is in uninterruptible sleep doing a disk read/write, it will result in high iowait and in that case Load Average will start spiking. However, if a process is in interruptible sleep for example waiting for a socket connection, it will contribute to high iowait but that will occur in small bursts. Since the situation of processes in uninterruptible sleep is not something which will frequently occur, SeaLion does not include iowait in CPU usage while calculating effective CPU utilization.

What Is CPU Usage?

The Central Processing Unit (CPU) is the "brain" of your computer and processes tasks required of all of the applications you're running. That includes active programs, background tasks, and operating system services.

You can see CPU usage in Activity Monitor on the Mac (image below). The Task Manager on Windows performs the same function.

CPU usage is the percentage of the total CPU capacity you're using at any given time. Older computers used to have one CPU which could only handle processing a single task at a time. However, modern computers have CPUs with multiple "cores." These are processors with multiple internal processors, each of which can handle multiple tasks simultaneously.

What Does CPU Usage Mean?

When you view details about the CPU usage on your computer, you'll see a percentage value that represents "percent utilization." It's how much of your total CPU's processing power is currently being utilized.

You’ll also see information such as the CPU’s current processing speed, the number of processes and threads running, and more.

CPU usage percentage can vary significantly depending on what you're doing with your computer. When the computer first boots, many programs and processes start up, and CPU usage will likely remain close to 100% until the computer is fully booted. When you're typing a document or reading a web page during regular operation, CPU usage might remain between 1% to 5%.

Save a file or launch a new program, and you'll see the CPU usage increase from 50% to 100% until that task completes.

What Is Too High CPU Usage?

If the CPU usage is high for short periods, there is no such thing as too-high usage. That's because 100% of the CPU may be required to perform specific tasks. However, that high utilization typically drops to "normal" levels.

When your CPU usage in the Task Manager or Activity Monitor remains higher than 10% to 30% for an extended period, it could indicate you have a lot of applications running in the background all the time. Common applications which might run in the background and increase your CPU usage include:

    programs (if it’s configured to update automatically)
  • Software that updates itself automatically like Adobe applications or Java
  • Server software like iTunes or a local web or FTP server
  • Apps you’ve installed that customize your computer’s user interface and need to run silently or processes

You can see all active processes running in the background in the Task Manager or Activity Monitor. On Windows, you can also see what software launches automatically by checking the startup folder.

You can reduce your overall CPU usage by removing anything mentioned above. It’s as simple as installing a less CPU-intensive antivirus program, turning off software settings to auto-update, or uninstalling software like iTunes or an FTP server.

What Is a Good CPU Usage?

Normal CPU usage when you aren't running any software or loading web pages is around 1% to 5%. The following activities may create the following CPU levels. These are all considered "good" CPU usage so long as you know the activity causing it.

  • Using a program with a lot of activity like lightweight games: 10% to 30%
  • Streaming video on Netflix or YouTube: 5% to 20%
  • Playing demanding computer games: 50% to 70%
  • Booting up your computer or launching a new program: 80% to 100%

If you aren’t doing anything on your computer or didn’t task your computer with doing something intensive, and you can see your CPU is constantly staying above 10%, you’ll need to troubleshoot your CPU usage issue. First, check if Windows is running any updates. Then, use Task Manager or Activity Monitor to sort CPU usage by process to track down which service or program may be causing the problem.

To check CPU usage on a Chromebook, open Google Chrome, select the three-dot menu, then choose More tools > Task manager. To view all Chromebook system specs, open Chrome and enter chrome://system in the URL bar.

To check CPU usage on Linux, use the Top command. In the command line, enter $ top. CPU usage is listed under CPU statistics.

To test your CPU temperature on Windows, download and launch a free tool like SpeedFan, CPU Thermometer, or Core Temp. On a Mac, install the System Monitor menu bar application for continuous system monitoring. Also, make sure to take steps to keep your computer cool so parts don't overheat.

cpu usage что это в компьютере

Что такое CPU Usage и за что отвечает этот показатель?

Всем здравствуйте! Сегодня разберем термин CPU usage — что это такое в компьютере, где используется и на что влияет. Также рассмотрим – за что отвечает и что делать если параметр достигает 100%.

cpu usage so znakom voprosa

CPU, как вы, вероятно знаете, не что иное, как центральный процессор компьютера или ноутбука. Usage с английского переводится как «Использование».

Соответственно, CPU usage — это использование процессора системными службами и прикладными программами.

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

В Speccy или PC Wizard такого параметра попросту нет.

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

Для запуска этой утилиту нужно нажать комбинацию клавиш Ctrl + Shift + Esc.

Замечено, что если какой-то процесс отнимает более 70% мощности ЦП, это отражается на работе компьютера: он начинает «задумываться», зависать, медленнее выполнять поставленные задачи. Исключение — процесс, который называется «Бездействие системы».

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

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

Иногда это не срабатывает, если приложение перестало отвечать на запросы операционной системы. В этом случае можно воспользоваться сервисной утилитой, которая умеет «убивать» зависшие процессы — например Auslogics Boost Speed или аналогичной.

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

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

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

Также советую почитать «Что такое СPU TM Function и как эта функция работает?». Буду признателен всем, кто расшарит этот пост в социальных сетях. До скорой встречи!

Как выполнить стресс-тест процессора и системы в целом, держит ли он частоты, нет ли перегрева (AIDA 64)

Vyipolnenie stress testaДоброго времени суток!

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Сделать это можно с помощью стресс-теста, который позволяет:

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

У AIDA есть и аналоги (на случай, если данная утилита откажется запускаться в вашей ОС). О них я рассказывал в статье о 4 лучших программах для стресс-тестирования ЦП

uskwin

Как выполнить стресс-тест

ШАГ 1: выбор программы

Для тестирования и диагностики системы сейчас достаточно много программ: OCCT, AIDA 64, ASTRA, Prime95, LinX, и др. Я все же сторонник использования AIDA 64 (собственно, ее и рекомендую вам).

AIDA 64

aida64

В чем ее основные преимущества:

Свои дальнейшие действия покажу в AIDA 64 Extreme v5.8.

ШАГ 2: запуск теста

Для открытия окна тестирования в AIDA 64 нажмите по меню » Сервис/Тест стабильности системы» (см. скрин ниже).

Test stabilnosti sistemyi

Тест стабильности системы

Далее обратите внимание на левый верхний угол (расшифрую несколько аббревиатур) :

По умолчанию, обычно, выбрано первых 4-пункта (в принципе, этого достаточно для тестирования системы и ЦП). Чтобы начать проверку – нажмите на кнопку «Start» в нижней части окна.

Важно! Нагрузка на ЦП должна сразу же дойти до 100%, температура начнет расти и гул от кулера будет становится все громче (по крайней первую минуту теста). Внимательно следите за состоянием и поведением ПК.

Nachalo testa

Начало теста / Кликабельно

В первую очередь следите за температурой ЦП (чаще всего именно она выходит за пределы оптимальных значений и процессор начинает сбрасывать частоты). Дать конкретную величину нельзя: т.к. у каждого модельного ряда она будет своей.

Скажем, для Intel Core i3÷i7 (7-8-х поколений) считается критической температурой

Temperatura protsessora Intel

ШАГ 3: контроль и результаты. На что обратить внимание

CHastota rabotyi TSP

Turbo Boost

Частоты работы процессора (Core i5-7200U)

Довольно удобно мониторить питание, температуру, и частоты во вкладке «Statistics» (см. скрин ниже). AIDA 64 отображает сразу несколько значений: текущее (Current), минимальное (Min.), максимальное (Max.), и среднее (Average).

Statistika AIDA 64

Статистика (AIDA 64)

Кстати, после остановки стресс-теста – текущая частота ЦП (CPU Clock) и его загрузка (CPU Usage) на графике должны снизится (см. скрин ниже).

Также обратите внимание на график загрузки (на надпись CPU Throttling) – в идеале она должна быть «зеленой», как у меня в примере.

Posle zaversheniya testa obratite vnimanie na grafiki nagruzki i chastotyi rabotyi TSP

После завершения теста (обратите внимание на графики нагрузки и частоты работы ЦП)

Доброго времени суток!

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

Очень часто причиной «такой» медленной работы и подлагиваний — является высокая загрузка процессора, иногда она доходит до 100%!

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

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

uskwin

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

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

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

chistka PK ot musora

Каким процессом, программой загружен процессор

Самый быстрый способ определить, какая программа нагружает ЦП — это вызвать диспетчер задач (кнопки: Ctrl+Shift+Esc ).

В диспетчере задач откройте вкладку «Процессы» и отсортируйте приложения по нагрузке на ЦП. На скриншоте ниже 👇, видно, что львиную долю ЦП (

66%) съедает браузер Firefox (хотя он у меня даже не запущен. ).

Если у вас есть подобная «скрытая» программа — то тут же из диспетчера задач ее можно закрыть (достаточно нажать на нее правой кнопкой мышки. ).

Zagruzka TSP 66

👉 Примечание

Мониторинг ресурсов в Windows

👉 Важно!

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

Если диспетчер задач не дал информации к размышлению — рекомендую воспользоваться одной утилитой Process Explorer (кстати, загрузить ее можно с сайта Microsoft. ).

Process Explorer (поиск «невидимой» причины тормозов)

Отличная программа, которая не раз меня выручала! Основное ее направление работы — показать вам ВСЕ процессы и программы, запущенные на компьютере (от нее, наверное, не уйдет никто. ). Таким образом, вы сможете определить наверняка, какой именно процесс нагружает ЦП.

👇 Ниже скриншот очень показательный:

20% системными прерываниями (hardware interrupts and DPCs).

Если ЦП грузит interrupts

Если проблема связана hardware interrupts and DPCs — то скорее всего проблемы связаны с драйверами. Точнее с их конфликтом межу собой, а еще более вероятней, несовместимостью с вашей ОС Windows. Причем, даже если в описании к драйверу значится ваша версия Windows — это не 100% гарантия совместимости.

👉 Особое внимание обратите на драйверы: видеокарты, чипсета мат. платы, сетевой карты, Wi-Fi, звуковой карты. Рекомендую скачать их сразу нескольких версий и поочередно попробовать.

Реже проблема связана с вирусами, еще реже с периферийным оборудованием: принтер, сканер, сетевые карты и т.д.

👉 Проверка и обновление драйверов

Obnovleniya drayvera Legko

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

Как запустить диспетчер устройств

Далее обратите внимание на все устройства, на которых горит восклицательный знак (иногда красный крестик) — значит, что для устройства в системе нет драйверов. 👇

Есть неизвестное устройство

👉 Поиск вирусов

Вирусы — могут быть причиной всего, чего угодно.

Обычно, когда процессор загружен из-за вирусов — можно найти какой-нибудь процесс, который грузит систему. Чаще всего, этот процесс системный: например, вирусы маскируются под процесс svchost.exe — даже пользователю с опытом удается не сразу найти и опознать среди реальных процессов, вирусный (но об этом файле будет рассказано ниже 👇).

Кстати, рекомендую загрузить Windows 👉 в безопасном режиме — и проверить нет ли в нем загрузки ЦП (часто именно в безопасном режиме — процессор работает нормально!). Сделать это можно разными путями:

Как запустить безопасный режим

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

👉 Периферийное оборудование

Если проблема до сих пор не была найдена, рекомендую попробовать отключить от ноутбука (компьютера), все лишнее: принтер, сканер, мышку и пр.

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

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

Svchost.exe грузит процессор — что это?

Очень часто грузит процессор файл svchost.exe — по крайней мере, так говорит диспетчер задач. Дело в том, что это основной процесс для загрузки служб — т.е., грубо говоря, нужный системный процесс, без которого не обойтись.

Здесь есть два варианта случаев:

Как определить: какой svchost.exe файл системный, а какой нет?

На мой взгляд, самый простой способ — это воспользоваться утилитой AVZ (описание и ссылку на скачивание найдете здесь).

Суть в чем: все системные процессы, о которых знает AVZ, помечены зеленым цветом. Т.е. если у вас в списке будут svchost черного цвета — присмотритесь к ним очень внимательно, они, скорее всего, вирусные.

Кстати, при помощи этой AVZ можно проанализировать и все другие подозрительные процессы.

Отключение автоматического обновления Windows

Довольно часто svchost грузит процессор из-за включенного автоматического обновления Windows. Я предлагаю ее отключить (ничего плохого в этом нет — просто пару раз в месяц будете вручную проверять обновления — 1-2 раза нажать мышкой. ).

Как открыть службы

Сохраните настройки и перезагрузите компьютер.

Центр обновления Windows

Нет ли перегрева? Проверка температуры процессора

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

👉 Чаще всего, причиной перегрева является:

Пыль и чистка пыли

Sleva boksovyie kuler sprava kuler bashennogo tipa

1) Как почистить компьютер от пыли (в т.ч. чистка монитора, системного блока, клавиатуры).

2) Как почистить ноутбук от пыли: в домашних условиях, самостоятельно 👌

👉 Признаки, по которым можно заподозрить перегрев:

Чтобы узнать температуру процессора — рекомендую воспользоваться какой-нибудь утилитой для определения характеристик ПК. Мне, например, симпатичны 👉 Speccy и Aida 64. Скриншот температуры процессора из Speccy вы можете увидеть ниже (t=49 °C, градусов Цельсия).

👉 Какой должна быть температура процессора?

Очень популярный вопрос, на который нельзя дать однозначного ответа. Дело в том, что у разных производителей — разные критические температуры. Рекомендую ознакомиться с парочкой статей ниже, там я ответил более подробно! 👇

👉 Для персонального компьютера (пару слов о t°C)

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

Если говорить в общем, то если температура вашего процессора до 40-45°C (градусов Цельсия) — то с ним все в порядке, система охлаждения справляется. Температура выше 50°C — может указывать на проблемы в системе охлаждения (или на большое количество пыли).

Все что выше 60 градусов — необходимо пристально просмотреть и принять меры: почистить от пыли, установить дополнительные кулеры (или заменить старые).

Что касается ноутбуков — то здесь планка несколько иная. Так как пространство в ноутбуке ограничено — то процессоры здесь нагреваются выше. Например, не редкость, что рабочая температура в нагрузке у многих процессоров составляет около 70-80°C (особенно у игровых моделей).

При простое, обычно, эта планка составляет около 40-50°C. Вообще, стоит начинать беспокоиться (для большинства современных ноутбуков), если температура процессора поднимается выше 75-80°C (по крайней мере уточнить, нормальная ли это для вашего устройства).

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

Кстати, многие опытные пользователи (да и некоторые спецы) вторят про критические 105°C для современных ноутбуков. Я скажу так, работать-то ноутбук может и будет при 90-95°C, и даже, возможно, при 100°C — но главный вопрос: сколько? Вообще, эта тема дискуссионная для многих.

Иногда найти и устранить причины высокой нагрузки на процессор и тормозов компьютера — дело достаточно утомительное и не простое.

В подобных случаях, рекомендую попробовать некоторые LiveCD-диски с разными ОС, или заменить свою Windows 7, скажем, на более новую Windows 8/10 — проблема может решиться всего лишь 10-минутной переустановкой ОС.

Ну, а на этом у меня все. Если решили вопрос иначе — чиркните пару слов в комментариях! Заранее спасибо.

Вы неверно измеряете загрузку процессора

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

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

Процессор может выполнять свою работу медленнее не только из-за потерь времени на ожидание данных из ОЗУ. Другими факторами могут быть:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *