Назад | Перейти на главную страницу

Как добиться максимальной производительности инстанса EC2

Отказ от ответственности: я являюсь фронтенд-разработчиком в мире серверов.

Привет, ребята. У меня есть экземпляр сервера на EC2, c5d.9xlarge, чьи спецификации:

Сценарий: Я использую этот сервер для загрузки больших видео (4K, 1+ час) и обработки их с помощью FFMPEG, но по сравнению с моим предыдущим сервером UpCloud с 12 ядрами и 48 ГБ ОЗУ, этот сервер EC2 требует в 1,5 раза больше времени для загрузки и обработки, что Думаю, не должно быть.

Вопрос: Как добиться максимальной эффективности того, за что я плачу?

Ваш c5d.9xlarge поставляется с Хранилище экземпляра 900 ГБ (он же эфемерное хранилище) - вы используете это для хранения и обработки файлов? Хотя у вашего экземпляра есть выделенная пропускная способность EBS, хранилище SSD на экземпляре все равно будет намного быстрее. Я предлагаю вам использовать это для всех исходных и временных файлов и сохранять результаты только в EBS.

Однако есть некоторые предостережения относительно хранилища экземпляров:

  1. Ты должен форматировать и монтировать прежде чем его можно будет использовать. Обратитесь к этому ответу для получения более подробной информации: Автоматически монтировать хранилище инстансов SSD на AWS EC2 в Ubuntu 16.04

  2. Содержание протертый при остановке и повторном запуске экземпляра. Он переживает перезагрузку, но не останавливается / запускается.


Обновить: По умолчанию SSD не установлен - вам нужно будет выполнить шаги из связанного ответа выше, чтобы использовать его. В стандартной конфигурации после загрузки вы будете использовать EBS, который работает медленнее, чем SSD.

Тогда вам нужно будет убедиться, что вы на самом деле используй это - установить загрузить, работает и временный каталог к этой точке монтирования SSD.

Или даже лучше - поскольку у вас 72 ГБ ОЗУ - создайте RAM-диск и используйте его для временных файлов. Это будет даже быстрее, чем SSD (если файлы поместятся).

Прежде всего, не обращайте внимания на скорость загрузки и оптимизируйте обработку - загрузите файл в EBS и рассчитайте время обработки, затем загрузите на SSD и установите время, а затем на RAM-диск и рассчитайте время обработки. Посмотрите, насколько они отличаются.

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

Re Производительность процессора - у вас есть 36 процессоров, но каждое ядро может быть медленнее, чем ядра на вашей предыдущей 12-ядерной машине. Это зависит от архитектуры процессора и тактовой частоты. Однако, если вы можете распараллелить обработку видео на 36 потоков, вам будет лучше в этом случае. Если вы полагаетесь на один поток, вы можете не получить желаемой производительности.

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

Есть ли возможность рассмотреть альтернативы? По стоимости c5d.9xlarge, даже если вы получаете существенную скидку, на рынке выделенных серверов вы можете несколько эквивалентные или лучшие машины

Использование облака для решения такого рода задач с вертикальным масштабированием - это рецепт переплаты и, как вы видели, низкой производительности.

Извините за отсутствие ответа, но у меня недостаточно комментариев, чтобы прокомментировать