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

Обновлено: 04.07.2024

Основным критерием при выборе процессора для нового компьютера является его быстродействие. Чем большим быстродействием обладает процессор, тем быстрее осуществляется работа с различными программами утилитами и самой операционной системой. Быстродействие процессора зависит, как уже было сказано, от тактовой частоты, измеряемой в мегагерцах (МГц) и гигагерцах (ГГц). Кроме того, оно зависит от объема кеш-памяти первого и последующих уровней, частоты шины данных (FSB) и разрядности процессора.

Мегагерц — это миллион колебаний в секунду, в то время как гигагерц представляет собой миллиард колебаний в секунду. Обычно принято считать, чем с большей тактовой частотой работает процессор, тем он производительность Однако это далеко не всегда соответствует действительности. Более того, производительность системы в целом сильно зависит не только от процессора, но и от всех других компонентов. Предположим, что вы приобрели процессор Core i3 с тактовой частотой 3 ГГц, однако оперативной памяти установили всего 2048 Мбайт, кроме того, использовали жесткий диск с невысокой скоростью передачи данных. С такой конфигурацией различия в быстродействии между процессором с частотой 2 и 3 ГГц будут едва ли заметными. Другими словами, быстродействие компьютера зависит от производительности самого медленного компонента, будь то процессор, оперативная память, жесткий диск или даже блок питания (поскольку если мощности блока питания не хватит для обеспечения работы аппаратных компонентов, о стабильной работе компьютера можно вообще забыть).

Тактовая частота процессора и её подвох

Рассмотрим подробнее вопрос, почему тактовая частота процессора не гарантирует его высокой работоспособности. Тактовая частота, как понятно из ее названия, состоит из тактов, или периодов тактовой частоты. На каждую операцию, выполняемую процессором, затрачивается один такт и несколько циклов ожидания. Цикл ожидания представляет собой «пустой» такт, т.е. такт, во время которого не выполняются никакие операции. Циклы ожидания необходимы для обеспечения синхронной работы различных по быстродействию компонентов компьютера. На выполнение различных команд тратится разное количество тактов. Например, процессор Core i3 может выполнить минимум 12 команды за каждый такт. Чем меньше тактов требуется для выполнения команды, тем выше быстродействие процессора. Кроме того, на быстродействие влияют и другие факторы, например, объем кеш-памяти первого/второго уровней.

Процессоры Core I и Athlon II обладают различной внутренней архитектурой поэтому команды в них выполняются по-разному. В результате сравнивать эти процессоры по тактовой частоте нельзя. К примеру, процессор Athlon II X4 641 с тактовой частотой 2,8 ГГц обладает производительностью примерно сопоставимой с процессором Core I3, работающим с частотой 3 ГГц.

Вычислительная мощность компьютера (производительность компьютера) — это количественная характеристика скорости выполнения определённых операций на компьютере. Чаще всего вычислительная мощность измеряется в флопсах (количество операций с плавающей точкой в секунду), а также производными от неё. На данный момент принято причислять к суперкомпьютерам системы с вычислительной мощностью более 10 Терафлопс (10*10 12 или десять триллионов флопс; для сравнения среднестатистический современный настольный компьютер имеет производительность порядка 0.1 Терафлопс). Одна из наиболее мощных на тесте Linpack компьютерных систем — японский K computer — имеет производительность, превышающую 10,5 Петафлопс [1] .

Содержание

Неоднозначность определения

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

Важную роль играет также разрядность значений, обрабатываемых программой (обычно имеется в виду формат чисел с плавающей запятой). Так, например, у графических процессоров NVIDIA Tesla первых двух поколений максимальная производительность в режиме одинарной точности (32 бит) составляет порядка 1 Терафлопс, однако при проведении вычислений с двойной точностью (64 бит) она в 10 раз ниже. (Так, в чипах серии GF200 в 10 раз меньше блоков с поддержкой FP64 [2] ).

Измерение производительности

Наиболее популярным тестом производительности является Linpack benchmark. В частности, HPL (альтернативная реализация Linpack) [3] используется при составлении списка TOP500 суперкомпьютеров в мире [4] .

Другими популярными программами для проведения тестирования являются NAMD [5] (решение задач молекулярной динамики), HPCC (HPC Challenge Benchmark), NAS Parallel Benchmarks [3] .

Наиболее мощные суперкомпьютеры

По состоянию на июнь 2011 года наиболее мощными суперкомпьютерами являются [1] :

Основным критерием при выборе процессора для нового компьютера является его быстродействие. Чем большим быстродействием обладает процессор, тем быстрее осуществляется работа с различными программами утилитами и самой операционной системой. Быстродействие процессора зависит, как уже было сказано, от тактовой частоты, измеряемой в мегагерцах (МГц) и гигагерцах (ГГц). Кроме того, оно зависит от объема кеш-памяти первого и последующих уровней, частоты шины данных (FSB) и разрядности процессора.

Мегагерц — это миллион колебаний в секунду, в то время как гигагерц представляет собой миллиард колебаний в секунду. Обычно принято считать, чем с большей тактовой частотой работает процессор, тем он производительность Однако это далеко не всегда соответствует действительности. Более того, производительность системы в целом сильно зависит не только от процессора, но и от всех других компонентов. Предположим, что вы приобрели процессор Core i3 с тактовой частотой 3 ГГц, однако оперативной памяти установили всего 2048 Мбайт, кроме того, использовали жесткий диск с невысокой скоростью передачи данных. С такой конфигурацией различия в быстродействии между процессором с частотой 2 и 3 ГГц будут едва ли заметными. Другими словами, быстродействие компьютера зависит от производительности самого медленного компонента, будь то процессор, оперативная память, жесткий диск или даже блок питания (поскольку если мощности блока питания не хватит для обеспечения работы аппаратных компонентов, о стабильной работе компьютера можно вообще забыть).

Тактовая частота процессора и её подвох

Рассмотрим подробнее вопрос, почему тактовая частота процессора не гарантирует его высокой работоспособности. Тактовая частота, как понятно из ее названия, состоит из тактов, или периодов тактовой частоты. На каждую операцию, выполняемую процессором, затрачивается один такт и несколько циклов ожидания. Цикл ожидания представляет собой «пустой» такт, т.е. такт, во время которого не выполняются никакие операции. Циклы ожидания необходимы для обеспечения синхронной работы различных по быстродействию компонентов компьютера. На выполнение различных команд тратится разное количество тактов. Например, процессор Core i3 может выполнить минимум 12 команды за каждый такт. Чем меньше тактов требуется для выполнения команды, тем выше быстродействие процессора. Кроме того, на быстродействие влияют и другие факторы, например, объем кеш-памяти первого/второго уровней.

Процессоры Core I и Athlon II обладают различной внутренней архитектурой поэтому команды в них выполняются по-разному. В результате сравнивать эти процессоры по тактовой частоте нельзя. К примеру, процессор Athlon II X4 641 с тактовой частотой 2,8 ГГц обладает производительностью примерно сопоставимой с процессором Core I3, работающим с частотой 3 ГГц.

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

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

Примечание: Многие проблемы производительности в крупных приложениях обусловлены тем, что они не воспроизводятся под сравнительно низкой нагрузкой, под высокой же (стрессовой) нагрузкой они приводят к существенному замедлению или сбоям системы. Важным аспектом разработки масштабируемых систем является предотвращение данных ситуаций. Чтобы помочь вам с этой задачей, мы опубликовали статью, содержащую набор анти-паттернов производительности для облачных систем (cloud-based anti-patterns).

Понятие ключевых показателей производительности

  • Сколько операций может выполнить система за определенный период времени? (пропускная способность)
  • Сколько операций могут быть выполнены одновременно? (параллелизм)
  • Как долго система выполняет операцию? (время отклика/задержка)
  • Сколько резервной мощности требуется системе для обеспечения роста нагрузки? (запас ресурсов)
  • Сколько исключений система генерит под нагрузкой? (частота ошибок)

Примечание: реалистичное пользовательское поведение является важной чертой нагрузочного тестирования. Без применения данного подхода результаты могут оказаться неверными. Дополнительные сведения см. в статье Editing Think Times to Simulate Website Human Interaction Delays in Load Tests Scenarios.


Профиль производительности в зависимости от пользовательской нагрузки для простого облачного сервиса

  • Объемом сетевого трафика между клиентами и сервисом
  • Загрузкой процессора, количеством потоков и объемом доступной памяти
  • Если сервис использует БД, то сюда можно добавить количество доступных подключений к БД, объем трафика между сервисом и БД и др.
  • Емкостью внешних систем, от которых зависит сервис. Например, емкость Azure SQL Database определяется термином DTUs (Database Throughput Units). Если вы превышаете выделенный вам DTUs, то последующие запросы к БД не будут выполнены до приобретения дополнительной емкости. Другие службы имеют ограничения на физические ресурсы (потоки, память, соединения и тп)

Еще одно примечание: нехватку емкости сервиса, от которого зависит ваша система, называют «back-end pressure» (внешним давлением). Во многих системах такие сервисы часто является факторами, ограничивающими производительность. Эти сервисы часто являются внешними, их управление может быть передано (либо уже контролируется) другим лицам, которые могут повлиять на производительность.
Рисунок иллюстрирует профиль нагрузки той же тестовой облачной службы под высокой нагрузкой.


В этом графике видно, что, как только нагрузка достигает 600-та пользователей, запросы начинают падать в таймауте и система начинает генерировать исключения. Увеличение нагрузки приводит к увеличению генераций ошибок. Обратите внимание, что частота успешных запросов также будет падать. Отмечу, что среднее время запроса также падает, т.к. сервис очень быстро начинает отклонять запросы. Важный момент – измерение времени отклика не является показателем того, насколько система хорошо работает.
Еще одна сложность состоит в том, чтобы учесть, что система может быть достаточно устойчивой, чтобы восстановиться (хотя бы временно) и что число запросов, ожидающих в очереди исчезнет, а последующие запросы будут обработаны успешно. Система может войти в период, когда колебания частоты успешно выполненных запросов будут циклически сменяться интенсивностью отказов. На рисунке показан график, иллюстрирующий это феномен, который отражает антипаттерн Improper Instantiation.


Колебания частоты успешных и неуспешных вызовов сервиса под возрастающей нагрузкой

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

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

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

Если пользователи начинают получать ошибки либо работа системы замедляется, то это может быть связано не с конкретным участком логики, но суммарной нагрузкой на систему. Всё это подчеркивает важность непрерывного мониторинга производительности. Если вы владеете точной и актуальной информацией о производительности, то вы сможете быстро реагировать на внезапные всплески пользовательской активности, требующие дополнительного объема ресурсов для обработки запросов. Данные о производительности, которые вы собираете, должны включать достаточное количество контекстной информации, чтобы можно было свести различные метрики в полноценное видение жизненного цикла системного процесса. Эта информация имеет жизненно-важное значение во время анализа производительности. Она помогает вам понять, как различные параллельные процессы, из которых состоит ваша система, могут сосуществовать, взаимодействовать и конкурировать друг с другом. Процесс сбора такой информации подробно описан в статье Performance Analysis Primer.

Разбор показателей по уровням абстракции:

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

Спасибо за внимание. В следующей части мы рассмотрим эти метрики подробнее и перейдем к следующим темам.

Читайте также: