2016-02-08 9 views
5

चूंकि नियो 4j मुख्य रूप से स्मृति में काम करता है, इसलिए मैं सोच रहा था कि मेरे लिनक्स कर्नेल में ह्यूजेपेज (https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt) को सक्षम करने के लिए फायदेमंद होगा, और उसके बाद XX: + UseLargePages या शायद -XX: + UseHugeTLBFS (OpenJDK 8) जेवीएम?नियो 4j और ह्यूजेपेज

यदि हां, तो मुझे यह तय करने के लिए अंगूठे का किस नियम का उपयोग करना चाहिए कि कितने गले लगाए गए हैं?

नियो 4j प्रदर्शन मार्गदर्शिका (http://neo4j.com/docs/stable/performance-guide.html) इसका उल्लेख नहीं करती है, और Google ने किसी और को इसके बारे में चर्चा नहीं की है (वैसे भी खोज पृष्ठों के पहले जोड़े में), इसलिए मैंने सोचा कि मैं पूछूंगा।

मैं अपने नए नियो 4j इंस्टेंस (2.3.2-समुदाय) से स्वीकार्य प्रदर्शन प्राप्त करने के लिए कुश्ती कर रहा हूं। कोई भी छोटी मदद करेगा। मैं जानना चाहता हूं कि जेवीएम झंडे को बदलने के लिए डेटाबेस को नीचे लाने से पहले यह कोशिश करने लायक है ... मुझे आशा है कि किसी और ने पहले से ही इन लाइनों के साथ कुछ प्रयोग किए हैं।

धन्यवाद!

उत्तर

5

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

हालांकि, नियो 4j सीधे हूजीपेज का उपयोग नहीं करता है, भले ही यह हो और यह एक अच्छा जोड़ा होगा। इसका मतलब है कि आपको पारदर्शी विशाल पृष्ठों और जो भी सुविधाएं JVM प्रदान करती हैं, पर भरोसा करना है। जब छोटे पृष्ठ विलय हो जाते हैं तो पारदर्शी विशाल पृष्ठ कम-से-कम छोटे स्टालों का कारण बन सकते हैं।

यदि आपके पास प्रतिनिधि स्टेजिंग वातावरण है तो मैं आपको पहले वहां परिवर्तन करने और उनके प्रभाव को मापने की सलाह देता हूं।

पारदर्शी विशाल पृष्ठों ज्यादातर कार्यक्रमों का उपयोग करने वाले mmap क्योंकि मुझे लगता है कि यह आईओ की इकाई है, जो कड़ी मेहनत से pagefault विलंबता बहुत अधिक कर देगा का आकार परिवर्तित करने के लिए नेतृत्व कर सकते हैं के लिए एक समस्या है। मैं इस बारे में पूरी तरह से निश्चित नहीं हूं, हालांकि, अगर मैं गलत हूं तो कृपया मुझे सही करें।

JVM वास्तव में mmap/tmp में एक फ़ाइल के माध्यम से, टेलीमेटरी और टूलींग के लिए उपयोग करती हैं इसलिए सुनिश्चित करें कि इस निर्देशिका के सुरक्षित-अंक दौरान ऐंठा हुआ आईओ स्टालों से बचने के लिए tmpfs पर रखा है, उदाहरण के लिए , पड़ता है (!!!)। यदि आप विशाल पृष्ठों का उपयोग नहीं करते हैं तो भी हमेशा ऐसा करें।

यह भी सुनिश्चित करें कि आप नवीनतम लिनक्स कर्नेल और नवीनतम जावा संस्करण का उपयोग कर रहे हैं।

आप जी 1 ट्यूनिंग के साथ इसके कुछ प्रतिशत अंक निचोड़ने में सक्षम हो सकते हैं, लेकिन यह एक काला कला है।

+0

ठीक है, इसलिए हाल ही में उबंटू लिनक्स सिस्टम पर, पारदर्शी विशालपृष्ठ डिफ़ॉल्ट रूप से सक्षम है। मैं देख सकता हूं कि जब मैं 'grep AnonHugePages/proc/meminfo' करता हूं तो आवंटित एक गुच्छा होता है। मैं देख सकता हूं कि नियो 4j उनमें से एक समूह का उपयोग कर रहा है पहले से ही 'grep AnonHugePages/proc/'cat data/neo4j-service.pid'/smaps | grep -v "0 केबी" '। तो ऐसा लगता है कि कम से कम मेरे सिस्टम के लिए इस समय कुछ और करने के लिए कुछ भी नहीं है। वास्तव में सहायक और सूचनात्मक उत्तर के लिए धन्यवाद! – rotten

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