Saya sedang menulis pemutar MP3 berbasis browser yang sangat sederhana dalam PHP . Bagian dari proyek ini mensyaratkan bahwa setiap file MP3 dikonversi ke file WAV . Ada fungsi dalam PHP yang disebut shell_exec
yang memungkinkan Anda untuk menjalankan perintah melalui shell. Untuk proyek saya, setiap kali seseorang mengunggah lagu ke akun mereka, perintah berikut akan dijalankan:
shell_exec('ffmpeg -i inputSong.mp3 outputSong.wav')
Jadi misalkan ada 10 orang berbeda yang selesai mengunggah lagu pada waktu yang bersamaan. Apakah server Linux menjalankan 10 perintah shell secara bersamaan atau apakah itu hanya dilakukan satu per satu?
Jika server dapat menangani beberapa perintah shell secara bersamaan, apakah server dapat menangani konversi 10 lagu yang berbeda pada saat yang sama atau apakah itu hanya dilakukan satu per satu?
sumber
Jawaban:
Jika Anda melakukannya melalui PHP (atau bahasa lain yang memiliki akses ke perintah shell) mereka akan dilakukan secara terpisah, yang berarti bahwa mereka akan dilakukan secara simultan jika kebetulan 10 pengguna menggunakan skrip PHP pada saat yang sama. Setiap panggilan PHP melalui
shell_exec
akan dilakukan terlepas dari yang lain. Saya sendiri memilikishell_exec
skrip yang menampilkan beberapa informasi kepada pengguna saya untuk gambar tertentu dan ini dilakukan secara independen dari skrip yang dieksekusi PHP lainnyashell_exec
.Ada batasan untuk berapa banyak pengguna simultan PHP dapat menangani, tetapi itu tergantung pada server web Anda, file konfigurasi PHP dan MySQL jika Anda menggunakannya. Saya tahu jumlahnya lebih besar dari 100 pada saat yang sama.
Saat menggunakan perintah intensif CPU, misalnya mengonversi video, penggunaan perintah yang efektif akan tergantung pada berapa banyak RAM yang Anda miliki dan berapa banyak daya CPU yang Anda miliki. Untuk seseorang dengan 64 MB RAM dan 80486 akan menjadi buruk untuk mencoba mengkonversi dua video dan 10 lagu. Itu akan membebani sistem. Untuk seseorang dengan server Core 2 Duo dan 4 GB RAM saya pikir mengonversi beberapa lagu akan menjadi hal yang mudah.
Jadi pada dasarnya, ya, Linux dapat menangani beberapa perintah shell simultan, khususnya dari PHP, tetapi kinerja keseluruhan akan tergantung pada sumber daya server (CPU, RAM, hard disk drive, dll.)
sumber
Jika Anda mendukung sejumlah besar pengguna, Anda harus menyelidiki metode alternatif untuk menangani proses konversi.
Sebagai contoh, Anda mungkin akan mengatur sistem penjadwalan pekerjaan sehingga Anda memposting permintaan ke sistem untuk mengkonversi file dan polling sistem untuk status penyelesaian. Sistem penjadwalan akan mengambil tugas dari antrian dan mengatakan melakukan hingga empat konversi file sekaligus.
Pertanyaan ini mungkin menarik:
/programming//q/265073/175849
sumber