проблемы производительности сайта при использовании ffmpeg на отдельном сервере - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время я работаю над сайтом, который использует WordPress и FFMpeg.Я настроил его так, чтобы у меня было 3 сервера - основной, база данных, ffmpeg.Пока у меня все это работает, однако у меня все еще возникают проблемы, когда я пытаюсь кодировать видео.

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

Мои спецификации для моих серверов -

Main (веб-сервер) - 4 виртуальных ЦП / 8 ГБ ОЗУ / 160 ГБ Диск

Сервер базы данных - 2 виртуальных ЦП / 4 ГБ ОЗУ / 80 ГБ Диск

Сервер Ffmpeg - 8 виртуальных ЦП / 32 ГБ / 640 ГБ Диск

Они также находятся в одном регионе, и у меня есть частные IP-адреса как общедоступныедля них.Публичные IP-адреса используют IPv4.

На моей странице шаблона у меня есть форма, которую пользователи заполняют и загружают изображения, а затем с помощью ajax отправляет информацию моим функциям ffmpeg в моем файле functions.php.

Изображения загружаются на главный сервер, а затем на этот сервер в моем файле functions.php. Я использую ssh2 для входа на сервер ffmpeg и запускаю различные команды, например -

$server   = "FFMPEG SERVER IP"; // server IP/hostname of the SSH server
$username = "user"; // username for the user you are connecting as on the SSH server
$password = "pass"; // password for the user you are connecting as on the SSH server
// Establish a connection to the SSH Server. Port is the second param.
$connection = ssh2_connect($server, 22);
// Authenticate with the SSH server
ssh2_auth_password($connection, $username, $password);
$sftp = ssh2_sftp($connection);
ssh2_sftp_mkdir($sftp, $thepathw);

$command = '/usr/local/bin/ffmpeg -threads 1 -i '.$thepath .'/audio.mp3 -safe 0 -f concat -i '.$thepath.'/paths.txt -vf "scale=1280:720,setsar=1" -pix_fmt yuv420p -c:a aac -af "volume=-5dB" -c:v libx264 -movflags +faststart '.$fixedtime.' -y '.$output.' 2>&1';

// Execute a command on the connected server and capture the response
$stream = ssh2_exec($connection, $command);
// Sets blocking mode on the stream
stream_set_blocking($stream, true);
// Get the response of the executed command in a human readable form
$output1 = stream_get_contents($stream);
// echo output
echo $output1;

Видеофайлто, что создано, затем сохраняется на сервере ffmpeg.

Все это работает как следует, и я могу создавать видео, но остальная часть сайта, похоже, не отвечает / загружается, пока ffmpeg не будет завершен.Это большая проблема, так как я планирую иметь сразу несколько пользователей на сайте.

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

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

Любые предложения приветствуются, спасибо.

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