2011-06-01 14 views
7

मेरा node.js सर्वर नवीनतम (0.4.8) http.request कॉल का उपयोग कर किसी अन्य सर्वर पर कॉल कर रहा है।Node.js 'http.request के लिए प्रदर्शन क्या है? यह कितने समवर्ती अनुरोध को संभाल सकता है?

मैं भार परीक्षण चलाने के लिए जेएमटर का उपयोग करता हूं। प्रति सेकेंड 50-100 समवर्ती धागे, और लूप 1000 बार।

स्क्रिप्ट चलते समय मैं कुछ धीमी गति से देखता हूं। मैं नेटवर्क थ्रूपुट की निगरानी बहुत कम है, सीपीयू & मेमोरी भी कम है। और दूसरे सर्वर में, लॉग दिखाता है कि उनकी प्रतिक्रिया त्वरित है। (मिलीसेकंड के भीतर)।

हालांकि, मेरे node.js सर्वर में console.log से पता चलता है कि http.request प्रतिक्रिया समय 200-300 एमएस से 2000-3000 एमएस तक शुरू होता है।

मुझे यकीन नहीं है कि समवर्ती http.request की सीमा है या नहीं।

कृपया सलाह दें।


जबरदस्त परीक्षण के बाद, मुझे लगता है कि औसत एक ठीक सर्वर के साथ http.request के लिए 300-400 के बारे में अनुरोध/सेकंड है, maxSockets = 1024 आमतौर पर, मैं गति को देखने के (विभिन्न वेबसाइट से कनेक्ट) के बारे में है प्रति अनुरोध 80-100 एमएस।

उत्तर

10

अधिकतम समवर्ती कनेक्शन आपके हार्डवेयर पर निर्भर होना चाहिए। This article ने कहा कि node.js हजारों समवर्ती कनेक्शन का समर्थन कर सकता है। हालांकि, अधिकांश लिनक्स सिस्टम केवल डिफ़ॉल्ट रूप से 1024 फ़ाइलों/सॉकेट को एक ही समय में खोलने की अनुमति देते हैं। उस स्थिति के लिए, आप रूट के रूप में चला सकते हैं और फिर एक बड़ी संख्या (उदा।, 100000) के रूप में ulimit सेट कर सकते हैं, फिर समवर्ती कनेक्शन की सटीक क्षमता प्राप्त करने के लिए अपने हार्डवेयर के साथ एक तनाव परीक्षण चलाएं।

+4

सॉकेट का # प्राप्त करें: ulimit -n सॉकेट के # 102 के रूप में सेट करें: ulimit -n 10240 – sky100

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