оптимизация рабочих кластеров nodejs

Допустим, у меня есть 12-ядерный процессор, на котором я запускаю приложение nodejs.

Приложение в основном выполняет две функции:
1. Преобразует загруженное видео из одного формата в другой (интенсивно использует ЦП)
2. Обслуживает другие запросы GET/POST, интенсивно использующие БД

Вопрос : Лучше всего создать 2 сервера - один для работы процессора, другой для работы с БД? Если я использую модуль кластера, сколько воркеров я должен создать на каждом сервере?


person vjjj    schedule 28.06.2016    source источник


Ответы (1)


Я бы не стал перекодировать на том же сервере, что и сервер API REST, а скорее перенес бы его на отдельный сервер.

Существует множество сервисов, предоставляющих возможности транскодирования, например Amazon Elastic Transcoder и другие. Если вы настаиваете на собственном сервере, я бы использовал контейнер Docker вокруг FFMPEG. и разверните это в среде автоматического масштабирования Docker, такой как Elastic Beanstalk.

person Travis Tidwell    schedule 28.06.2016
comment
Есть ли проблема выполнить транскодирование с использованием FFMPEG на отдельном сервере, работающем на той же машине, что и сервер REST API (я не очень склонен использовать AWS)? - person vjjj; 29.06.2016
comment
Транскодирование использует больше, чем просто ЦП, и может вызвать много проблем с остальным API, если вы попытаетесь запустить его на том же компьютере. Это также сожрет оперативную память и другие ресурсы. Я бы очень рекомендовал хранить его на отдельной машине. Помимо AWS, существуют и другие сервисы, предоставляющие транскодирование как услугу. - person Travis Tidwell; 29.06.2016