2008-09-16 19 views
8

कस्टम सर्वर लिखते समय, किसी भी समय सर्वर से कनेक्ट होने वाले अधिकतम उपयोगकर्ताओं को निर्धारित करने के लिए सर्वोत्तम प्रथाओं या तकनीकों क्या हैं?कंप्यूटर कनेक्शन कितने नेटवर्क कनेक्शन कर सकते हैं?

मुझे लगता है कि कंप्यूटर हार्डवेयर, नेटवर्क क्षमता, और सर्वर प्रोटोकॉल की क्षमताओं सभी महत्वपूर्ण कारक होंगे।

साथ ही, क्या आपको लगता है कि उपयोगकर्ताओं की एक निश्चित अधिकतम संख्या में नेटवर्क कनेक्शन की संख्या सीमित करने के लिए यह एक अच्छा अभ्यास है? या सर्वर को नेटवर्क कनेक्शन की संख्या सीमित नहीं करनी चाहिए और प्रतिक्रिया समय बहुत अधिक होने तक प्रदर्शन को अपनाना चाहिए?

उत्तर

7

दान केगेल एक साथ एक ही सर्वर से नेटवर्क कनेक्शन की बड़ी मात्रा से निपटने के लिए, यहाँ के लिए तकनीक का एक सारांश डाल: http://www.kegel.com/c10k.html

+0

कि कागज वास्तव में वर्ष (1999) और वास्तव में तारीख करने के लिए नहीं ऊपर लग रहा है। उदाहरण के लिए, लिनक्स (कम से कम उबंटू) के नीचे अल्मिमित असीमित पर सेट है ... तो इसे 32768 पर सेट करना शायद आवश्यक नहीं है? –

5

सामान्य आधुनिक सर्वर में समवर्ती कनेक्शन की बहुत बड़ी संख्या को संभाल सकता है। मैंने 8,000 से अधिक समवर्ती खुले टीसीपी/आईपी सॉकेट वाले सिस्टम पर काम किया है।

आपको उस तरह के लोड को संभालने के लिए एक उच्च गुणवत्ता वाली सर्विसिंग इंटरफ़ेस की आवश्यकता होगी, libevent या libev देखें।

0

उच्च समवर्ती कनेक्शन में सबसे बड़ी झटके में से एक वास्तव में रूटर शामिल है। होम यूजर ओरिएंटेड राउटर में आमतौर पर एक छोटा एनएटी टेबल होता है, जो वास्तव में सर्वर को कनेक्शन सर्विस करने से राउटर को रोकता है।

बस अपने राउटर/नेटवर्क आधारभूत संरचना सेटअप को भी सुनिश्चित करना सुनिश्चित करें।

0

मुझे लगता है कि आपको अपने सर्वर की अनुमति देने वाले कनेक्शन की संख्या सीमित नहीं करनी चाहिए - केवल कनेक्शन को स्वीकार करने और बंद करने पर होने वाले किसी अपवाद को ठीक से पकड़ें और प्रबंधित करें और आपको ठीक होना चाहिए। आपको अंतर्निहित ओएस परतों में उस तरह के निचले स्तर के प्रोग्रामिंग को छोड़ना चाहिए - इस तरह आप अपने सर्वर को आसान बना सकते हैं आदि।

0

यह वास्तव में आपके ऑपरेटिंग सिस्टम पर निर्भर करता है।

विभिन्न यूनिक्स की झलक फ़ाइल हैंडल "असीमित" संख्या का समर्थन करेंगे/सॉकेट दूसरों की तरह 32768.

एक ठेठ उपयोगकर्ता सीमा 8192 है उच्च मूल्यों है, लेकिन यह आम तौर पर उच्च सेट किया जा सकता।

मुझे लगता है कि विंडोज़ अधिक सीमित है लेकिन सर्वर संस्करण में उच्च सीमाएं हो सकती हैं।

4

यह एक अच्छा सवाल है और यह निश्चित रूप से परिस्थितिपूर्ण है। आपका कंप्यूटर क्या है? क्या आपके पास क्वाड कोर ज़ीन्स, 128 जीबी रैम और फाइबर चैनल कनेक्टिविटी (जैसे डेल आर 9 00 की जोड़ी हमने अभी खरीदी है) से भरा 4 सॉकेट मशीन है? या आप 256 एमबी रैम और 56 के मॉडेम के साथ पी 3 550 पर चल रहे हैं? आपके सर्वर पर प्रत्येक कनेक्शन कितना भार रखता है? किस तरह की प्रतिक्रिया स्वीकार्य है?

ये प्रश्न हैं जिन्हें आपको उत्तर देने की आवश्यकता है। मुझे लगता है कि जवाब खोजने का सबसे अच्छा तरीका लोड परीक्षण के माध्यम से है। अपेक्षित (और शायद कुछ अप्रत्याशित) पथों का एक यूनिट परीक्षण बनाएं जो आपका कोड आपके सर्वर के विरुद्ध प्रदर्शन करेगा। लोड लोड फ्रेमवर्क ढूंढें जो आपको एक ही समय में उन कार्यों को करने वाले 10, 100, 1000, 10000 उपयोगकर्ताओं को अनुकरण करने की अनुमति देगा।

यह आपको बताएगा कि आपका कंप्यूटर कितने कनेक्शन का समर्थन कर सकता है।

भार/इकाई परीक्षण परिदृश्य के बारे में बड़ी बात यह है कि आप अपने यूनिट परीक्षणों में प्रतिक्रिया समय अपेक्षाओं में डाल सकते हैं और जब तक आप अपने प्रतिक्रिया समय से बाहर नहीं आते हैं तब तक लोड बढ़ा सकते हैं। यदि आपको वाई दूसरी प्रतिक्रिया वाले उपयोगकर्ताओं की एक्स संख्या का समर्थन करने की आवश्यकता है, तो आप इसे अपने लोड परीक्षणों के साथ प्रदर्शित करने में सक्षम होंगे।

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