Что такое «vCPU» и какова его производительность? – CloudSavvy IT

чип платы
archy13 / Shutterstock

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

Разница между ядрами и нитями

Важно понимать разницу между потоком обработки и ядром процессора. Процессоры будут иметь установленное количество ядер, которые обрабатывают выполнение программ. Но даже очень интенсивные задачи не используют 100% ЦП все время; Программы часто должны ожидать чтения памяти из кэша L3, ОЗУ и дисков и часто засыпают, ожидая поступления данных. В течение этого времени ядро ​​ЦП неактивно.

Решение этой проблемы называется «гиперпоточность» или «одновременная многопоточность». Вместо того, чтобы запускать один набор задач за один раз, ЦП может обрабатывать несколько потоков. В настоящее время почти каждый высокопроизводительный процессор от Intel или AMD поддерживает два потока на ядро.

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Что делает vCPU?

vCPU примерно сопоставимы с одним потоком обработки, но это не совсем справедливое сравнение.

Скажем, вы арендуете c5.large экземпляр от AWS с 2 виртуальными ЦП. Ваше приложение будет работать вместе со многими другими на одном большом сервере. Вы можете арендовать весь сервер с AWS Bare Metal экземпляр, который дает вам прямой доступ к процессору. Если вы арендуете что-то меньшее, чем это, ваш доступ управляется через AWS Nitro,

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

Nitro решает, каким потокам назначать виртуальную машину, исходя из того, сколько вычислительной мощности необходимо, так же, как это делает планировщик задач в обычной среде рабочего стола. В случае двух виртуальных ЦП наихудший случай – приложение работает на одном ядре и получает два потока этого ядра. Если вы действительно максимально используете свой экземпляр, ваши потоки могут конфликтовать и вызывать небольшие замедления. Трудно сказать точно, как работает гипервизор AWS, но, вероятно, можно с уверенностью предположить, что этот сценарий в значительной степени смягчен благодаря хорошему управлению потоками со стороны Nitro.

Таким образом, в целом, вы можете ожидать производительность, сопоставимую с нормальным потоком процессора, если не чуть лучше. В любом случае это различие не имеет большого значения, поскольку большинство экземпляров EC2 будут иметь кратные 2 виртуальных ЦП. Просто помните, что экземпляр 4 vCPU – это не 4-ядерный сервер – он действительно эмулирует 2-ядерный сервер, на котором выполняется 4 потока обработки.

Скорость обработки vCPU будет больше зависеть от реального оборудования, на котором он работает. Большинство серверных процессоров будут Intel Xeons, поскольку они составляют большую часть рынка. Серверы нижнего уровня могут работать на более старом оборудовании, которое немного устарело по современным стандартам. В экземплярах AWS T3a используются процессоры AMD EPYC с большим количеством ядер, они работают немного медленнее, но стоят дешевле из-за того, что аппаратное обеспечение значительно дешевле на ядро.

Бустабильные экземпляры

AWS T2 Instance Logo

Экземпляры AWS T2 и T3 являются «пакетными», которые больше подходят для приложений, которые не должны работать на 100% все время.

Например, t3.micro Экземпляр имеет 2 виртуальных ЦП, но его базовая скорость составляет 10% от нормального виртуального ЦП. На самом деле, t3.micro на самом деле имеет только 0,2 vCPU, что на самом деле, как Google Cloud Platform рекламирует их f1-micro экземпляры,

Но t3.micro в целом не на 90% медленнее; он может превышать базовую скорость в течение коротких периодов времени, очень похоже на то, как работает турбо частота на обычном компьютере. За исключением того, что ограничивающим фактором здесь являются не термики, а то, сколько вы готовы заплатить.

За каждый час работы экземпляра ниже базовой скорости вы накапливаете кредиты ЦП, которые используются для взрыва экземпляра за одну минуту. t3.micro В частности, экземпляр накапливает 6 кредитов ЦП в час, что он работает ниже базовой скорости. Но когда требуется вычислительная мощность, кредиты ЦП расходуются на работу, превышающую базовую скорость.

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

Это позволяет AWS запускать больше экземпляров T2 на сервер, чем сервер обычно способен, что помогает снизить затраты. Например, каждая стойка в их центре данных может содержать 48-ядерную систему с 96 потоками обработки. Это можно использовать для экземпляров C5 на 96 виртуальных ЦП, но экземпляры T2 могут совместно использовать ядра и работать на скорости менее 20% базовой скорости ядра, поэтому AWS может запускать большее количество из них на одном сервере.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

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

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