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


Как провести тест процессора на перегрев

От температуры центрального процессора напрямую зависит производительность и стабильность работы компьютера. Если вы заметили, что система охлаждения стала шуметь сильнее, то для начала нужно узнать температуру ЦП. При слишком высоких показателях (выше 90 градусов), проведение теста может быть опасным.

Урок: Как узнать температуру процессора

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

Урок: Как ускорить работу процессора

Важная информация

Тестирование процессора на перегрев проводится только при помощи сторонних программ, т.к. стандартные инструменты системы Windows не обладают необходимым функционалом.

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

Способ 1: OCCT

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

Данной программой не рекомендуется тестировать комплектующие, которые ранее были разогнаны и/или регулярно перегреваются, т.к. во время тестов в данном ПО температура может повышаться вплоть до 100 градусов. В этом случае компоненты могут начать оплавляться и помимо этого есть риск повредить ещё и материнскую плату.

Скачать OCCT с официального сайта

Инструкция по использованию данного решения выглядит так:

  1. Перейдите в настройки. Это оранжевая кнопка с шестерёнкой, которая находится в правой части экрана.
  2. Видим таблицу с различными значениями. Найдите столбец «Остановить тест при достижении температуры» и проставьте во все колонки свои значения (рекомендуется ставить в районе 80-90 градусов). Это нужно, чтобы избежать критического нагрева.
  3. Теперь в главном окне перейдите во вкладку «CPU: OCCT», что находится в верхней части окна. Там придётся настроить тестирование.
  4. «Тип тестирования»«Бесконечный» тест длится до тех пор, пока вы его сами не остановите, «Авто» подразумевает заданные параметры пользователем. «Длительность» — здесь задаётся общая продолжительность теста. «Периоды бездействия» — это время, когда будут выводится результаты тестирования – в начальной и конечной стадиях. «Версия теста» — выбирается, исходя из разрядности вашей ОС. «Режим тестирования» — отвечает за степень нагрузки на процессор (в основном, достаточно только «Малого набора»).
  5. Как только вы завершите настройку теста, активируйте его при помощи зелёной кнопки «On», что в левой части экрана.
  6. Результаты тестирования вы можете видеть в дополнительном окне «Мониторинг», на специальном графике. Обращайте особое внимание на графу с температурой.

Способ 2: AIDA64

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

Инструкция выглядит так:

  1. В верхней части окна найдите пункт «Сервис». При нажатии на него, выпадет меню, где нужно выбрать «Тест стабильности системы».
  2. В верхней левой части только что открывшегося окна выбирайте те компоненты, которые вы бы хотели протестировать на стабильность (в нашем случае будет достаточно только процессора). Нажмите на «Start» и подождите некоторое время.
  3. Когда пройдёт определённое время (не менее 5 минут), нажмите на кнопку «Stop», а затем перейдите во вкладку со статистикой («Statistic»). Там будут показаны максимальные, средние и минимальные значения изменения температуры.

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

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

lumpics.ru

Как посмотреть загруженность процессора: несколько разных способы?

Опубликовано 13.11.2019 автор — 0 комментариев

Здравствуйте, дорогие читатели! В этой инструкции давайте разберем, как посмотреть загруженность процессора. Способов всего три, поэтому публикация будет не очень длинной.

Для чего это нужно

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

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

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

И последнее, на что стоит обратить внимание — программы, которые по каким-либо причинам не хотят работать в фоновом режиме и проводят активные действия, в которых на данный момент нет необходимости.

Как узнать нагрузку на CPU в Виндовс 7

Сделать это можно с помощью соответствующего виджета для рабочего стола. Где найти этот элемент:

  • Кликните правой кнопкой мышки по свободной области на рабочем столе;
  • Выберите опцию «Гаджеты»;
  • Дважды кликните «Индикатор ЦП».

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

Индикатор работает в режиме реального времени, всегда отображая нагрузку на ПЦ и ОЗУ.

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

Как проверить загруженность ЦП в Windows 10

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

В процентном соотношении необходимая информация отображается в графе «Использование». Также рисуется график в реальном времени чуть выше.В «Семерке» эта информация выводится в Диспетчере задач во вкладке «Быстродействие». Здесь же указана нагрузка на каждый из потоков. Неудобство в том, что потоков может быть в два раза больше, чем ядер, что обусловлено их архитектурой, поэтому достоверные данные собрать не получается.

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

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

С уважением, автор блога Андрей Андреев.

infotechnica.ru

При какой температуре процессора отключается компьютер?

Опубликовано 28.11.2019 автор — 0 комментариев

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

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

Наибольший нагрев наблюдается при сильной нагрузке — например, во время игры. Но даже в таком режиме степень нагрева «камня» редко превосходит 75–80 градусов. Еще больший нагрев свидетельствует о неполадках системы охлаждения. Как правило, компьютер при этом вырубается для защиты дорогостоящего компонента.

Такой механизм предусмотрен в ЦП производства AMD. У Intel, начиная с модели Pentium 4, используется так называемый троттлинг. Компьютер не выключается сразу же, но CPU для быстрого охлаждения начинает пропускать такты. Нормально работать на таком устройстве невозможно, однако можно завершить работу и сохранить важные данные.

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

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

  • Intel Celeron: 65–85;
  • Intel Core i3: 50–60;
  • Intel Core i5: 50–65;
  • Intel Core i7: 55–65;

  • AMD A10: 50–60;
  • AMD Phenom X3: 50–60;
  • AMD Phenom X4: 50–60;
  • Ryzen 7: 65–75;
  • Ryzen 5: 70–80.

Также стоит отметить, что традиционно CPU от АМД нагреваются немного сильнее, чем Интеловские. Связано это с особенностями архитектуры и считается нормой.

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

Для контроля за нагреванием «камня» используется единственный метод — программный. Как и БИОС, сторонние утилиты считывают информацию со встроенных датчиков и выводят ее на экран. Для этого можно использовать программы CoreTemp, CPU‑Z, SpeedFan, HMonitor, AIDA64, Everest и другие.

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

Также советую ознакомиться со следующими публикациями: «Как увеличить скорость вентилятора на процессоре», «Как часто надо менять термопасту» и «Как правильно наносить термопасту на ЦП компьютера». Буду признателен, если вы расшарите эту статью в социальных сетях. До скорой встречи!

С уважением, автор блога Андрей Андреев.

infotechnica.ru

CPU стресс-тест в Linux, как нагрузить все ядра микропроцессора

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

В статье приведены конструкции из простых и всегда доступных консольных команд в GNU Linux, которыми можно нагрузить одно или все ядра процессора. Также рассмотрим компактный но очень мощный пакет для стресс-тестов под Линукс, который можно установить одной командой. Все подробно и с примерами!

Содержание:

Утилизация мощности двух ядер CPU (40%+70%)

Опытный пользователь операционной системы (ОС) GNU Linux не раз сталкивался со случаями когда простая команда с небольшой ошибкой могла загрузить микропроцессор под самую завязку. Этим мы и воспользуемся, только у нас будет все продумано и с конкретной целью.

Сперва рассмотри достаточно интересную связку из двух отдельных команд, соединенных через конвейер (символ "|", перенаправление ввода-вывода).

dd if=/dev/urandom | bzip2 -9 > /dev/null

Ее суть: читаем случайные данные из файла "/dev/urandom" используя утилитку 'dd', через конвейер "|" перебрасываем эти считанные данные программе-архиватору "bzip2", указываем максимальный уровень сжатия (9) и выводим данный в "черную дыру", то есть в никуда - для этого есть специальный файл "/dev/null".

Таким образом, пока команда запущена (прервать ее можно нажав CTRL+C), архиватор будет сжимать непрерывный поток случайных данных и пересылать результат в вечно пустой файл. На физические диски и файловые системы ничего не пишется, а процессору есть немало работы.

Данная связка из команд загрузит два ядра CPU (Central Processor Unit) таким образом:

  • "dd if/dev/urandom" - загрузит одно ядро примерно на 40%;
  • "bzip2 -9" - загрузит второе ядро примерно на 70%.

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

Наблюдаем за нагрузкой отдельных ядер CPU

Для удобного наблюдения за нагрузкой на каждое из ядер микропроцессора можно использовать программу "System Monitor", которая входит в состав рабочего окружения KDE. Программа с похожим функционалом и таким же названием есть и в среде GNOME.

Рис. 1. Мониторим загрузку двух ядер CPU в GNU Linux используя System Monitor из KDE.

На рисунке результат загрузки двух ядер связкой из двух команд которая были рассмотрена выше. Одно ядро - оранжевй график (70%), другое ядро - желтый график (40%).

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

sudo apt-get install htop

Для запуска этого консольного монитора ресурсов используем одноименную команду:

htop

Ниже приведен пример работы этого консольного монитора ресурсов, загружены два ядра все той же связкой из команд dd и bzip2.

Рис. 2. Мониторинг нагрузки двух ядер CPU в GNU Linux используя HTOP.

Что же означают в HTOP красные и зеленые отметки в прогресс-барах для ядер CPU? - все проще простого:

  • зеленый цвет - количество ресурсов процессора, выделенные под процессы с нормальным приоритетом;
  • красный цвет - ресурсы CPU, выделяемые процессам с приоритетом ядра.

О том как узнать частоту установленного микропроцессора(ров), режимы работы ядер и другую полезную информацию я писал в одной их предыдущих статей о CPU в GNU Linux.

 Утилизация 100% мощности одного или нескольких ядер CPU

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

Скажем микропроцессору "yes"...только очень много раз!

yes > /dev/null

С виду простая и безобидная команда, а нагрузит она одно ядро CPU примерно на 100% и без скачков. Суть этой конструкции проста: выводим слово "yes" бесконечное количество раз и перенаправляем вывод в "черную дыру" - /dev/null.

Рис. 3. Нагружаем одно ядро CPU на 100% командой yes в GNU Linux.

Другие связки из простых команд для загрузки ЦПУ

Пример с командой "yes" - это наиболее простой и доступный способ нагрузить одно или несколько ядер центрального процессора.

Кроме того, можно поэкспериментировать и с другими командами и программами, которые по умолчанию доступны почти в каждом дистрибутиве GNU Linux.

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

  1. Что-то откуда-то беспрерывно считываем и перенаправляем в /dev/null;
  2. Выполняем бесконечный анализ данных какой-то программой или утилитой.

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

cat /dev/zero > /dev/null

Рис. 4. Нагружаем одно ядро CPU по максимуму на 100% командой cat в GNU Linux.

Суть команды: при помощи команды "cat" выполняем вывод бесконечного потока дынных из псевдо-устройства "/dev/zero" (генерирует нули, 000) в пустоту "/dev/null";

Как видим процесс у нас выполняется с высоким приоритетом (приоритет ядра ОС) и требует для выполнения всю вычислительную мощность одного процессорного ядра.

Для считывания данных из файла псевдо-устройства можно использовать программу "dd".

dd if=/dev/urandom of=/dev/null

Суть команды: с помощью программы "dd" (if - input file, of - output file) читаем поток случайных данных из /dev/urandom и отправляем их в "никуда" - /dev/null.

Результат мониторинга загрузки ядер в HTOP получим такой же как и на рисунке 4.

А теперь загрузим процессор подсчетом контрольной суммы бесконечного файла с нулями:

sha1sum /dev/zero

В htop мы сможем видеть то же то и на рисунке 3, правда плотность загрузки будет более стабильной.

Грузим CPU просчитывая MD5-сумму бесконечного потока случайных данных:

md5sum /dev/urandom

График загрузки будет идентичен тому что на рисунке 4, микропроцессор загружен процессом, который работает на уровне ядра ОС, очень высокий приоритет.

Грузим процессор на 100% используя pbzip2

В начале статьи был представлен пример с bzip2, которая поотдельности может нагрузит одно ядро микропроцессора. Существует также мультипоточная реализация данного архиватора - pbzip2.

Установить pbzip2 можно командой:

apt-get install pbzip2

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

cat /dev/zero | pbzip2 -c > /dev/null

Вместо источника потока "/dev/zero" можно использовать "/dev/urandom" или же собрать еще более простую конструкцию:

yes | pbzip2 -c > /dev/null

Stress - пакет комплексных нагрузочных тестов ПК

О применении утилиты "stress" в GNU Linux я уже писал в статье о самостоятельном ремонте ПК. Там она использовалась в связке с другими программами для получения такого себе нагрузочного стресс-набора на подобии AIDA64 под Windows.

Этой программой можно нагрузить сразу все доступные ядра CPU или же указать конкретно сколько ядер должны трудиться в поте лица. Для установки пакета 'stress' достаточно выполнить команду:

sudo apt-get install stress

Итак, запускаем программу с указанием загрузить 4 ядра микропроцессора:

stress --cpu 4

Результаты производительности приведены ниже.

Рис. 5. Нагружаем все ядра CPU по максимуму на 100% командой stress в GNU Linux.

Рис. 6. Смотрим результат работы программы stress в htop.

В заключение

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

Тем не менее, установив программу "stress" можно решить задачу комплексно и с дополнительными возможностями. Также для нагрузки и тестов можно использовать такой пакет программ как "phoronix-test-suite", но это уже отдельная история...

ph0en1x.net

Вы неверно измеряете загрузку процессора / Инфопульс Украина corporate blog / Habr

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

habr.com


Смотрите также



© 2010- GutenBlog.ru Карта сайта, XML.