क्या एक सर्वर एक साथ शेल कमांड को हैंडल कर सकता है?


11

मैं PHP में एक बहुत ही सरल ब्राउज़र आधारित एमपी 3 प्लेयर लिख रहा हूं । इस परियोजना के भाग के लिए आवश्यक है कि हर एमपी 3 फ़ाइल एक WAV फ़ाइल में परिवर्तित हो । PHP में एक फ़ंक्शन होता है, जिसे आप शेल के माध्यम से एक कमांड निष्पादित करने की अनुमति देते हैं। मेरे प्रोजेक्ट के लिए, जब भी कोई अपने खाते में कोई गीत अपलोड करता है, तो निम्नलिखित कमांड निष्पादित की जाएगी:shell_exec

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

तो मान लें कि 10 अलग-अलग लोग हैं जो एक ही सटीक समय पर एक गीत अपलोड करना समाप्त करते हैं। क्या लिनक्स सर्वर एक साथ 10 शेल कमांड निष्पादित करता है या यह केवल एक समय में एक ही करता है?

यदि एक सर्वर एक साथ कई शेल कमांड को हैंडल कर सकता है, तो क्या सर्वर एक ही समय में 10 विभिन्न गानों को परिवर्तित करने में सक्षम होगा या यह एक समय में केवल एक ही करता है?


यह ubuntu कैसे संबंधित है? क्या यह सर्वरफोल या यूनिक्स से संबंधित नहीं है?
बिटमैस्क

5
उपयोगकर्ता से इनपुट फ़ाइल नाम को स्वीकार करने के साथ बहुत सावधान रहें। कोई व्यक्ति विशेष रूप से एक फ़ाइलनाम तैयार कर सकता है जो कुछ कमांड की नकल करता है, और जिसे आप निष्पादित करेंगे, और आपको अनिवार्य रूप से हैक किया जाएगा।
रोरी

जवाबों:


13

यदि आप इसे PHP के माध्यम से कर रहे हैं (या किसी अन्य भाषा में शेल कमांड तक पहुंच है) तो वे अलग से किए जाएंगे, जिसका अर्थ है कि वे एक साथ किया जाएगा यदि संयोग से 10 उपयोगकर्ता एक ही समय में PHP स्क्रिप्ट का उपयोग करते हैं। प्रत्येक PHP कॉल के माध्यम से shell_execदूसरों से स्वतंत्र किया जाएगा। मेरे पास स्वयं एक shell_execस्क्रिप्ट है जो कुछ छवियों के लिए मेरे उपयोगकर्ताओं को कुछ जानकारी दिखाती है और यह स्वतंत्र रूप से अन्य PHP निष्पादित स्क्रिप्ट्स के माध्यम से किया जाता है shell_exec

एक साथ कितने उपयोगकर्ता यूज़र्स को हैंडल कर सकते हैं, इसकी एक सीमा है, लेकिन यदि आप इसका उपयोग कर रहे हैं, तो यह आपके वेब सर्वर, पीएचपी कॉन्फ़िगरेशन फ़ाइल और MySQL पर निर्भर करता है। मुझे पता है कि एक ही समय में संख्या 100 से अधिक है।

सीपीयू इंटेंसिव कमांड का उपयोग करते समय, उदाहरण के लिए, वीडियो को परिवर्तित करने के लिए, कमांड का प्रभावी उपयोग तब निर्भर करेगा कि आपके पास कितनी रैम है और आपके पास कितना सीपीयू पावर है। 64 एमबी रैम और 80486 वाले किसी व्यक्ति के लिए दो वीडियो और 10 गाने बदलने की कोशिश करना बुरा होगा। इससे सिस्टम ओवरलोड हो जाएगा। कोर 2 डुओ सर्वर और 4 जीबी रैम वाले किसी व्यक्ति के लिए मुझे लगता है कि कई गीतों को परिवर्तित करना केक का एक टुकड़ा होगा।

तो मूल रूप से, हाँ, लिनक्स कई युगपत शेल कमांड को संभाल सकता है, विशेष रूप से PHP से, लेकिन समग्र प्रदर्शन सर्वर (सीपीयू, रैम, हार्ड डिस्क ड्राइव, आदि) के संसाधनों पर निर्भर करेगा।


6

यदि आप बड़ी संख्या में उपयोगकर्ताओं का समर्थन करते हैं, तो आपको रूपांतरण प्रक्रिया को संभालने के एक वैकल्पिक तरीके की जांच करनी होगी।

उदाहरण के लिए, आप संभवतः नौकरी शेड्यूलिंग सिस्टम सेटअप करेंगे जैसे कि आप किसी फ़ाइल को परिवर्तित करने के लिए सिस्टम से अनुरोध करते हैं और पूर्ण स्थिति के लिए सिस्टम को पोल करते हैं। शेड्यूलिंग सिस्टम एक कतार से कार्य लेता है और कहता है कि एक समय में अधिकतम चार फ़ाइल रूपांतरण करें।

यह सवाल दिलचस्पी का हो सकता है:

/programming//q/265073/175849


एक और शानदार जवाब, धन्यवाद स्टीव-ओ
user784637
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.