Совместное использование ресурсов на AWS
Мне интересно понять, каким образом аппаратные ресурсы (ЦП, диск, сеть и т. Д.) Физического сервера AWS распределяются между различными приложениями. Есть ли у людей опыт необъяснимых изменений производительности в службах, работающих на AWS, которые вы успешно приписали другому приложению, совместно использующему физические ресурсы? Если так, как вы пошли на отладку этого?
В частности, меня интересуют более сложные взаимодействия между ресурсами, такие как CPU->Memory bandwidth. Если вы запустите 15 виртуальных машин на одной машине, вы, безусловно, будете иметь худшую производительность, чем если бы вы запустили две виртуальные машины.
Возможно, это более общий вопрос о виртуализации Xen, но я не знаю, происходит ли какая-то магия AWS под капотом, о которой я не знаю.
Я не уверен, что это правильный форум для такого рода вопросов; если нет, то было бы полезно, если бы вы указали мне на ресурс или другой форум.
1 ответ
Экземпляры Amazon EC2 не подвержены проблемам "шумного соседа".
На основе выбранного типа экземпляра экземпляр EC2 получает ЦП, память и (для некоторых типов экземпляров) локально подключенное дисковое хранилище. Эти ресурсы выделены для экземпляра и не будут затронуты другими пользователями или другими виртуальными машинами. (Исключением является t1
а также t2
типы экземпляров.)
В частности:
- Экземпляру выделяется несколько виртуальных ЦП. Они предоставляются экземпляру, и никакой другой экземпляр не может использовать эти виртуальные ЦП (см. Примечание о
t1
а такжеt2
ниже). Страница типа экземпляра EC2 определяет vCPU как:
Каждый виртуальный процессор представляет собой гиперпоток ядра Intel Xeon для M4, M3, C4, C3, R3, HS1, G2, I2 и D2.
- Экземпляру выделяется объем оперативной памяти. Никакой другой экземпляр не может использовать эту RAM. Нет переподписки ни CPU, ни RAM.
- Экземпляру может быть выделено локально подключенное дисковое хранилище, известное как Instance Store или Ephemeral Storage. Это дисковое хранилище не сохраняется при остановке или завершении экземпляра, поэтому храните только временные данные или данные, которые реплицированы в другом месте.
- Экземпляру выделяется полоса пропускания сети, выделенная этому экземпляру. Ни один другой экземпляр не может повлиять на эту пропускную способность сети. Производительность сети зависит от выбранного типа экземпляра. В основном, более крупные экземпляры получают большую производительность сети.
Ни на один из вышеперечисленных факторов не влияют другие экземпляры (виртуальные машины), работающие на том же хосте.
t1
а также t2
типы экземпляров
Исключением из приведенного выше утверждения являются:
t1.micro
экземпляры "обеспечивают небольшое количество согласованных ресурсов ЦП и позволяют увеличивать емкость ЦП короткими пакетами, когда доступны дополнительные циклы".t2
экземпляры предоставляют пакетную мощность на основе системы кредитов ЦП. Кредиты ЦП зарабатываются с постоянной скоростью в зависимости от типа экземпляра, и эти кредиты могут быть использованы для взрыва ЦП при необходимости.
Для обоих этих типов экземпляров я бы предположил, что эта емкость пакета распределяется между экземплярами, поэтому вполне возможно, что на производительность ЦП могут влиять другие экземпляры, также желающие пакетировать. t2
однако в некоторых случаях это можно было бы сделать "справедливым", потребляя кредиты ЦП только тогда, когда ЦП действительно взорвался.
Выделенные экземпляры и выделенные хосты
- Выделенные экземпляры - это " экземпляры Amazon EC2, которые работают в виртуальном частном облаке (VPC) на оборудовании, предназначенном для одного клиента". По сути, ваша учетная запись AWS будет единственной учетной записью, на которой выполняются экземпляры на этом хост-компьютере.
- Выделенный хост - это "физический сервер с емкостью экземпляра EC2, полностью выделенной для вашего использования. Выделенные хосты позволяют вам использовать существующие лицензии на программное обеспечение на сокет, ядро или виртуальную машину, включая Windows Server, Microsoft SQL Server, SUSE. Linux Enterprise Server и т. Д." По сути, вы платите за весь хост-компьютер, а затем запускаете отдельные экземпляры на хосте (без дополнительной оплаты).
Использование выделенного экземпляра или выделенного хоста не влияет на ресурсы, выделяемые каждому экземпляру. Они получат те же ресурсы, что и при работе в качестве обычного общего экземпляра.