2017-10-30 59 views
6

मैं ScyllaDB और Cassandra की प्रदर्शन तुलना कर रहा हूं, विशेष रूप से स्मृति के प्रभाव को देख रहा हूं। जिन मशीनों का मैं उपयोग कर रहा हूं उनमें 16 जीबी और 8 कोर हैं। दस्तावेज़ों के आधार पर, कैसंड्रा 4 जीबी एक्सएमएक्स के लिए डिफ़ॉल्ट होगा और शेष 12 जीबी फ़ाइल सिस्टम कैश के रूप में उपयोग करेगा। https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html इसके बजाय ScyllaDB सभी 16 जीबी का उपयोग करेगा।
http://docs.scylladb.com/faq/#scylla-is-using-all-of-my-memory-why-is-that-what-if-the-server-runs-out-of-memoryकैसंड्रा बनाम ScyllaDB मेमोरी उपयोग

क्या मैं सोच रहा हूँ अगर यह एक निष्पक्ष तुलना सेटअप (शिला के लिए कैसेंड्रा के लिए 4GB Xmx बनाम 16GB) है? मुझे एहसास है कि यह प्रत्येक सिफारिश है, लेकिन क्या एक और निष्पक्ष परीक्षण कैसंड्रा के लिए 8 जीबी एक्सएमएक्स और स्काइला डीबी के लिए मेमरी 8 जी होगा? मेरा वर्कलोड ज्यादातर गहन लिखता है और मुझे उम्मीद नहीं है कि फ़ाइल सिस्टम कैशिंग हमेशा कैसंद्रा की मदद करने में सक्षम हो। यह मेरे लिए अजीब बात है कि ScyllaDB कैसंड्रा की विशाल निर्भरता की तुलना में लगभग किसी भी फ़ाइल सिस्टम कैशिंग की अपेक्षा नहीं करता है।

+0

कैसंद्रा के लिए कम से कम 8 जीबी का उपयोग करें या यह बिल्कुल भी काम नहीं करेगा। मैं कभी कम जाने की सिफारिश नहीं करता। सिस्टम कैश के अच्छे उपयोग की उम्मीद के मुकाबले आप 12 या 14 जीबी लंबी अवधि के साथ बेहतर समग्र रूप से देखेंगे। 4 जीबी भयानक काम करेगा हालांकि। आपके द्वारा अनुशंसित दस्तावेज़ 'अधिकतम (न्यूनतम (1/2 रैम, 1024 एमबी), न्यूनतम (1/4 रैम, 8 जीबी)' जो बहुत अच्छा है (न्यूनतम 8 जीबी) –

+0

धन्यवाद। मेरे परीक्षण से यह कैसंद्रा से आगे बढ़ने के लिए एक बड़ा अंतर बनाता है 4 जीबी एक्सएमएक्स से 8 जीबी एक्सएमएक्स (एक्सएमएन को 1 जीबी से 2 जीबी तक ले जाया गया है)। एसएसटीबल फ्लश ~ 1 9 एमबी के बजाय ~ 33 एमबी हैं, जो कॉम्पैक्शन और सीपीयू को कम करता है। सिस्टम रैम को भी बढ़ाने के लिए शायद बेहतर है, लेकिन जो मैंने देखा है उससे मैं बेहतर हूं इस बात से सहमत हैं कि 16 जीबी मशीन पर रैम का बेहतर उपयोग ढेर में अधिक है, सिस्टम कैश नहीं। एक स्पष्टीकरण हालांकि, 16 जीबी मशीन के लिए अधिकतम (न्यूनतम (1/2 राम, 1024 एमबी), न्यूनतम (1/4 रैम, 8 जीबी) = अधिकतम (1 जीबी, 4 जीबी) = 4 जीबी, 8 जीबी नहीं। अगर यह डिफ़ॉल्ट सेटिंग्स को ओवरराइड नहीं करता है तो यह वही है। –

उत्तर

11

स्सीला मेमटेबल के लिए स्मृति के ~ 1/2 का उपयोग करेगा, और कुंजी/विभाजन कैशिंग के लिए दूसरी छमाही का उपयोग करेगा। यदि आपका वर्कलोड अधिकतर लिखता है, तो अधिक मेमोरी प्रदर्शन पर कम प्रभाव डालेगी, और इसे I/O या CPU द्वारा बाध्य किया जाना चाहिए।

मैं पढ़ने की सिफारिश करेंगे: http://www.scylladb.com/2017/10/05/io-access-methods-scylla/

रास्ता शिला जानकारी लिख रहा है समझने के लिए। और http://www.scylladb.com/2016/12/15/sswc-part1/ रास्ता शिला आई/ओ वर्कलोड

+1

धन्यवाद! दोनों लिंक बहुत उपयोगी हैं। मुझे नहीं पता था कि यह नहीं था उद्देश्य पर सिस्टम फ़ाइल कैश का उपयोग करना। "ScyllaDB में, हम सभी ऑपरेटिंग सिस्टम बफरिंग सिस्टम को बाईपास करते हैं (पृष्ठ कैच के रूप में जाना जाता है ई) और सीधे डायरेक्ट I/O का उपयोग करके डिस्क पर लिखें, इसलिए हम यह जानने के लिए सही स्थिति में हैं कि प्रत्येक बफर को वास्तविक संग्रहण में किस दर पर फ़्लश किया जा रहा है। " –

13

कैसेंड्रा हमेशा सिस्टम स्मृति के सभी का उपयोग करेगा संतुलन है समझने के लिए; ढेर का आकार (-एक्सएमएक्स) सेटिंग केवल यह निर्धारित करता है कि ढेर द्वारा कितना उपयोग किया जाता है और अन्य मेमोरी उपभोक्ताओं द्वारा कितना उपयोग किया जाता है (ऑफ-ढेर संरचनाएं और पृष्ठ कैश)। तो यदि आप स्सीला के स्मृति उपयोग को सीमित करते हैं, तो यह कैसंद्रा की तुलना में एक नुकसान होगा।

+0

धन्यवाद! Gutkinde से लेखों के आधार पर मैं समझता हूं कि अब क्यों। –

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