2012-01-20 17 views
6

ई-कैश जैसे ऑन-हीप कैश के लिए कितना डेटा बहुत अधिक है?ऑन-हेप जावा कैश के लिए कितना डेटा बहुत अधिक है? मुझे ऑफ-हेप कैश के बारे में सोचना कब शुरू होना चाहिए?

मुझे 24 जीबी रैम सर्वर मिल रहा है। मैं शायद कैशिंग के लिए 2-4 जीबी समर्पित करना शुरू कर दूंगा लेकिन कैश करने के लिए 20 जीबी या तो समर्पित हो सकता है। मुझे किस बिंदु पर चिंता करनी चाहिए कि ऑन-हीप कैश के लिए जीसी बहुत लंबा लगेगा?

वैसे, डायरेक्टमेमरी केवल ओपन सोर्स ऑफ़-हीप कैश उपलब्ध है? क्या यह प्राइम टाइम के लिए तैयार है?

+0

आपके प्रश्न का उत्तर कैश आकार की तुलना में कैश उपयोग विशेषताओं पर अधिक निर्भर करता है। उदाहरण के लिए, पढ़ने/लिखने के अनुपात, टीटीएल, आपके द्वारा संग्रहीत वस्तुओं के आकार, ऑब्जेक्ट्स की संख्या जिन्हें आप स्टोर कर सकते हैं। इसके अलावा, आपका प्रश्न एक सुंदर अस्पष्ट सवाल पूछ रहा है। आप "बहुत लंबा" क्या मानेंगे? या "प्राइम टाइम के लिए तैयार?" इससे पहले कि आप वास्तव में किसी भी कैशिंग समाधान का मूल्यांकन कर सकें, आपको यह जानना होगा कि आपको किस प्रकार की एसएलए की आवश्यकता है। एमएस में अधिकतम प्रतिक्रिया समय, और एसएलए हिट प्रतिशत। – allingeek

उत्तर

3

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

उदाहरण के लिए अज़ुल सिस्टम बिना किसी समस्या के सैकड़ों जीबी ढेर के साथ हार्डवेयर बेचता है (यानी एमसी में एमसी रुकें आधे मिनट नहीं) उनके special GC के लिए धन्यवाद, इसलिए यह जावा प्रति से कोई सीमा नहीं है। कोई विचार नहीं कि समय के साथ हॉटस्पॉट/आईबीएम कितना अच्छा है। लेकिन फिर 24 जीबी ढेर इतना बड़ा नहीं है - जी 1 शायद किसी भी तरह से पर्याप्त काम करना चाहिए।

2

मुझे किस बिंदु पर चिंता करनी चाहिए कि ऑन-हीप कैश के लिए जीसी बहुत लंबा लगेगा?

कितना समय लंबा है?

गंभीरता से, यदि आप "थ्रूपुट" कचरा कलेक्टर चला रहे हैं और यह आपको बहुत लंबे समय तक रोक रहा है, तो आपको कम-रुक कलेक्टर पर स्विच करने का प्रयास करना चाहिए; जैसे सीएमएस या जी 1।

2

एक बड़े कैश के साथ मुख्य समस्या पूर्ण जीसी समय है। आपको एक विचार देने के लिए यह प्रति सेकंड 1 सेकंड हो सकता है (यह एप्लिकेशन से एप्लिकेशन में भिन्न होता है) यदि आपके पास 20 जीबी कैश है और आपका एप्लिकेशन 20 सेकंड के लिए रुकता है तो हर बार स्वीकार्य होता है?

प्रत्यक्ष और मेमोरी मैप की गई फ़ाइलों के प्रशंसक के रूप में मुझे लगता है कि मैं डेटा को ढेर से बाहर रखने के लिए कहां नहीं रखूंगा, और सादगी के लिए केवल ढेर का उपयोग करूंगा। ;) मेमोरी मैप की गई फाइलों के आकार के बावजूद पूर्ण जीसी समय पर कोई प्रभाव नहीं पड़ता है।

मेमोरी मैप किए गए फ़ाइल का उपयोग करने के फायदों में से एक यह है कि यह आपकी भौतिक स्मृति से काफी बड़ा हो सकता है और अभी भी उचित रूप से अच्छा प्रदर्शन कर सकता है। यह ओएस को यह निर्धारित करने के लिए छोड़ देता है कि कौन से भाग स्मृति में होना चाहिए और डिस्क पर फ़्लश करने की आवश्यकता क्या है।

बीटीडब्ल्यू: एक तेज एसएसडी होने से भी मदद मिलती है;) बड़ी ड्राइव भी तेजी से होती है। आईओपी के लिए जांचें जो वे कर सकते हैं।

इस उदाहरण में, मैं 16 जीबी वाली मशीन पर मैप किए गए 8 टीबी फ़ाइल मेमोरी तैयार करता हूं। http://vanillajava.blogspot.com/2011/12/using-memory-mapped-file-for-huge.html

नोट, यह 80 जीबी फ़ाइल उदाहरण में बेहतर प्रदर्शन करता है, 8 टीबी मारने की संभावना है। ;)

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