Сервер может обработать одновременные команды оболочки?

Я пишу очень простой MP3-плеер на базе браузера в PHP. Часть этого проекта требует, чтобы каждый файл MP3 был преобразован в файл WAV. В названной PHP существует функция shell_exec это позволяет Вам выполнять команду через оболочку. Для моего проекта, каждый раз, когда кто-то загружает песню на их учетную запись, была бы выполнена следующая команда:

shell_exec('ffmpeg -i inputSong.mp3 outputSong.wav')

Так скажем, существует 10 различных людей, которые заканчивают загружать песню в то же точное время. Сервер Linux выполняет 10 команд оболочки одновременно, или он только делает по одному?

Если бы сервер может обработать несколько команд оболочки одновременно, сервер смог бы обработать преобразование 10 различных песен одновременно, или это только делает по одному?

11
задан 28 August 2011 в 07:11

2 ответа

Если Вы сделаете его через PHP (или любой другой язык, который имеет доступ для окружения команд), то они будут сделаны отдельно, что означает, что они будут сделаны одновременные, если случайно эти 10 пользователей будут использовать Сценарий PHP одновременно. Каждый PHP звонит через shell_exec будет сделан независимый от других. У меня самого есть a shell_exec сценарий, который показывает некоторую информацию моим пользователям для определенных изображений и это сделано независимо от выполняемых сценариев другого PHP до shell_exec.

Существует предел тому, сколько одновременных пользователей PHP может обработать, но он зависит от Вашего веб-сервера, конфигурационного файла PHP и MySQL при использовании его. Я знаю, что число больше, чем 100 одновременно.

При использовании ЦП интенсивные команды, например, преобразовании видео, эффективного использования команд затем зависели бы от того, сколько RAM Вы имеете и сколько мощности ЦП Вы имеете. Для кого-то с 64 МБ RAM и 80486 это разложилось бы, чтобы попытаться преобразовать два видео и 10 песен. Это перегрузило бы систему. Для кого-то с сервером Core 2 Duo и 4 ГБ RAM я думаю, преобразовывая несколько песен, был бы кусок пирога.

Так в основном, да, Linux может обработать несколько одновременных команд оболочки, особенно от PHP, но общая производительность зависела бы от ресурсов сервера (ЦП, RAM, жесткий диск, и т.д.)

13
ответ дан 23 November 2019 в 03:58

Если бы необходимо было поддерживать большое количество пользователей, то необходимо было бы исследовать альтернативный метод обработки процесса преобразования.

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

Этот вопрос мог бы представлять интерес:

https://stackoverflow.com/q/265073/175849

6
ответ дан 23 November 2019 в 03:58

Другие вопросы по тегам:

Похожие вопросы: