हमारे पास एक हार्टबीट / DRBD / पेसमेकर / KVM / Qemu / libvirt क्लस्टर है जिसमें दो नोड्स हैं। प्रत्येक नोड निम्न पैकेज / संस्करणों के साथ Ubuntu 12.04 64 बिट चलाता है:
- कर्नेल 3.2.0-32-जेनेरिक # 51-उबंटू एसएमपी
- DRBD 8.3.11
- क्यूमू-केवीएम 1.0 + नॉरमोम्स-0ubuntu14.3
- libvirt 0.9.13
- पेसमेकर 1.1.7
- दिल की धड़कन 3.0.5
आभासी मेहमान Ubuntu 10.04 64 बिट और Ubuntu 12.04 64 बिट चला रहे हैं। हम बेहतरीन CPU प्रदर्शन प्राप्त करने के लिए वर्चुअल मेहमानों को होस्ट CPU की क्षमताओं को पारित करने के लिए एक libvirt सुविधा का उपयोग करते हैं।
अब यहाँ इस क्लस्टर पर एक सामान्य सेटअप है:
- वीएम "मॉनिटरिंग" में 4 वीसीपीयू हैं
- VM "मॉनिटरिंग" डिस्क इंटरफ़ेस के रूप में आइड का उपयोग करता है (हम वर्तमान में स्पष्ट कारणों से Virtio पर स्विच कर रहे हैं)
हमने हाल ही में कुछ सरल परीक्षण किए हैं। मुझे पता है कि वे पेशेवर नहीं हैं और उच्च मानकों तक नहीं पहुंचते हैं, लेकिन वे पहले से ही एक मजबूत प्रवृत्ति दिखाते हैं:
नोड A, VM "bla" चला रहा है, Node B, VM "मॉनिटरिंग" चला रहा है
जब हम VM "bla" से VM "मॉनीटरिंग" की फाइल को rsync करते हैं तो हम केवल 12 MB / s प्राप्त करते हैं। जब हम एक साधारण dd प्रदर्शन करते हैं, तो VM के "मॉनिटरिंग" के अंदर = / dev / null of = / tmp / blubb हम लगभग 30 MB / s प्राप्त करते हैं।
फिर हमने वीएम "मॉनिटरिंग" में 4 और वीसीपीयू जोड़े और इसे पुनः आरंभ करें। वीएम "मॉनिटरिंग" में अब 8 वीसीपीयू हैं। हमने निम्नलिखित परिणामों के साथ परीक्षण फिर से चलाया: जब हम VM "bla" से VM "मॉनिटरिंग" में एक फाइल rsync करते हैं, तो हम अब 36 एमबी / एस प्राप्त करते हैं। जब हम एक साधारण dd करते हैं, तो VM के "मॉनिटरिंग" के अंदर = / dev / null of / / tmp / blubb करते हैं, अब हम लगभग 61 MB / s प्राप्त करते हैं।
मेरे लिए, यह प्रभाव काफी आश्चर्यजनक है। यह कैसे आता है कि जाहिरा तौर पर इस आभासी अतिथि के लिए अधिक वर्चुअल सीपीयू जोड़ने का मतलब है कि वीएम के अंदर अधिक डिस्क प्रदर्शन है?
मेरे पास इसके लिए कोई स्पष्टीकरण नहीं है और मैं वास्तव में आपके इनपुट की सराहना करूंगा। मैं समझना चाहता हूं कि इस प्रदर्शन के बढ़ने का क्या कारण है क्योंकि मैं इस व्यवहार को 100% पुन: पेश कर सकता हूं।
kvm_trace
को देखने के लिए कैसे की संख्या IO_Exits
में परिवर्तन जब आप सीपीयू संख्या बदल जाते हैं। मुझे लगता है कि यह इसलिए है क्योंकि आप IDE का उपयोग कर रहे हैं, जो अतिथि CPU के साथ अनुसूचित हो जाता है। गुण के साथ प्रदर्शन सुसंगत होना चाहिए, और जब डेटा-प्लेन क्यूमू में होता है, तो इसे काफी बढ़ावा मिलेगा। एक और अनुमान इस तथ्य पर हो सकता है कि आप एक वितरण का उपयोग कर रहे हैं जो एक छोटी गाड़ी वर्चुअलाइजेशन स्टैक के लिए जाना जाता है।