2012-04-19 22 views
8

हम टोमकैट 6 पर एक लाइफरे पोर्टल चला रहे हैं। प्रत्येक पोर्टलेट एक निहित वेब एप्लिकेशन है, इसलिए इसमें सभी पुस्तकालयों को पोर्टलेट की आवश्यकता होती है। वर्तमान में हमारे पास 30+ पोर्टल हैं। इसका नतीजा यह है कि हमारे टोमकैट का परमिट प्रत्येक पोर्टलेट के साथ बढ़ता है जिसे हम तैनात करते हैं।बड़े परमजन आकार + प्रदर्शन प्रभाव

अब हमारे पास दो पथ हैं जिनका हम अनुसरण कर सकते हैं। या तो कुछ पुस्तकालयों को स्थानांतरित करें जिनका उपयोग हमारे प्रत्येक पोर्टलेट द्वारा टॉमकैट साझा लाइब्रेरी में किया जाता है। इसमें हमारे परमेजन आकार को कम करने के लिए वसंत/हाइबरनेट/सीएक्सएफ/.... जैसी सामग्री शामिल होगी या परमान आकार में वृद्धि करना आसान होगा।

यह दूसरा विकल्प हमें प्रत्येक पोर्टलेट को एक स्व-संयोजित इकाई के रूप में रखने की अनुमति देगा।

अब सवाल यह है कि क्या परमिट आकार में वृद्धि से कोई नकारात्मक प्रदर्शन प्रभाव है? वर्तमान में हम 512 एमबी पर चल रहे हैं। मुझे इसके बारे में कोई जानकारी नहीं मिली है। लेकिन कुछ पोस्ट पाए गए लोग बिना किसी समस्या के 1024 एमबी परमिट आकार पर चल रहे थे।

+0

मुझे 1 जीबी परमगेन की समस्या का कारण नहीं होने की उम्मीद नहीं होगी। –

+1

संबंधित प्रश्न: http://stackoverflow.com/q/9636328/1140748 –

+0

यह आपके प्रश्न का उत्तर नहीं देता है, लेकिन एक और पहलू जोड़ता है: मैं प्लगइन प्रति 1 पोर्टल एक कृत्रिम सीमा रखने का निर्णय मानता हूं। आपके द्वारा दिए गए पोर्टलों की संख्या के साथ, मैं शर्त लगाता हूं कि कुछ संबंधित हैं जहां मैं एक साथ पैकेजिंग संबंधित लोगों पर विचार करने की सिफारिश करता हूं। यह आपके दर्दों और आईएमएचओ को आपके प्लगइन पर ओवरव्यू बढ़ाने का ख्याल रखेगा। –

उत्तर

3

जब तक आपके सर्वर पर पर्याप्त स्मृति हो, मैं कल्पना नहीं कर सकता कि कुछ भी गलत हो सकता है। यदि आप नहीं करते हैं, तो, टोमकैट भी शुरू नहीं होगा, शायद, क्योंकि यह पर्याप्त स्मृति आवंटित करने में सक्षम नहीं होगा। तो, अगर यह शुरू होता है, तो आप अच्छे हैं। जहां तक ​​मेरा अनुभव जाता है, 1 जीबी पर्मजेन पूरी तरह से ध्वनि है।

एक बड़े परमजिन का नकारात्मक पक्ष यह है कि यह आपको कम सिस्टम मेमोरी के साथ छोड़ देता है जिसे आप ढेर (एक्सएमएक्स) के लिए आवंटित कर सकते हैं।

दूसरी तरफ, मैं आपको पोर्टलों के आत्मनिर्भर इकाइयों के रूप में सोचने के लाभों पर पुनर्विचार करने की सलाह दूंगा। उदाहरण के लिए:

  • अंतर मुद्दों: अगर सब portlets संभवतः एक ही पुस्तकालयों के विभिन्न संस्करणों का उपयोग करने की अनुमति है, वहाँ कुछ जोखिम है कि वे एक दूसरे के साथ और पोर्टल ही इरादा
  • के रूप में के साथ सहयोग नहीं करेगा
  • प्रदर्शन: परमजिन पदचिह्न केवल एक चीज है, लेकिन पोर्टलों में यहां और वहां जार जोड़ना अतिरिक्त फ़ाइल वर्णनकर्ताओं की आवश्यकता होगी; मुझे विंडोज के बारे में पता नहीं है, लेकिन यह लंबे समय तक लिनक्स सर्वर के प्रदर्शन को नुकसान पहुंचाएगा।
  • परिवर्तन की स्वतंत्रता: आप Maven उपयोग कर रहे हैं अपने portlets निर्माण करने के लिए, portlet के lib पुस्तकालयों के लिए lib/ext libs से स्विच निर्भरता गुंजाइश (इस पोर्टल libs के साथ और अधिक कष्टप्रद हो सकता है) को बदलने का मामला है, जहाँ तक मुझे याद है के रूप में, Liferay एसडीके भी आसान चींटी के साथ एक समान स्विच करने के लिए निर्भरता को हल करने के लिए अतिरिक्त चींटी कार्य जोड़ने और आवश्यक
+0

परम जीन जावा ढेर का हिस्सा नहीं है, इसका एक्सएमएक्स –

+0

पर कोई प्रभाव नहीं पड़ेगा यह अपने आप पर नहीं होगा - लेकिन यह आपको एक्सएमएक्स के लिए आवंटित करने के लिए कम स्मृति के साथ छोड़ देगा, है ना? –

+0

हां, आप सही हैं Michal - 'कम स्मृति स्मृति' के रूप में 'कम स्मृति' नहीं पढ़ा। –

1

रूप portlet के lib से उन्हें हटा कर एक पल में एक समान स्विच करने के लिए बनाता है पर्मजेन मेमोरी पूर्ण संग्रह द्वारा एकत्रित कचरा हो सकती है, इसलिए पूर्ण संग्रह होने पर जीसी समय की मात्रा में वृद्धि हो सकती है।

ये संग्रह अक्सर नहीं होने चाहिए, और आमतौर पर पूर्ण जीसी 1 जीबी की परमिट मेमोरी के लिए एक सेकंड से भी कम समय लेना चाहिए - मैं सिर्फ इस नंबर को (मेरी कुछ हद तक आलसी) स्मृति से खींच रहा हूं, इसलिए यदि आप वास्तव में कुछ समय परीक्षणों के लिए जीसी टाइम्स के बारे में चिंतित हैं (-verbose:gc का उपयोग करें और लॉग पढ़ें, अधिक जानकारी here)

0

परमजन आकार ओल्ड जनरल के बाहर है - इसलिए कृपया मिश्रित न करें। दूसरे बिंदु पर सहमत - हम जितना कर सकते हैं परमिट को बढ़ा सकते हैं - क्योंकि स्मृति बहुत सस्ता है लेकिन इससे कुछ सवाल उठेंगे कि हम अपने कोड का प्रबंधन कैसे कर रहे हैं। क्यों बिल्ली हमें इस परम की जरूरत है- क्या जेटीए इतना ज्यादा उपभोग कर रहा है - हम कितनी कक्षा लोड कर रहे हैं? ऐप कितने फ़ाइल डिस्क्रिप्टर खोल रहा है (lsof कमांड के साथ जांचें)। हमें उनको जवाब देने का प्रयास करना चाहिए।

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। –

+0

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