Отказ от ответственности: я являюсь фронтенд-разработчиком в мире серверов.
Привет, ребята. У меня есть экземпляр сервера на EC2, c5d.9xlarge
, чьи спецификации:
Сценарий: Я использую этот сервер для загрузки больших видео (4K, 1+ час) и обработки их с помощью FFMPEG, но по сравнению с моим предыдущим сервером UpCloud с 12 ядрами и 48 ГБ ОЗУ, этот сервер EC2 требует в 1,5 раза больше времени для загрузки и обработки, что Думаю, не должно быть.
Вопрос: Как добиться максимальной эффективности того, за что я плачу?
Ваш c5d.9xlarge
поставляется с Хранилище экземпляра 900 ГБ (он же эфемерное хранилище) - вы используете это для хранения и обработки файлов? Хотя у вашего экземпляра есть выделенная пропускная способность EBS, хранилище SSD на экземпляре все равно будет намного быстрее. Я предлагаю вам использовать это для всех исходных и временных файлов и сохранять результаты только в EBS.
Однако есть некоторые предостережения относительно хранилища экземпляров:
Ты должен форматировать и монтировать прежде чем его можно будет использовать. Обратитесь к этому ответу для получения более подробной информации: Автоматически монтировать хранилище инстансов SSD на AWS EC2 в Ubuntu 16.04
Содержание протертый при остановке и повторном запуске экземпляра. Он переживает перезагрузку, но не останавливается / запускается.
Обновить: По умолчанию SSD не установлен - вам нужно будет выполнить шаги из связанного ответа выше, чтобы использовать его. В стандартной конфигурации после загрузки вы будете использовать EBS, который работает медленнее, чем SSD.
Тогда вам нужно будет убедиться, что вы на самом деле используй это - установить загрузить, работает и временный каталог к этой точке монтирования SSD.
Или даже лучше - поскольку у вас 72 ГБ ОЗУ - создайте RAM-диск и используйте его для временных файлов. Это будет даже быстрее, чем SSD (если файлы поместятся).
Прежде всего, не обращайте внимания на скорость загрузки и оптимизируйте обработку - загрузите файл в EBS и рассчитайте время обработки, затем загрузите на SSD и установите время, а затем на RAM-диск и рассчитайте время обработки. Посмотрите, насколько они отличаются.
На скорость загрузки будут влиять многие аспекты, включая расстояние и задержку между вами и регионом AWS, в который вы загружаете. Вы используете ближайший к вам регион AWS?
Re Производительность процессора - у вас есть 36 процессоров, но каждое ядро может быть медленнее, чем ядра на вашей предыдущей 12-ядерной машине. Это зависит от архитектуры процессора и тактовой частоты. Однако, если вы можете распараллелить обработку видео на 36 потоков, вам будет лучше в этом случае. Если вы полагаетесь на один поток, вы можете не получить желаемой производительности.
Надеюсь, это поможет :)
Есть ли возможность рассмотреть альтернативы? По стоимости c5d.9xlarge
, даже если вы получаете существенную скидку, на рынке выделенных серверов вы можете несколько эквивалентные или лучшие машины
Использование облака для решения такого рода задач с вертикальным масштабированием - это рецепт переплаты и, как вы видели, низкой производительности.
Извините за отсутствие ответа, но у меня недостаточно комментариев, чтобы прокомментировать