AWS RDS कनेक्शन सीमा


45

आरडीएस सर्वर 40 कनेक्शन अधिकतम के साथ आता है, जैसा कि निम्नलिखित दस्तावेज में
मैं Magento 1.9 का उपयोग कर रहा हूं, और कुछ बिंदुओं पर, मैं अधिकतम संख्या तक पहुंचता हूं तब वेबसाइट सेवा से बाहर हो जाती है।
क्या आपके पास इस मुद्दे को हल करने का कोई अनुशंसित तरीका है?

मेरी समझ से, अगर मेरे पास आरडीएस सर्वर से 2 वेब सर्वर कनेक्शन हैं .. तो मेरे पास 2 आरडीएस कनेक्शन होने चाहिए, अधिक नहीं।


2
"मेरी समझ से, अगर मेरे पास आरडीएस सर्वर से 2 वेब सर्वर कनेक्शन हैं .. तो मेरे पास 2 आरडीएस कनेक्शन होने चाहिए, अधिक नहीं।" यह एक गलत समझ है। यह आमतौर पर प्रति कार्यकर्ता प्रक्रिया या धागा 1 कनेक्शन है।
माइकल - sqlbot

धन्यवाद @ माइकल- sqlbot .. हाँ मुझे यह गलत लगता है, लेकिन मैं यह सुनिश्चित करना चाहता था। लेकिन, जब हमारे पास आरडीएस में आने वाले 40 कनेक्शन हैं तो यह अन्य कनेक्शन को मना कर देता है और अन्य कनेक्शन बंद होने तक पहुंच से बाहर है?
अला बद्रन

यह डिजाइन से, max_connectionsपैरामीटर से है। अधिकांश कार्यभार के लिए, आपको इसे सुरक्षित रूप से बढ़ाने में सक्षम होना चाहिए, क्योंकि यह सुरक्षित रूप से रूढ़िवादी डिफ़ॉल्ट मान है ... लेकिन आप उन स्पाइक्स के कारण की जांच करना चाहते हैं।
माइकल - स्क्वॉलबोट

जवाबों:


65

AWS RDS max_connections लिमिट वेरिएबल इंस्टेंस प्रकार पर आधारित है, जिससे आप अपने RDS को अपग्रेड कर सकते हैं या अधिक प्रतिकृति बना सकते हैं।

Max_connections सीमा के साथ RDS प्रकार:

  • t2.micro 66
  • t2.small 150
  • m3.medium 296
  • t2.medium 312
  • m3.large 609
  • t2.large 648
  • m4.large 648
  • m3.xlarge 1237
  • r3.large 1258
  • m4.xlarge 1320
  • m2.xlarge 1412
  • m3.2xlarge 2492
  • r3.xlarge 2540

रेफ़र एडब्ल्यूएस आरडीएस MySQL उदाहरण आकार पर max_connections 2015 में

अपडेट 2017-07

वर्तमान RDS MySQL max_connections सेटिंग डिफ़ॉल्ट है {DBInstanceClassMemory/12582880}, यदि आप 512MB RAM के साथ t2.micro का उपयोग करते हैं , तो max_connections हो सकता है (512 * 1024 * 1024) / 12582880 ~ = 40, और इसी तरह।


प्रत्येक वेब सर्वर में RDS के कई कनेक्शन हो सकते हैं, जो वेब सर्वर से आपके SQL अनुरोधों पर निर्भर करता है।


मुझे यह पता है, लेकिन जब 40 कनेक्शन तक पहुंचते हैं, तो सर्वर जवाब नहीं देता है? इसे देखें: drive.google.com/file/d/0B-_uggt0MBYOZElEMEItWDIwUEk/…
अला बद्रन

1
मैं आरडीएस पैरामीटर समूहों की जांच करता हूं, तो max_connections डिफ़ॉल्ट रूप से होता है {DBInstanceClassMemory/12582880}, इसलिए जब आप 512 एमबी रैम के साथ t2.micro का उपयोग करते हैं, तो max_connections हो सकता है (512*1024*1024)/12582880 = 40.69जो आपके 40 अधिकतम कनेक्शन समझा सकता है।
निक त्साइ

2
आप उस RDS MySQL को कमांड के साथ क्वेरी करके मान की जाँच कर सकते हैं show variables like 'max_connections';
निक

1
आप एक नया बना सकते हैं parameter groupऔर अपने max_connections इच्छित मूल्य का मूल्य बदल सकते हैं। यह आपके RDS उदाहरण के लिए नई कनेक्शन सीमा होगी।
बैकस्लैश

1
यह उत्तर 2019 में है। आप हमेशा खुद की जाँच कर सकते हैंSHOW VARIABLES WHERE Variable_name='max_connections'
डेव स्टीन

30

आप max_connectionsडिफ़ॉल्ट पैरामीटर नीति को अपडेट करके या एक नया बनाकर मूल्य बदल सकते हैं - मैं बाद के साथ जाने का सुझाव दूंगा।

  • आरडीएस पर जाएं
  • पैरामीटर समूह
  • एक नया पैरामीटर समूह बनाएँ (AWS wil सब कुछ डिफ़ॉल्ट के रूप में छोड़ दें)
  • max_connectionsमूल्य के लिए खोज
  • उपयोग करने के लिए मान बदलें
  • RDS उदाहरण पर जाएं और संशोधित करें
  • बनाए गए नए पैरामीटर समूह का चयन करें और आवृत्ति को पुनरारंभ करें या AWS को अगले रखरखाव विंडो के दौरान इसे रिबूट करने दें

उम्मीद है की यह मदद करेगा!


2
<3 यह स्वीकृत उत्तर होना चाहिए
bbozo

2
भले ही मैंने 1000 में अधिकतम_कनेक्ट निर्धारित किए हैं, फिर भी आरडी ने केवल एक माइक्रो उदाहरण पर 100 अधिकतम कनेक्शन की अनुमति दी
मिगुएल मोटा

1

सर्वर कॉन्फ़िगरेशन पर अधिकतम कनेक्शन बढ़ाने से समस्या ठीक हो सकती है, आपको अपने एप्लिकेशन कॉन्फ़िगरेशन और कार्यान्वयन की पुष्टि करने पर विचार करना चाहिए।

मैं Magento का विशेषज्ञ नहीं हूं, लेकिन जैसा कि मैंने हाल ही में एक परियोजना पर एक समान मुद्दा था, जिस पर मैं काम कर रहा था, मैंने देखा कि मैं जिस फ्रेमवर्क का उपयोग कर रहा था, उसका डिफ़ॉल्ट कार्यान्वयन डेटाबेस पर हर कॉल के साथ एक कनेक्शन बनाया गया था।

हालांकि इससे कुछ को कोई समस्या नहीं हो सकती है, जिस पल आपके पास अधिक आगंतुक या कुछ कार्य हैं जो डेटाबेस गहन हैं और कई कनेक्शनों पर चल सकते हैं, "TOO MANY CONNECTIONS" त्रुटि के साथ सर्वर को रोकने का सबसे अच्छा तरीका एक डेटाबेस को लागू करना है कनेक्शन पूल।

यह एप्लिकेशन को अधिक कनेक्शन बनाने से रोकता है जो सर्वर को संभाल सकता है, और उपयोगकर्ताओं को एप्लिकेशन को क्रैश नहीं कर सकता है। एक कनेक्शन पूल डेटाबेस तक पहुंचने के अनुरोधों के लिए एक कतार रखेगा, जब तक कि एक कनेक्शन उपलब्ध नहीं हो जाता है, इसलिए यह उपयोगकर्ताओं के अनुरोध को संसाधित करने के साथ आगे बढ़ सकता है।

बस यह ध्यान रखें कि कनेक्शन पूल बहु थ्रेड परिदृश्य में सुरक्षित होना चाहिए।


1

अपने RDS उदाहरण में लॉग इन करें (MySQL क्लाइंट का उपयोग करके) और निम्नलिखित क्वेरी चलाएँ:

SHOW VARIABLES LIKE 'max_connections';

1

Postgresql t3-instances (default.postgres10 पैरामीटर समूह) के लिए वास्तविक जानकारी:

  • db.t3.micro - 112 max_connections
  • db.t3.small - 225 max_connections
  • db.t3.medium - 450 max_connections
  • db.t3.large - 901 max_connections
  • db.t3.xlarge - 1802 max_connections
  • db.t3.2xlarge - 3604 max_connections

Default.postgres9 और default.postgres11 के लिए इसका समान है


0

यह 40 कनेक्शन अधिकतम नहीं है, जो कि 40 आरडीएस उदाहरण अधिकतम है। आप अपने विवरण के आधार पर केवल 1 उदाहरण का उपयोग करने की संभावना रखते हैं।

आपके पास आरडीएस सर्वर के हजारों कनेक्शन हो सकते हैं क्योंकि हर बार एक सत्र डेटाबेस के साथ खोला जाता है, जो एक नया कनेक्शन बनाता है। आप शायद प्रदर्शन की कमी में चल रहे हैं और आरडीएस उदाहरण को बड़ा बनाना चाहिए।


धन्यवाद @ लजन्स के पास निम्नलिखित जानकारी है: 40 कनेक्शन तक पहुंचने पर, आरडीएस अन्य कनेक्शनों को बंद होने तक जवाब नहीं देता है। हमारे पास r3.xlarge RDS उदाहरण है। इसका एक स्क्रीनशॉट इस प्रकार है: drive.google.com/file/d/0B-_uggt0MBYOZElEMEItWDIwUEk/… हमारे पास निष्क्रिय सीपीयू है जिसमें उच्च संख्या में कनेक्शन हैं
Alaa Badran

यह कनेक्शन है, अन्य बात नहीं
ऑरलैंडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.