11

मैं ओपनसोर्स जावा आधारित एप्लिकेशन i.e xwiki पर काम कर रहा हूं। Insie hibernate.cfg.xml मैं पैरामीटर कनेक्शन.pool_size और statement_cache.siz के मान 2 (प्रत्येक के लिए) के मान देख सकता हूं। मेरे आवेदन में समय के साथ 100 उपयोगकर्ताओं का अधिकतम भार होगा। अब मेरा सवाल यह है कि इस के लिए आदर्श कनेक्शन पूल आकार होना चाहिए। मेरे लिए आकार 2 बहुत कम दिखता है। यदि 100 उपयोगकर्ता एक समय में कनेक्ट होते हैं तो 98 उपयोगकर्ताओं को कनेक्शन जारी करने के लिए इंतजार करना पड़ता है? क्या मुझे अपने मामले में कनेक्शन पूल आकार 100 के रूप में रखना चाहिए?डेटाबेस कनेक्शन पूल आकार के निर्णय के पीछे सोच

मैं माइक्रोसॉफ्ट एसक्यूएल सर्वर का उपयोग कर रहा हूं।

इसके अलावा अधिकतम कनेक्शन पूल आकार पर एक सीमा है। क्या यह वेबसर्वर (मेरे मामले में टोमकैट) या डेटास्टोर विक्रेता (एमएस एसक्यूएल सर्वर) पर निर्भर करता है?

+0

यह भी सोचें कि सर्वर कितने कनेक्शन का समर्थन कर सकता है। – Thilo

+0

प्रश्न 1: आपके पास कितने सीपीयू हैं ?, प्रश्न 2: क्या आपके प्रश्न अपेक्षाकृत आईओ संचालित (OLTP - विलंबता) या CPU भारी (सॉर्ट, ग्रुप, एनालिटिक्स) हैं? – jasonk

+0

सावधान रहें कि पूल मेमोरी –

उत्तर

3

यदि कोई सामान्य अनुरोध गणना करने के 50% समय और डेटाबेस कनेक्टिविटी पर 50% खर्च करता है तो आपको केवल अपने पूल में 50 कनेक्शन की आवश्यकता हो सकती है। बेशक आपके आवेदन को जितनी जल्दी हो सके डीबी कनेक्शन जारी करना चाहिए।

सामान्य रूप से कनेक्शन रखने के लिए डेटाबेस के लिए महंगा नहीं है (जबकि एक नया निर्माण करना काफी महंगा है)। आकार को उच्च रखने के लिए यह कोई समस्या नहीं होनी चाहिए।

आप 50

  • को 100
  • पसंदीदा पूल आकार के

    • अधिकतम पूल आकार और जमा कनेक्शन के लिए 5 मिनट के लिए निष्क्रिय समयबाह्य सेट कर सकते हैं।

    मैं Microsoft SQL सर्वर से परिचित नहीं हूँ, लेकिन मुझे लगता है कि अपने max pool limit is 100

    बिलाव पूल आकार की इस संख्या के साथ ठीक हो जाएगा।

  • +0

    उत्तर के लिए धन्यवाद इमरान के रूप में खर्च हो सकता है। जैसा कि आपने कहा था: - यदि एक सामान्य अनुरोध गणना करने के 50% समय और डेटाबेस कनेक्टिविटी पर 50% खर्च करता है तो आपको केवल अपने पूल में 50 कनेक्शन की आवश्यकता हो सकती है। क्या होगा यदि सभी 100 उपयोगकर्ताओं को एक ही समय में कनेक्शन की आवश्यकता हो। मैं ज्यादातर परिदृश्यों में सहमत हूं, यह मामला नहीं होगा। यह एक सबसे खराब परिदृश्य है। लेकिन मुझे लगता है कि आपके द्वारा गणना की गई गणना मानती है कि इन पहले 50 अनुरोधों को पहले कनेक्शन में 5 सेकंड की आवश्यकता होगी और अगले 5 सेकंड में आराम होगा। सही? –

    2

    आपको एप्लिकेशन की समवर्ती आवश्यकता, डेटाबेस ऑपरेशन समय का मूल्यांकन करना चाहिए, और सर्वर (या डीबी विक्रेता) के कितने कनेक्शन का समर्थन कर सकते हैं।

    तो 100 उपयोगकर्ता नहीं कर आप आकार के साथ एक कनेक्शन पूल की जरूरत है 100

    8

    आकार कनेक्शन पूल करने के लिए एक छोटी सी बात नहीं है का मतलब है। आप मूल रूप से की जरूरत है:

    • मैट्रिक्स जब कोई कनेक्शन उपलब्ध

    FlexyPool आप हमारी सही कनेक्शन पूल आकार लगाना सहायता करने के लिए करना है के लिए कनेक्शन उपयोग

  • विफलता तंत्र की जांच के लिए।

    आप निम्न लेख की जाँच कर सकते:

  • 0

    खबरदार कि पूल कुछ नहीं के लिए स्मृति खर्च कर सकते हैं मैं एफ अप्रयुक्त पूल कॉन्फ़िगरेशन अत्यधिक निर्भर करता है कि आपकी बाधा कहां है:

    सीपीयू, मेमोरी, डिस्क, नेटवर्क, जटिल डेटाबेस क्वेरीज, उच्च समेकन, ... उनमें से कई?

    डिफ़ॉल्ट पूल आकार अक्सर 5 तक 10 है। पहले सुनिश्चित करें कि आपको डेटाबेस में कोई समस्या है। कृत्रिम भार के तहत 2 या 30 जैसे चरम पर आज़माएं और देखें कि यह कैसा व्यवहार करता है। मुझे लगता है कि @ vlad-mihalcea द्वारा प्रदान किए गए लिंक काफी रोचक हैं।

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