2011-01-12 18 views
5

मैं वर्तमान में Node.js और अपाचे के बीच प्रदर्शन का परीक्षण कर रहा हूं।प्रदर्शन परीक्षण अपाचे बनाम नोडजे

क्या मैं साबित करने के लिए चाहते हैं:

  • अपाचे धीमी है क्योंकि यह जो एक एकल थ्रेड घटना-लूप का उपयोग करता Node.js तुलना में बहुत अधिक थ्रेड-स्विच की जरूरत है।
  • अपाचे को नोड.जेएस की तुलना में बहुत अधिक रैम/कनेक्शन की आवश्यकता होती है जो एपोल का उपयोग करता है।

इसका मतलब है, कि क्या मैं परीक्षण करना चाहते है: सीपीयू प्रति

  1. अनुरोध/सेकंड प्रति रैम

  • कनेक्शन ठीक है कि मैं क्या करना चाहते है! लेकिन सवाल यह है कि मुझे यह कैसे करना चाहिए? अनुरोध/द्वितीय टेस्ट के लिए मैं केवल अपाचे बेंचमार्क (एबी) का उपयोग कर सकता हूं (लेकिन अब भी Node.js के लिए उपयुक्त है?) और सबसे बड़ा सवाल यह है कि: मैं कनेक्शन/रैम का परीक्षण कैसे कर सकता हूं?

  • उत्तर

    4

    कनेक्शन/सेकंड: मैंने हाल ही में एक सरल "हैलो वर्ल्ड" node.js सर्वर के साथ यह परीक्षण किया, और ~ 9,000 अनुरोध/प्रति सीपीयू कोर प्रति सेकंड प्राप्त किया। (एबी, बीटीडब्ल्यू का उपयोग करना। 2.5GHz, क्वाड-कोर, ज़ीओन लिनक्स बॉक्स पर परीक्षण)।

    प्रति रैम कनेक्शन: यहां दो # हैं जिनकी आप परवाह है। बेसलाइन मेमोरी (कोई कनेक्शन के साथ मेमोरी आवश्यक), और प्रति कनेक्शन मेमोरी। मैंने अपने मैक प्रो पर एक साधारण सर्वर/क्लाइंट को कताई करके परीक्षण किया जो HTTP कनेक्शन खोलता है। मैंने मेमोरी उपयोग देखने के लिए 'टॉप' कमांड चलाया। शून्य कनेक्शन पर, नोड में 14 एमबी आरएसआईजेई था। फिर, 2000 समवर्ती कनेक्शनों को चलाने और रखने वाले क्लाइंट के साथ, आरएसआईजेई 24 एमबी तक बढ़ी। तो ~ 5 एमबी/1000 कनेक्शन।

    जब आप नोड और अपाचे के लिए # प्राप्त करते हैं तो क्या आप उन्हें यहां पोस्ट कर सकते हैं? मैं भी उत्सुक हूँ।

    +0

    अब मुझे 2.5GHz ड्यूलकोर के 8 एएमडी पर 100 की समेकन के साथ ~ 6300 आर/एस मिलता है। कनेक्शन/राम के संबंध में मैंने tautologics स्क्रिप्ट का उपयोग किया -> github.com/tautologistics/node_loadtest जहां मैं लगभग 250 एमबी के साथ हास्यास्पद 61000 कनेक्शन के आसपास आच्छादित हूं। मुझे जो चाहिए वह पता है कि अपाचे के साथ अधिकतम समवर्ती/राम का परीक्षण करने का एक तरीका है। कोई सुझाव??? ओह और क्या आप अपनी स्क्रिप्ट पोस्ट कर सकते हैं कि आपने 5 एमबी/1000 कनेक्शन कैसे प्राप्त किए? – user572715

    17

    "मैं साबित करना चाहता हूं" बेंच-मार्किंग करते समय एक बहुत ही गलत रवैया है। आप कुछ भी साबित नहीं कर रहे हैं, आप वास्तविक प्रदर्शन को माप रहे हैं। आप परिणाम से आश्चर्यचकित हो सकते हैं या नहीं भी हो सकते हैं, लेकिन आपको वास्तव में "यह देखने के लिए कि यह चीज़ क्या कर सकती है" से शुरू करना है।

    स्पष्ट रूप से बीटीडब्ल्यू, मैंने देखा है कि सभी बेंचमार्क से, नोड कच्चे गति के मामले में पहले आता है लेकिन अधिक मेमोरी का उपयोग करता है तो अपाचे, इसलिए आपका 'प्रमाण' जाता है।

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