Как мы можем измерить использование vCPU для экземпляров Amazon ECS / Ec2? - PullRequest
0 голосов
/ 18 мая 2018

Я собираюсь перенести мое веб-приложение с Amazon EC2 на ECS.(докер), но в ECS нам нужно выделить память и vCPU для процесса.

Но я не уверен, сколько vCPU следует назначить для этой задачи.(а также память)

Как измерить, сколько vCPU и памяти необходимо для процесса?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Чтобы ответить на ваш вопрос об измерении: вашему ECS потребуется как минимум столько же ресурсов процессора и памяти, сколько у вашего текущего EC2.Лучший способ измерить и контролировать использование процессора и памяти EC2 - использовать AWS CloudWatch .Для ваших конкретных нужд это хороший ответ / плохие новости.

Сначала хорошие новости : показатель использования ЦП уже отслеживается с помощью CloudWatch автоматически.

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

Перейдите в консоль AWS и выберите CloudWatch в разделе «Инструменты управления».На главном экране CloudWatch убедитесь, что в правом верхнем углу консоли выбран регион, в котором находится экземпляр EC2.Теперь нажмите Metrics слева, и вам будет представлен график временной шкалы.Под графиком находятся метрики, которые вы можете выбрать.Выберите EC2-> Per Instnace Metrics-> CPUUtilization для экземпляра, для которого вы хотите просмотреть метрики.Измените время на обычай -> 4 недели.Это даст вам график среднего использования ЦП за прошедший месяц для этого экземпляра.

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

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

Здесь показан мой график для максимальной загрузки ЦП за последние 4 недели.Вы можете видеть, что вершина едва достигает 25% ЦП для экземпляра T2.micro.Это должно помочь вам определить, какой размер и процент процессора вам понадобится для ECS.

enter image description here

Теперь плохие новости : мониторинг памятииспользование с CloudWatch не настраивается автоматически, как ЦП.Короче говоря, получение метрики памяти включает использование устаревших сценариев perl или нового рекомендуемого способа установки агента CloudWatch .С помощью агента вы можете выбрать до 10 метрик памяти (, перечисленных здесь ), отслеживаемых для Linux, для создания отчетов и установки правильных настроек IAM, чтобы агент мог сообщать метрики памяти обратно в CloudWatch.

РЕДАКТИРОВАТЬ : я забыл, что написал в 2016 году ответ SO с инструкциями по настройке сценариев мониторинга памяти и примером панели мониторинга с метриками памяти, отображаемыми в CloudWatch.В ответе упоминается настройка будильника Cloudwatch, но сценарии, которые запускаются и сообщают CloudWatch, отображают использование памяти.Пожалуйста, обратитесь к этому ответу о том, как их настроить (просто проигнорируйте часть ответа).

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

Надеюсь, это поможет.

0 голосов
/ 29 мая 2018

Когда дело доходит до определения вашей задачи, есть два способа задания памяти.Настройки памяти - это жесткий предел.Если использование памяти контейнеров достигнет этой величины, контейнер будет прерван.С другой стороны, если вы укажете memoryReservation, то много памяти будет зарезервировано для задачи, но она может использовать больше, вплоть до общего объема машины.Для получения дополнительной информации см. Документацию Определение задачи .

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

Что касается cpu, это значение не является обязательным, и если оно не указано, все задачи вЭкземпляру разрешена равная часть ЦП, доступная в системе.Если в экземпляре только одна задача, он может использовать весь процессор экземпляра по умолчанию.

Чтобы получить более конкретную информацию, 1 ECU / 1 ГБ Mem EC2 равняется 1024 в ECS.

Можно с уверенностью сказать, что ваш сервис будет примерно использовать тот же процессор / память, что и в EC2.Вы можете войти в свой экземпляр EC2 и проверить это с помощью различных инструментов (htop, ps, ...) или проверить это на CloudWatch .

Пример: если ваше текущее приложение работаетt2.medium (который имеет 2vCPU и 4 Гб памяти) и использует только половину процессора / памяти, тогда ваша задача будет использовать 1024 CPU и 2048 Memory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...