2011-11-06 20 views
7

मेरा प्रश्न काफी सरल है। हालांकि, इसे अलग-अलग चर के उत्तर देने की आवश्यकता हो सकती है (मुझे लगता है)node.js में कितने बच्चे_प्रोसेसेस को फोर्क() चाहिए?

मैं नोड.जेएस के साथ खेल रहा हूं और मैं सोच रहा हूं कि इसे बहु कोर आर्किटेक्चर में कैसे उपयोग किया जाए।

नवीनतम संस्करण child_process.fork() और child.spawn() बहु-प्रक्रिया प्रोग्रामिंग के लिए विधियों प्रदान करता है। मैंने this पर बड़े पैमाने पर धूमकेतु सर्वर के रूप में Node.js का उपयोग करने के बारे में बहुत अच्छा (लेकिन दिनांकित) आलेख पढ़ा है। अब नोडज बहु-प्रक्रिया प्रोग्रामिंग प्रदान करता है, मुझे वास्तव में कोई जानकारी नहीं है कि मुझे बड़ी संख्या में अनुरोध करने के लिए कितनी प्रक्रियाएं उत्पन्न करनी होंगी (मान लें कि मेरा सर्वर केवल एक मशीन पर चल रहा है)। क्या 'सर्वश्रेष्ठ' (या कम से कम एक अच्छा) चुनने का कोई तरीका है, एक ही नौकरी करने वाली बाल प्रक्रियाओं की संख्या?

एक प्रारंभिक मार्गदर्शिका के लिए कोई भी लिंक बहुत सराहना की जाएगी।

धन्यवाद

उत्तर

9

Node.js आधिकारिक दस्तावेज कैसे क्लस्टर का उपयोग करने का एक उदाहरण है:

var cluster = require('cluster'); 
var http = require('http'); 
var numCPUs = require('os').cpus().length; 

if (cluster.isMaster) { 
    // Fork workers. 
    for (var i = 0; i < numCPUs; i++) { 
    cluster.fork(); 
    } 

    cluster.on('death', function(worker) { 
    console.log('worker ' + worker.pid + ' died'); 
    }); 
} else { 
    // Worker processes have a http server. 
    http.Server(function(req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
    }).listen(8000); 
} 

आप उपरोक्त कोड में देख सकते हैं, आप संख्या के रूप में के रूप में कई कांटे का उपयोग करना चाहिए आपके पास सीपीयू है, ताकि सभी कोर एक ही समय में काम कर सकें (अपने प्रोसेसर के कोर के बीच काम वितरित करें)।

+1

धन्यवाद :) NodeJS दस्तावेज़ में इस पैरा :) – ArtoAle

+0

कोई समस्या नहीं है नहीं देखा था, वह आप यहां पा सकते हैं: http://nodejs.org/docs/v0.6.0/api/cluster.html – alessioalex

+0

हाँ , मैं अभी आधिकारिक एपीआई पर गहराई से देख रहा हूं! – ArtoAle

4

नोड.जेएस उदाहरण में, वे चाहते हैं कि प्रत्येक कोर केवल एक प्रक्रिया को चलाए। प्रति कोर कितने श्रमिकों पर कोई तकनीकी प्रतिबंध नहीं है, ताकि आप जितनी देर तक अपना सिस्टर्म संभाल सकें उतना रन कर सकें।

हालांकि, प्रति कोर प्रति एक से अधिक प्रक्रियाओं को चलाने से ऐप के प्रदर्शन में सुधार नहीं होता है।

उम्मीद है कि यह मदद करता है!

+0

क्या नोड एक अलग कोर पर प्रत्येक कांटा चलाएगा (अधिकतम कोर तक)? –

+0

यदि आपके पास 2 कोर हैं उदाहरण के लिए, आपके पास 2 कांटे होंगे और प्रत्येक कांटा में, 1 नोड ऐप होगा। –

संबंधित मुद्दे