MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

लोड परीक्षण के दौरान MongoDB अनुत्तरदायी क्यों है?

इसे ठीक किया:

sudo sysctl net.ipv4.tcp_tw_reuse=1

फिर, मोंगो को फिर से शुरू करें।

वैकल्पिक रूप से, आप इसे /etc/sysctl.conf में जोड़ सकते हैं (इसलिए इसे रीबूट पर चलाया जाएगा):

net.ipv4.tcp_tw_reuse=1

फिर इसे पुनः लोड करने के लिए चलाएं (बिना रीबूट किए)

sudo sysctl -p /etc/sysctl.conf

यह "फिक्स" टीसीपी सॉकेट्स (सर्वर-वाइड) के लिए टाइमवेट स्थिति को अक्षम कर देगा। तो, यह वास्तव में बिल्कुल भी ठीक नहीं है। हालाँकि, जब तक mongo SO_LINGER का उपयोग करके अपनी टाइमवेट स्थिति को कम नहीं करता, तब तक बड़ी संख्या में सर्वर सॉकेट TIME_WAIT स्थिति में जमा हो जाएंगे और नए कनेक्शन के लिए अनुपयोगी रहेंगे। आप इसके साथ TIME_WAIT में कनेक्शनों की संख्या देख सकते हैं:

netstat -an | grep TIME_WAIT | wc -l

इसके साथ, मैं इसे लगभग 28k TIME_WAIT कनेक्शन पर विफल होते देख पा रहा था। इस कर्नेल ध्वज का उपयोग करना:

sysctl net.ipv4.ip_local_port_range="18000 65535"

सर्वर 45k कनेक्शन पर विफल रहता है। इसलिए, त्रुटि को अधिक आसानी से पुन:उत्पन्न करने के लिए, आप सीमा को 200 या कुछ छोटा कर सकते हैं।

तो, इसका परिणाम था आखिर एक प्रोग्रामिंग प्रश्न (जैसा कि आप अंतिम लिंक से देख सकते हैं):

TCP विकल्प SO_LINGER (शून्य) ) - जब इसकी आवश्यकता हो

http://alas.matf.bg.ac.rs /manuals/lspe/snode=105.html



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक चर के लिए क्वेरी खोजने में नेवला परिणाम लौटाएं

  2. MongoDB:एकाधिक सरणी तत्वों का मिलान करें

  3. MongoDB बहुत धीमी गति से हटाता है

  4. गोलांग में एक MongoDB $slice कैसे लिखें?

  5. मोंगोडब में उप-दस्तावेज़ अपडेट करें जो आईडी स्टोर करता है