मुझे कैसंड्रा पढ़ने के प्रदर्शन में सुधार करने में कुछ मदद की ज़रूरत है। मैं कॉलम परिवार के आकार के आकार के रूप में पढ़ने के प्रदर्शन के अवक्रमण के बारे में चिंतित हूं। हमारे पास एकल-नोड कैसंद्रा पर निम्न आंकड़े हैं।कैसंद्रा अमेज़ॅन ईसी 2, प्रदर्शन प्रयोग
ऑपरेटिंग सिस्टम: लिनक्स - CentOS रिलीज 5.4 (अंतिम)
कैसेंड्रा संस्करण: अपाचे-कैसेंड्रा-1.1.0
जावा संस्करण: "1.6.0_14" जावा (टीएम) एसई रनटाइम पर्यावरण (निर्माण 1.6.0_14-B08) जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वी एम (, मिश्रित मोड का निर्माण 14.0-B16)
कैसेंड्रा विन्यास: (cassandra.yaml)
- rpc_server_type: hsha
- disk_access_mode: mmap
- concurrent_reads: 64
- concurrent_writes: 32
प्लेटफार्म: अमेज़न-EC2/RightScale m1.Xlarge 4 अल्पकालिक डिस्क के साथ उदाहरण RAID0 के साथ। (15 जीबी कुल मेमोरी, 4 आभासी कोर, 2 ईसीयू, कुल ईसीयू = 8)
प्रयोग विन्यास: मैं
कैसेंड्रा config जीसी के साथ कुछ प्रयोग करने की कोशिश की है:
10 जीएस रैम को कैसंद्रा हीप को आवंटित किया गया है, 3500 एमबी हेप का नया आकार है।
JVM कॉन्फ़िग:
JVM_OPTS = "$ JVM_OPTS -XX: + UseParNewGC"
JVM_OPTS = "$ JVM_OPTS -XX: + UseConcMarkSweepGC"
JVM_OPTS = "$ JVM_OPTS -XX: + CMSParallelRemarkEnabled"
JVM_OPTS = "$ JVM_OPTS -XX: SurvivorRatio = 1000"
JVM_OPTS = "$ JVM_OPTS -XX: MaxTenuringThreshold = 0"
JVM_OPTS = "$ JVM_OPTS -XX: CMSInitiatingOccupancyFraction = 40"
JVM_OPTS = "$ JVM_OPTS -XX: + UseCMSInitiatingOccupancyOnly -XX: + UseCompressedOops "
OpsCenter समुदाय 2.0 से
परिणाम आंकड़े:
पढ़ें 208 अनुरोध करने के लिए प्रति सेकंड
ओएस लोड 24.5 प्रति सेकंड
लिखें 240 करने के लिए 18 से 28 25 से अनुरोध।85
लिखें अनुरोध विलंबता 127 160 माइक्रो
पढ़ें अनुरोध विलंबता 82,202 94612 करने के लिए माइक्रो
ओएस भेजा नेटवर्क यातायात प्रति सेकंड
ओएस प्राप्त नेटवर्क यातायात 4338 KB औसत प्रति सेकंड
ओएस डिस्क कतार आकार 13 से 15 करने के लिए 44646 KB औसत
पढ़ें लंबित अनुरोध का अनुरोध करता है 25 से 32
ओएस डिस्क विलंबता 48 से 56 एमएस
ओएस डिस्क पढ़ें प्रवाह क्षमता प्रति सेकंड
डिस्क IOPS 4.6 एमबी प्रति सेकंड पुस्तकें 0,123,
IOWait 80% सीपीयू औसत
निष्क्रिय 13% सीपीयू औसत
Rowcache अक्षम है।
कॉलम परिवार
स्तंभ परिवार मैं केवल से CLI के माध्यम से बनाई गई है पढ़ रहा हूँ से एक
create column family XColFam
with column_type='Standard'
and comparator = CompositeType(BytesType,IntegerType)';"
कॉलम परिवार SSTable आकार = 7.10 जीबी, SSTable गणना = 2
XColFam
कॉलम परिवार में 5949 9 0 9 4 नंबर है। अनुमानित पंक्ति कुंजियों (अधिकांश यूएफएफ 8 शाब्दिक हैं, जो एमएक्स 4jtools के माध्यम से अनुमानित हैं) प्रकृति में पतली कॉलम के साथ, मूल्य 0 बाइट्स ..... के साथ अब।
अधिकांश पंक्तियों में स्तंभों की बहुत छोटी संख्या होनी चाहिए, शायद 1 से 10, इसलिए कॉलम नाम के पहले घटक के लगभग 20 से 30 बाइट और दूसरा 8 बाइट्स पूर्णांक है .... समग्र कॉलम का दूसरा घटक गतिशील दोहरा सकता है लेकिन संभावना कम है ....... पहली घटक किस्मों में दोहराती है लेकिन पंक्तियों में स्तंभों की संख्या अलग हो सकती है।
मैंने कॉलम परिवार को संपीड़ित करने के लिए SnappyCompression
को आजमाया है लेकिन आकार में कोई बदलाव नहीं आया है।
मैं एक अनुसूचित सेवा है कि 20 धागे के साथ घंटे के लिए चलाने के लिए और इस स्तंभ परिवार के लिए (अब अपने 2 अनुरोध के अनुसार चाबी के लिए) एकाधिक चाबी के लिए यादृच्छिक पढ़ने अनुरोध करने और पढ़ने के पूर्ण पंक्तियाँ, कोई स्तंभ टुकड़ा या आदि
मुझे लगता है कि यह अब अच्छा प्रदर्शन नहीं कर रहा है क्योंकि यह प्रति मिनट बहुत कम अनुरोध संसाधित कर रहा है। इससे पहले कि कॉलम परिवार का आकार इतना बड़ा नहीं था, यह बेहतर काम कर रहा था। यह लगभग 3 से 4 जीबी था।
मुझे डर है कि कॉलम परिवार के आकार में वृद्धि के साथ पढ़ने के प्रदर्शन में तेजी से गिरावट आई है।
मैंने कुछ जीसी और मेमोरी सामान को ट्विक करने की भी कोशिश की है, क्योंकि इससे पहले मुझे बहुत सी जीसी और सीपीयू उपयोग था। जब डेटा का आकार छोटा था और तरंग रूप में बहुत छोटा iowait था।
मैं कैसंद्रा प्रदर्शन कैसे बढ़ा सकता हूं। आपके सुझावों की सराहना की जाएगी।
अनुरोध पढ़ें लेटेंसी 82202 से 94612 माइक्रो ... 82 सेकंड विलंबता? – Crowie