2013-08-07 4 views
7

मेरे पास एक ऐसा एप्लिकेशन है जो लंबी-निष्पादन प्रक्रियाओं को चलाता है। इसे तेज़ी से बनाने के लिए, मैं डेटा की सरल शेडिंग करता हूं और समानांतर में उन्हें चलाने के लिए चाहता हूं, बस .fork() 2 उसी एप्लिकेशन के उदाहरणों से।Node.js child_process.fork() विभिन्न CPU कोरों पर चलाने के लिए

मेरे पास 2 कोर मशीन हैं और यह सुनिश्चित करना चाहते हैं कि 2 कोर का उपयोग किया जाता है और पहला उदाहरण पहले कोर पर चल रहा है, दूसरे कोर पर दूसरा।

मुझे cluster मॉड्यूल के बारे में पता है, लेकिन ऐसा लगता है कि इस मामले में प्रासंगिक नहीं है, क्योंकि मुझे HTTP सेवाओं को चलाने और उनके बीच लोड-संतुलन की आवश्यकता नहीं है। बस श्रमिकों (मतलब, उन्हें एक दूसरे के साथ संवाद करने की आवश्यकता नहीं है, संदेश या जो कुछ भी भेजते हैं - वे सिर्फ HTTP अनुरोध करते हैं और डाटाबेस को डेटा स्टोर करते हैं)।

क्या यह नियंत्रित करने के लिए संभव है कि कौन सी सीपीयू कोर node.js प्रक्रिया करेगा? मैक/लिनक्स पर इसकी निगरानी कैसे करें? http://nodejs.org/api/cluster.html

+1

का उपयोग करने की सलाह दूंगा आप इस विषय को देख सकते हैं: http://stackoverflow.com/questions/663958/how-to-control -विच-कोर-ए-प्रोसेस-रन-ऑन – moka

+1

मुझे नहीं लगता कि आप एक सीपीयू कोर चलाने के लिए थ्रेड प्रोग्राम कर सकते हैं। यह ओएस को बाधित कर देगा क्योंकि यह संदर्भ स्विच नहीं कर सकता है और इसलिए मल्टीटास्क। इस तरह के निर्णय ओएस के लिए सबसे अच्छा छोड़ दिया जाता है। – user568109

+0

http://stackoverflow.com/a/8685968/941764 – jgillich

उत्तर

2

क्लस्टर मॉड्यूल वास्तव में आप क्या जरूरत है यह, और वहां कई हैं:

https://www.npmjs.com/package/poolio

मेरा मॉड्यूल अच्छी तरह से काम करता है, लेकिन एपीआई उस सीधा नहीं है, इसलिए मैं कोर मॉड्यूल

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