Что такое ram и cpu в компьютере – Частота процессора и частота оперативной памяти:их совместимость и что важнее?

Содержание

Тестирование RAM и CPU.

Существуют многочисленные инструменты и программное обеспечение для стресс-тестирования вашей системы, но три лучшие,которые я нашел IntelBurnTest 2.54,Prime95,и Memtest86 + .Каждая из них хороша для тестирования конкретных частей системы.Важные изменения,когда вы проводите стресс-тестирование с технологией Hyper-threading или с поддержкой технологии Turbo Boost.Основное изменение,которое вы будете иметь,чтобы сделать (при стресс-тестировании меньше, чем все ваши ядра) изменение количества потоков,которые использует тестовая программа.Если вы решили разогнать с hyper-threading, вам нужен один поток для каждого ядра,и которые вы хотите проверить, и если технология hyper-threading включена, вы захотите, чтобы работали два потока для каждого ядра, которое вы хотите проверить.Обе программы IntelBurnTest 2.54 и Prime95 имеют параметры для указания того,сколько потоков включить,поэтому мы укажем их, когда мы будем говорим о них обоих.

Использование IntelBurnTest 2.54 для стресс-тестирования процессора.

IntelBurnTest 2.54 (IBT) — это та,которую я использую для тестирования CPU.Это крайне напряженная программа,которая основана на базе процессоров Intel Linpack для тестирования процессора. Эта программа сделает ваш процессор очень горячим, поэтому убедитесь,что у вас есть хорошая система охлаждения. Также держите глаза на вашей температуре процессора в Core Temp.

stress-tes-intel-burn-test-standardtstress-tes-intel-burn-test-standardt

С IntelBurnTest 2.54 вы можете указать уровень стресс теста (как сильно она подчеркивает вашу систему).Существует четыре уровня стресса: стандартный,высокий,очень высокий,максимальный,и » пользовательский».Вы также можете указать, сколько раз вы хотите запустить тест путем изменения числа раз в поле times to run и сколько потоков вы хотите использовать,изменив в выпадающем списке Потоки .

Быстрое стресс-тестирование — промежуточные шаги разгона процессора

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

Тщательное стресс-тестирование процессора

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

Использование Prime95 для bclk с точностью, ОЗУ, или стресс-тестирование всей системы

Prime95 — это еще одна программа стресс-тестирования,которая также может быть использованы для стресс-теста процессора, но я обычно использую её,как стресс-тест для bclk,памяти, или всей системы в целом.

Прежде, Чем Вы Начнете, Включить Округлить Проверка

Однако, прежде чем делать что-либо со Prime95, вы должны включить дополнительно -> округление проверка (который показан на рисунке ниже). Это делает Prime95 проверку на ошибки после каждого раунда, так что вы будете уведомлены, если произошла ошибка.

round-off-checking-enable-prime95round-off-checking-enable-prime95

Как только вы сделаете это, вы можете получить пыток тестовое изображение, которое вы видите ниже, зайдя в » настройки -> тест пыток.

test-prime95-torturetest-prime95-torture

В Небольшой FFT тест предназначен для проверки только процессор, но я бы рекомендовал именно с помощью Intel сжечь тест и Смесь тест будет тестировать все (ЦП, ОЗУ, и микросхем).

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

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

Быстрое тестирование всей системы

Настраиваемый тест пыток настройки (которые вы видите на картинке выше) работают очень хорошо для быстрого тестирования, как система в целом, работающих с помощью отправки больших объемов данных между ЦП и ОЗУ.

Вы должны запустить этот тест по крайней мере пять минут.

Вы будете использовать этот тест, когда вы пытаетесь

  1. Найти максимальное с точностью bclk.
  2. Тест оперативной памяти стабильности с остальной системой.
Тщательное тестирование всей системы

Смесь теста обычно работает очень хорошо для тщательного тестирования системы в целом.

Я бы также порекомендовал настройка этот тест, чтобы использовать 90% вашего неиспользуемую память. Вы можете сделать это, нажав сначала blend, а затем нажав кнопку custom (которая позволит вам изменять нормальное сочетание параметров).

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

performance-tab-windows-7-task-managerperformance-tab-windows-7-task-manager

В этом случае 4358 Мб доступно, поэтому мы бы хотели, чтобы выполнить пользовательскую смесь теста с 4358 * 0.90 = 3922 Мб оперативной памяти.Количество времени, вы должны реально выполнить этот тест отличается в зависимости от того, кого вы спрашиваете. Некоторые рекомендуют несколько часов достаточно, а другие говорят 24 часа необходима для обеспечения стабильности под высокой нагрузкой (например, в режиме 24/7 складывающиеся). Однако, большинство стабильный разгон клубы требуют 12 часов, чтобы доказать, стабильность, поэтому кажется, что счастливый медиана. Я лично просто запустите его на ночь в течение 8 часов, но и запустить его так долго, как вы должны чувствовать себя стабильно.

Тест оперативной памяти с Memtest86+

Программа Memtest86+ может быть использована,чтобы убедиться, что ваш RAM speed и тайминги — » стабильный».Просто запишите его на компакт-диск и загрузитесь с него. Она будет автоматически запускаться при тестировании памяти и отображать много полезной информации, которую вы можете видеть на картинке ниже.

memtest86memtest86

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

Лучшие практики для Memtest86+

Если вы просто тестирования промежуточного ОЗУ оверклокинга шаги, я бегал по крайней мере, 5 минут или до полного прохода, чтобы убедиться, что ваша система в основном стабильным. И, если вы думаете, что нашли оптимальные настройки, я бы рекомендовал работать, как минимум,с двумя-тремя полными проходами.

Что такое cpu и ram в компьютере?

Вопрос знатокам: Что такое CPU и RAM???Видел в гаджете,а что такое незнаю…

С уважением, Саша Трифонов

Лучшие ответы

Lonely-Digger:

CPU (Central Processing Unit) — центральный процессор компьютера (его мозги) , физически представляет собой большую интегральную схему (микросхему) , в которой функционально представлены различные узлы (не только собственно процессор) . В многопроцессорной системе функции центрального процессора распределены между несколькими процессорами, один из которых считается главным.
Описание: Random Access Memory, сокращенно RAM – это оперативная память – это массив кристаллических ячеек, способных хранить данные. Существует много различных типов оперативной памяти…

Serg Volf:

Алексей Дегтярёв:

CPU процессор. RAM оперативка

_FeD_:

CPU — процессор, RAM — оперативная память, если ты видел это в гаджете, то он показывает их нагрузку…

user user:

CPU — процессор, RAM — оперативная память

Сергей Левачев:

Центральный процессор (частота) и оперативная память (объем)

Сергей Горин:

CPU вскоре сего процессор либо нужно помнят батарейку на материнской плате. RAM — оперативная память.

Dj MaLoY:

процессор это.

Alfira Gabdelhakova:

Рем-это процессор, кпу- это оперативная память, показывает нагрзку на них

Видео-ответ

Это видео поможет разобраться

Ответы знатоков

Альберт:

Первое загрузка процессора на 84%
Второе загрузка оперативной памяти на 80%.
Говорит о том что надо увеличить оперативку.

Sje:

cpu — процессор, ram — оперативная память. показано на сколько загружено то и другое

вова:

они говорят о том что у тебя на компе куча всякого хлама, вирусов и зависших процессов, которые загружают систему на 85%

Анатолий Воронцов:

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

Кот:

Ну ты ламер )))
CPU — центральный процессор , «сердце компьютера»
RAM — оперативная память
ОЗУ — тоже самое что и RAM

в Core 2 Duo два физических ядра, от этого и название Duo — Dual — двойной .

СЕРЖ:

прцессор. память. 2 ядра

Также спрашивают:

Что такое RAM (ОЗУ) в компьютере?

RAM (от английского Random Access Memory, память с произвольным доступом) или ОЗУ (оперативное запоминающее устройство) — это энергозависимая часть компьютерной памяти, в которой хранится выполняемый код, входные, выходные и промежуточные данные, обрабатываемые процессором.

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

В продаже можно найти модули памяти (их еще называют планками), которые хороши тем, что позволяют пользователю самостоятельно расширять объем текущей оперативной памяти.

Главное — установить модули в специальные слоты на материнской плате. При этом нужно помнить, что материнская плата поддерживает определенное количество модулей.

Если вы желаете знать объем установленной памяти, можете воспользоваться сторонним ПО, а можете открыть настройки своего компьютера. Например, в Windows 7 нужно нажать правой клавишей мыши на значок «Компьютер» и в меню выбрать «Свойства».

Далее откроется окно, в подразделе «Система» вы увидите объем ОЗУ:

Каким должен быть объем ОЗУ в компьютере?

Все исключительно индивидуально: одним пользователям хватит и 4 Гб, в то время как другим мало 16 Гб. Это зависит от тех целей, которые преследует пользователь. Так, если компьютер ему необходим только для серфинга интернета, многого не нужно, однако если используются различные программы вроде мощных графических редакторов или пользователь любит игрушки, памяти (RAM) должно быть много.

На что влияет CPU и RAM?

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

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

Так многие делают, я где-то читал об этом.

Или слышал по телевизору?..

Даже в скачанном мною где-то мануале, по-моему, была инструкция. «Сядьте поудобней в кресле, закройте глаза и вызовите мысленно из памяти требуемое воспоминание. Увидьте его перед собой во всех красках. Увидели? Теперь мысленно переведите взгляд в правый верхний угол воспоминания. Перед вами возникнет надпись «редактировать». Кликните мысленно по ней. Перед вами возникнет меню настроек, пользуясь которыми, вы сможете изменить яркость или контрастность выбранного вами воспоминания, а с помощью дополнительных опций сможете выделить контуром и отдельную часть или отдельного персонажа в воспоминании, чтобы отредактировать конкретно его».

Правда, здесь следует соблюдать осторожность.

Как говорит инструкция, один молодой пользователь из Мурманска задался целью повысить контрастность первых в своей жизни романтических воспоминаний, чтобы увеличить силу связанных с ними ощущений, и выкрутил настройки контрастности почти до максимума. В результате всё светлое в его воспоминаниях стало пронзительно белым, а всё тёмное — могильно чёрным; вся психологическая детализация, все полутона и оттенки, связанные с тем периодом, погибли. Также в качестве примера приводится случай с девушкой из New York City, которая воспользовалась программой «Мнемошоп», чтобы отредактировать в своей памяти образ бывшего возлюбленного, слегка убавив яркость и чёткость во избежание стресса и ностальгии. И убавила до такой степени, что в её воспоминаниях на месте образа бывшего избранника остался лишь абсолютно чёрный силуэт, сгусток непроницаемой Тьмы.

Поэтому не забывайте при редактировании своих воспоминаний сохранять где-нибудь старую версию.

Для надёжности.

Частота процессора и частота оперативной памяти:их совместимость и что важнее?

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

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

Как это работает

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

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

Двое таких рабочих – это спаренные модули памяти. Если у них синхронизированы перекуры (тайминги ОЗУ), то эффективность логистики увеличивается (активируется двухканальный режим). Остальные аналогии вы можете придумать сами, почитав подробнее об оперативной памяти и ее основных характеристиках.

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

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

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

Как правильно подобрать комплектующие под материнку

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

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

При этом все спецификации по материнке, как правило, указаны. Нас, в первую очередь, интересует поддерживаемая память – тип, и т.д., чипсет (так как на всякий камень «дружит» с каждым чипсетом) и слот ЦП (который, естественно, должен соответствовать). Еще один параметр – максимальный объем ОЗУ, который можно поставить.

Не стоит покупать ОЗУ с тактовой больше чем поддерживает материнка – она попросту или не будет работать, или переключится на меньшую. Естественно, частота шины материнки и оперативки должны совпадать.

Опять же, если частота больше у какой-либо детали, вся система синхронизируется под меньшую. Зачем переплачивать за неиспользуемые опции? Ориентируясь на максимальную производительность, будьте готовы раскошелиться – дополнительные герцы и байты стоят хороших денег.В плане соотношения частоты ЦП и оперативки у юзеров часто возникает вопрос: должны ли они совпадать, и зависит ли этот параметр ОЗУ от камня? Полностью совпадать не должны, однако частота CPU должна быть выше.

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

Так, вполне нормально работает, например, компьютер с четырехъядерным процессором и тактовой частотой 4 ГГц в связке с 8 Гб оперативки DDR3, частота которой ниже. Зависит ли от этого общая производительность системы? Не особо.

Учитывайте, что все же на производительность, в первую очередь, влияют параметры процессора.

Рекомендации

Я не буду пытаться спровоцировать очередной холивар на тему что лучше – Intel или AMD, однако в плане соотношения цены к производительности могу порекомендовать процессор i5 восьмого поколения, который отлично совместим с оперативкой DDR4.

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

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

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

CPU-Z CPUID – Если нужно узнать характеристики процессора и не только

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

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

CPUCPU

  • Name – наименование модели процессора.
  • Code name – кодовое имя процессора. Техническое наименование, которое не используется маркетологами для продажи на рынке.
  • Package – показывает тип socket’а или гнезда для подключения к материнской плате.
  • Technology – нормы технологического процесса по которым был сделан процессор.
  • Core Voltage – показывает напряжение процессора.
  • Specification – строка выдающая полное название вашего процессора.
  • Family, Model, Stepping – определяет ядро и ревизию ядра процессора.
  • Ext. Family, Ext.model, Revision – определяет дополнительные регистры и ревизию ядра процессора.
  • Instructions – отображает набор инструкций, которые поддерживает процессор (SSE, SSE2, SSE 3, MMX, EM64T и другие)

Далее идут отображения данных тактовых частот процессора, шины:

  • Core Speed – тактовая частота центрального процессора, которая обновляется в реальном времени.
  • Multiplier – показывает множитель процессора.
  • Bus Speed – частота шины процессора.
  • Rated FSB – эффективная частота центрального процессора.

Тут же радом отображается информация о кэш-памяти процессора:

  • L1 Data – кэш-память первого уровня.
  • Level 2 – кэш-память второго уровня.
  • Level 3 – кэш-память третьего уровня.

Нижняя строчка, где находится меню Selection – позволяет выбрать процессор, для отображения его характеристик. Так же здесь показано количество ядер(Cores) процессора и количество потоков(Threads).

В этой программе помимо основных характеристик процессора можно более подробно посмотреть данные кэш-памяти процессора во вкладке Caches.

CACHESCaches

Обычно тут отображается полный размер кэш-памяти Size – в Кб или Мб, а также строка Descriptor – которая отображает характеристики кэш-памяти, ассоциативность и объем линии кэша.

Помимо сведений о процессоре можно посмотреть информацию о вашей системной плате во вкладке Mainboard.

MAINBOARDMainboard

  • Manufacturer – производитель системной платы.
  • Model – номер модели материнской платы и ее ревизия.
  • Chipset – наименование производителя, тип модели и ревизия чипсета.
  • South bridge — название производителя, модели и ревизия южного моста.
  • LPCIO – мультиввод-вывод.

Далее идет техническая информация о компоненте BIOS:

  • Brand – наименование компании производителя BIOS.
  • Version – версия BIOS.
  • Date – дата выпуска BIOS.

В группе Graphic Interface представлена информация о типе графической шины:

  • Version – версия порта (PCI, PCI-Express или AGP).
  • Transfer Rate – режим шины.
  • Max supported – режим шины поддерживаемый на максимальном уровне.
  • Sideband – дополнительная опция AGP шины.

Еще одна не менее интересная вкладка это Memory – сведения об установленной на ваш компьютер оперативной памяти.

 MEMORYMemory

  • Type – тип или вид памяти (DDR, DDR2, DDR3).
  • Size – количество установленной оперативной памяти на компьютере в мегабайтах.
  • Channels # — показывает режим работы памяти, двухканальный или одноканальный.
  • DC mode – режимы при работе двухканального доступа.
  • NB Frequency – показывает частоту контроллера оперативной памяти.

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

  • Frequency – реальная частота оперативной памяти.
  • FSB:DRAM – отображает соотношение частоты оперативной памяти и системной шины.
  • CAS# Latency (CL) – задержка чтения данных.
  • RAS# to CAS# Delay (tRCD) – минимальный промежуток времени между подачей сигнала на выбор строки и сигнала на выбор столбца.
  • RAS# Precharge (tRP) – скорость, предварительного заряда банка.
  • Cycle Time (tRAS) – наименьшее время активности строки.
  • Bank Cycle Time (tRC) – минимальное время между активацией строк одного банка.
  • Command Rate (CR) – отображает время, которое необходимо для декодирования команд и адресов.
  • DRAM Idle Timer – показывает количество тактов, если к страницы памяти не было обращений, принудительно закрывая и перезаряжая ее.
  • Total CAS# (tRDRAM) – тайминг, памяти RDRAM.
  • Row to Column (tRCD)  — ещё тайминг памяти RDRAM.

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

SPDSPD

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

GRAPHICSGraphics

  • Name – наименование графического адаптера.
  • Code name – кодовое имя чипа видео карты.
  • Technology – нормы технологического процесса по которым выполнен чип.
  • Revision – ревизия ядра GPU.
  • Core – отображает частоту GPU.
  • Shaders – частота шейдеров.
  • Memory – показывает частоту видеопамяти.
  • Size – размер видеопамяти.
  • Type – тип оперативной памяти видеокарты (DDR, DDR2,3,4,5)
  • Bus width – пропускная способность шины памяти.

И последняя вкладка, отображающая сведения об авторе программы и ее версии About. В ней помимо этого можно сохранить ваши технические характеристики в виде отчета в формате TXT или HTML.

ABOUTAbout

lineКак видите, эта программа показывает достаточно большое и полное количество технических характеристик вашего персонального компьютера. И хоть она и призвана отображать данные только о вашем центральном процессоре, но также ей можно воспользоваться для просмотра таких характеристик как оперативная память, материнская плата, графический адаптер. И как говорится эта программа, которая Must have – что значит должна быть.

Вы неверно измеряете загрузку процессора / Инфопульс Украина 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 (или чего-то аналогичного) непосредственно рядом с загрузкой процессора, что даст пользователю полное понимание ситуации. Имея все эти данные, разработчики могут предпринять некоторые меры по оптимизации своего кода именно в тех аспектах, где это принесёт наибольшую пользу.

Оставьте комментарий

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