2011-12-06 13 views
6

का कम लेखन प्रदर्शन मैं नोएसक्यूएल और कैसंद्रा में नया हूं। मैं स्मृति कैश केवल समाधान में एक को प्राप्त करने के लिए सेटिंग्स के साथ प्रयोग कर रहा हूँ। मैं 100000 लाइनों की फाइल से रेखा से लाइन पढ़ने और कैसंड्रा में डालने के लिए हेक्टर का उपयोग कर प्रसंस्करण कर रहा हूं। मैं प्रति सेकेंड लगभग 6000 आवेषणों के बहुत कम थ्रूपुट को देख रहा हूं। पूरे लेखन ऑपरेशन के बारे में 20.5 सेकंड जो हमारे आवेदन के लिए अस्वीकार्य है। हमें प्रति सेकंड 100000 आवेषण की तरह कुछ चाहिए। मैं 4 जीबी रैम के साथ विंडोज 7 कंप्यूटर पर परीक्षण कर रहा हूं।कैसंड्रा

मैं केवल एक सम्मिलित परीक्षण कर रहा हूं।

कृपया मुझे बताएं कि मैं कहां गलत हूं। कृपया सुझाव दें कि मैं प्रति सेकंड आवेषण कैसे सुधार सकता हूं।

Keyspace: Keyspace1 
     Read Count: 0 
     Read Latency: NaN ms. 
     Write Count: 177042 
     Write Latency: 0.003106884242157228 ms. 
     Pending Tasks: 0 
       Column Family: user 
       SSTable count: 3 
       Space used (live): 17691 
       Space used (total): 17691 
       Number of Keys (estimate): 384 
       Memtable Columns Count: 100000 
       Memtable Data Size: 96082090 
       Memtable Switch Count: 1 
       Read Count: 0 
       Read Latency: NaN ms. 
       Write Count: 177042 
       Write Latency: NaN ms. 
       Pending Tasks: 0 
       Key cache capacity: 150000 
       Key cache size: 0 
       Key cache hit rate: NaN 
       Row cache capacity: 150000 
       Row cache size: 0 
       Row cache hit rate: NaN 
       Compacted row minimum size: 73 
       Compacted row maximum size: 924 
       Compacted row mean size: 784 

मैं पंक्ति कैश और कुंजी कैश स्थापित करने के लिए तरीकों की जोड़ी की कोशिश की है:

  1. कैसेंड्रा के माध्यम से CLI

  2. NodeCmd के माध्यम से: जावा org.apache.cassandra.tools.NodeCmd - पी 719 9 setcachecapacity Keyspace1 उपयोगकर्ता 150000 150000

+0

आप किस प्रकार का डिस्क संग्रहण उपयोग कर रहे हैं? क्या यह एक एसएसडी या एचडीडी या मेमोरी फाइल सिस्टम है? यह चल रहा है जब कितना सीपीयू उपयोगकर्ता/सिस्टम आपका आवेदन है? (कार्य प्रबंधक में) –

+0

डिस्क संग्रहण हार्ड डिस्क है। कुल सीपीयू लगभग 40% है। –

+2

जब हमने एक साल पहले कुछ परीक्षण किए थे तो हमने पाया कि कैसंड्रा PostgreSQL की तुलना में धीमी थी जब तक कैसी के पास 4+ सर्वर नहीं थे। तो मैं आश्चर्यचकित नहीं हूँ। –

उत्तर

8

कितने धागे/प्रक्रिया क्या आप आवेषण करने के लिए उपयोग कर रहे हैं? हेक्टर कॉल सिंक्रोनस होते हैं, इसलिए यदि आप क्लाइंट साइड पर केवल 1 थ्रेड का उपयोग कर रहे हैं, तो यह आपकी बाधा हो सकती है।

+0

मैं केवल एक धागा का उपयोग कर रहा हूँ। मैं कई धागे के साथ कोशिश करेंगे। –

9

मैं "धीमी" के रूप में प्रति सेकंड 6000 लिखने का वर्णन नहीं करता - लेकिन कैसंद्रा बहुत बेहतर कर सकता है। लेकिन ध्यान दें कि कैसंद्रा टिकाऊ लिखने के लिए डिज़ाइन किया गया है, इसलिए स्मृति-केवल कैशिंग समाधानों की तुलना में कम प्रदर्शन दे सकता है।

जैसा कि मलबे कहते हैं, आप एक ग्राहक का उपयोग कर कैसंद्रा से पूर्ण प्रदर्शन नहीं कर सकते हैं। एकाधिक क्लाइंट थ्रेड, या प्रक्रियाओं, या मशीनों का उपयोग करने का प्रयास करें।

मुझे नहीं लगता कि आपको एक नोड पर प्रति सेकंड 100,000 लिखेंगे। मैंने केवल मामूली हार्डवेयर पर प्रति सेकंड लगभग 20,000-25,000 लिखते हैं (हालांकि मैंने बेंचमार्किंग के बाद से कैसंद्रा को काफी तेजी से प्राप्त किया है)। प्रति सेकंड 6000 एक एकल ग्राहक के लिए एक ही वस्तु नोड के खिलाफ सही लगता है।

नोड्स के एक समूह के साथ

, आप निश्चित रूप से प्रति सेकंड 1,00,000

पंक्ति कैश और कुंजी कैश (http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html देखें 1000000 के हाल के एक बेंचमार्क प्रति सेकंड लिखता है! के लिए) प्रदर्शन को पढ़ने में मदद करने, प्रदर्शन नहीं लिख प्राप्त कर सकते हैं कर रहे हैं।

इसके अलावा, सुनिश्चित करें कि आप लिखने (यदि उचित हो) बैच कर रहे हैं - इससे नेटवर्क ओवरहेड कम हो जाएगा।

+0

बैच सम्मिलन बहुत सारे प्रदर्शन को बढ़ाता है। मैं 5k डालने/सेकंड से 20-25k डालने/सेकंड तक चला गया। मेरे पास 3 नोड्स हैं। 32 जीबी राम के साथ 6 सीपीयू – davidlebr1

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