2009-09-15 13 views
6

मैं अपने आवेदन में हाइबरनेट 3.2.2 का उपयोग कर रहा हूं। कनेक्शन पूलिंग के लिए, हम c3p0 0.9.1 का उपयोग कर रहे हैं। मैं डेटाबेस ऑपरेशन करने के लिए व्यू पैटर्न में जेनेरिक डीएओ पैटर्न और ओपन सत्र का उपयोग कर रहा हूं।
हम मौजूदा वेबसाइट की नई वेबसाइट पर काम कर रहे हैं। अभी, मौजूदा आवेदन में आधे मिलियन पेज विज़िट का दौरा नहीं है। मैं c3p0 विन्यास के साथ उलझन में हूँ। किस बेंचमार्क पर, मैं निर्णय लेने के लिए कनेक्शन का कोई फैसला नहीं करता हूं। अधिकतम-कनेक्शन, न्यूनतम-कनेक्शन, idletime, टाइमआउट आदि ....मैं कनेक्शन पूलिंग में आवश्यक कनेक्शन की संख्या कैसे तय करूं?

+1

5 लाख = 500,000, हाँ? –

+0

हां। धन्यवाद .. मैं इसे आधा मिलियन में बदल देता हूं। – Shashi

+0

हाय शशी। आप http://stackoverflow.com/questions/1208077/optimal-number-of-connections-in-connection-pool पर एक नज़र डालना चाहेंगे। –

उत्तर

3

आप पहली बार निर्धारित करने के लिए पूल क्या एक अनुरोध में आता है और वहाँ यह सेवा करने के लिए कोई मुफ्त कनेक्शन है अगर करना होगा की जरूरत है। क्या यह अपवाद फेंकता है? वापसी शून्य? पूल में एक और कनेक्शन वापस लौटाए जाने तक ब्लॉक करें?

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

  • अपने वर्तमान बेकार और व्यस्त अनुरोध दरों
  • इन दरों की अस्थिरता के रूप में ऐसी बातें शामिल हैं (आप और अधिक "सांस लेने कमरा" चाहते हैं, तो दरों में बहुत कुछ आस-पास जाएं)
  • हार्डवेयर सुधार और डेवलपर समय (यदि आप दो महीने में यह उन्नत करने के लिए योजना बना रहे हैं इस कोड को संशोधित करने के लिए बजट की तुलना में क्षमता में वृद्धि के लिए भविष्य के किसी भी अनुमानों, आप कम भूमि के ऊपर अगर तुलना में यह करने के लिए चालू रखने के लिए होती है जरूरत कुछ साल)
  • आपकी कंपनी प्रसंस्करण क्षमता
  • के बारे में कोई गारंटी देता है
  • ग्राहकों को "बाद में पुनः प्रयास करें" अनुरोधों को समझने की क्षमता - उदा। यदि आप जानते हैं कि यह दूसरी छोर पर एक स्वचालित स्क्रिप्ट है जो 503 पर एक मिनट के लिए सोती है और फिर कोशिश करती है, तो यह एक इंसान की तुलना में "अस्थायी रूप से पार हो गया" संदेश प्राप्त करने से बेहतर है और दोनों बैच स्क्रिप्ट से काफी बेहतर हैं जो गैर- 200 प्रतिक्रिया और बस एक त्रुटि के साथ छोड़ देता है।
  • अनुरोधों की तत्कालता - कुछ अनुरोध (बिल्ली के बच्चे की तस्वीरों को देखते हुए) उचित रूप से देरी हो सकती है, लेकिन अन्य (स्टॉक ट्रेडिंग ऑर्डर) बहुत समय-संवेदनशील हो सकते हैं।

और इसी तरह और बहुत आगे है।

उम्मीद है कि

से आप ऊपर अनुरोधों की संख्या आप (और अगर वहाँ अलग हैं प्रकार के अनुरोधों की, आप चिंता में भी इस लेने के लिए आवश्यकता हो सकती है) समवर्ती प्रोसेस करने में सक्षम होने की जरूरत है के साथ आने के लिए सक्षम होना चाहिए । फिर यह देखने की बात है कि इनकमिंग अनुरोधों को कनेक्शन, तर्क और प्रोफाइलिंग का उपयोग तब तक प्राप्त होता है जब तक आप कनेक्शन में अपनी लक्षित दर को बनाए रखने के लिए आवश्यक पूल में कनेक्शन की संख्या नहीं खोज लेते।

गैर-अनुरोध धागे (जैसे कार्यकर्ता पूल) जैसी चीजों के लिए खाता न भूलें, उसी पूल से पूल (पूल को बड़ा होना चाहिए), साथ ही अनुरोध केवल उनके हिस्से के लिए कनेक्शन धारण करना निष्पादन (पूल छोटा हो सकता है)।

0

प्रोफाइल अपने परीक्षण उदाहरणों, छोटे config परिवर्तन करने और फिर अंत में लोड परीक्षण के साथ की पुष्टि करें।

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