AWS ECS - проблемы с несколькими контейнерами в одном экземпляре - PullRequest
0 голосов
/ 04 июня 2018

Я использую 16 экземпляр процессора в AWS Elastic Container Service (ECS).И я хочу запустить 8 контейнеров , которые все резервируют 2 ЦП .

Производительность, которую я получаю с этой настройкой, значительно ниже (примерно вдвое), чем когда я запускаю 8 контейнеров на 8 экземплярах по 2 ЦП каждый .

В настоящее время кажется, чтоПодобно тому, как назначение ЦП не является «жестким», в этом случае планировщик может в любое время дать контейнеру более 2 ЦП.

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

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

1 Ответ

0 голосов
/ 04 июня 2018

Итак, пара баллов:

  1. Параметр «CPU» конфигурации ECS «зарезервирует» CPU для данного контейнера.Процессор всегда сможет использовать этот процессор с минимальной задержкой.ОДНАКО - это не максимальный процессор (и нет возможности установить максимальный процессор в ECS);Контейнеры могут использовать нераспределенный ЦП по желанию.Таким образом, если у вас был 1 контейнер, работающий с 2048 зарезервированными процессорами, ему все равно будет разрешено использовать все 16 процессоров, пока они не понадобятся кому-то другому.

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

После этих двух моментов я должен спросить: запуск 8 небольших серверов с 8 контейнерами исправит эту проблему, как вы заметили (больше не будет совместного использования ресурсов между 8 контейнерами) и будет намного дешевле.Почему один большой сервер вместо 8 меньшего?

...