غالبًا ما يسأل مستخدمو الأنظمة الافتراضية ، وخاصة موفري الخدمات أنفسهم: "كيف يمكن تحقيق أقصى استفادة من الأجهزة المتاحة؟" وفي هذا السياق ، غالبًا ما يتعين علينا مناقشة برنامج مراقبة الأجهزة الافتراضية KVM والاختلافات بين الإصدارات المختلفة من Virtuozzo. في هذا المنشور ، سنتحدث عن سلسلة من الاختبارات لأحدث نظام للمحاكاة الافتراضية جنبًا إلى جنب مع تقديرات الأداء الحقيقي في ظل الأحمال النموذجية ، بالإضافة إلى مراعاة تصحيحات Meltdown و Specter.
ما هو الأكثر أهمية لشركة استضافة أو لقسم تكنولوجيا المعلومات الذي يحتاج إلى تنظيم الدعم لأقصى عدد من المهام على المعدات الموجودة؟ إذا كانت الشركة تعمل وفقًا لنموذج موجه نحو الخدمة أو تبيع خدمات ، فإن الممارسة توضح أن الشيء الرئيسي هو مؤشر الربح لكل خادم. ما هي التقنيات المستخدمة في نفس الوقت والتي بسببها يتم تحقيق كثافة التوزيع ، فإن ممثلي الأعمال ليسوا قلقين للغاية.
ومع ذلك ، فإن السؤال لماذا نستخدم KVM كمراقب افتراضي في Virtuozzo 7 ، وكيف نختلف عن نظام المحاكاة الافتراضية البسيط المفتوح في هذه الحالة ، يُطرح كثيرًا. واليوم أريد أن أجيب عليها.
في الماضي ، عملت Virtuozzo مع مُراقبها الخاص ، ولكننا أدركنا منذ عدة سنوات أن تطويره أكثر تكلفة وأكثر صعوبة من تحسين KVM الناجح والفعال بشكل معقول. ومع ذلك ، فإن KVM ليس معيارًا للأداء ، ومثل أي نظام أساسي مفتوح المصدر ، يجب تحديثه بملف. هذا جزء من قسم التطوير لدينا. نقوم بتحسين الشفرة ودمجها مع منصة تخزين البيانات والمكونات الأخرى ، وبالتالي زيادة الإنتاجية والكثافة.
مقارنة مع hypervisors الأخرى
يعد متجر DVD أحد الاختبارات التي نستخدمها لقياس الأداء. ويستخدم مجموعة كلاسيكية من برامج الخادم: Linux و Apache و MySQL و PHP (LAMP). داخل كل آلة افتراضية ، يحاكي الاختبار تشغيل متجر أقراص DVD عبر الإنترنت. نتيجة الاختبار هي عدد الأطراف التي تم إجراؤها إجمالاً في جميع الأجهزة الافتراضية (المحور المنسق). يزداد عدد الأجهزة الافتراضية المشاركة في الاختبار بالتسلسل من 1 إلى 100 (محور الخراج).
LAMP: OpenSource QEMU KVM vs Virtuozzo @ CentOS 7.4 (الأجهزة الافتراضية)
كما ترى في الرسوم البيانية أعلاه ، فإن أداء الأجهزة الافتراضية مع CentOS Linux 7.4 الذي يعمل على برنامج Virtuozzo 7 hypervisor أعلى بنسبة تصل إلى 30٪ عن بدء تحميل مماثل على KVM القياسي. لوحظ الاختلاف الأكبر عند نقطة تجاوز وحدة المعالجة المركزية ، حيث يصل إجمالي عدد نوى المعالج المخصصة لجميع الأجهزة الافتراضية إلى عدد النوى المادية لخادم وحدة المعالجة المركزية. بالنسبة إلى هذا الخادم ، تقابل هذه النقطة 20 جهازًا افتراضيًا. بالإضافة إلى ذلك ، تضمن سياسة Virtuozzo 7 الأساسية وسياسة إدارة الذاكرة التكيفية التشغيل المستقر للأجهزة الافتراضية بعد نقطة التزام ذاكرة الوصول العشوائي ، حيث يتجاوز إجمالي ذاكرة الوصول العشوائي المخصصة لجميع الأجهزة الافتراضية حجم الذاكرة الفعلية للخادم. مع مثل هذا الحمل ، لا يمكن لـ KVM القياسي تهيئة الظروف للتشغيل العادي.
تم إجراء مقارنة أخرى بين برنامج مراقبة الأجهزة الافتراضية Virtuozzo 7 و Microsoft Hyper-V 3.0. هنا ، تم تقييم الأداء باستخدام اختبار vConsolidate ، وتم استخدام Windows Server 2012 R2 كنظام تشغيل ضيف للأجهزة الافتراضية.
vConsolidate: Hyper-V vs Virtuozzo @ Windows 2012 R2 (الأجهزة الافتراضية)
على عكس متجر DVD ، فإن التحميل في vConsolidate ليس هو نفسه لجميع الأجهزة الافتراضية. في هذا الاختبار ، يتم تقسيمها إلى ما يسمى CSU (وحدات تكديس الوحدات). كل CSU هي مجموعة من أربعة أجهزة افتراضية تقوم بتحميل SPECjbb و WebBench و SysBench (OLTP). VM الرابع في كل CSU خامل ، أي بدون تحميل. النتيجة الكمية هي الوسط الهندسي لنتائج الاختبارات الثلاثة المذكورة أعلاه والتي تم الحصول عليها إجمالاً من جميع الأجهزة الافتراضية (المحور المنسق). يزداد عدد وحدات CSU المشاركة في الاختبار بالتسلسل من 1 إلى 24 (abscissa).
تم إجراء الاختبار مرتين لكل من برامج مراقبة الأجهزة الافتراضية: حيث تم تثبيت تصحيحات لنقاط الضعف Meltdown و Spectre ، وكذلك بدونها. يظهر تقريب النتائج أن Virtuozzo 7 في المتوسط يوضح أداء أعلى بنسبة 15٪ من برنامج مراقبة الأجهزة Microsoft "الأصلي".
الانهيار وسبكتر
كما تعلم ، في 4 يناير 2018 ، كان مجتمع تكنولوجيا المعلومات بأكمله متحمسًا لاكتشاف نقاط الضعف المفاهيمية واسعة النطاق في جميع معالجات Intel ، باستثناء Itanium و Atom الأقدم (حتى 2013). يسمح استخدام نقاط الضعف هذه لأي عملية غير مميزة في النظام بالوصول إلى بيانات kernel (الانهيار) أو البيانات من عملية أخرى (Spectre). ركز مطورو البرامج على إصدار تحديثات البرامج لمعالجة نقاط الضعف هذه. ومع ذلك ، كان لدى المستخدمين بطبيعة الحال أسئلة حول كيفية تأثير هذه التحديثات على أداء النظام.
لقد تحققنا من كيفية تأثير تصحيحات Meltdown و Specter على أداء الحاويات باستخدام CentOS Linux 7.4 باستخدام اختبار vConsolidate كمثال. ثم أجرينا قياسًا آخر - باستخدام النواة مُجمّع مُعدّل مُجمع مع خيار "Retpoline" (على سبيل المثال ، يقدم كل من GCC و Clang / LLVM هذا الخيار).
الأداء مع Retpoline: vConsolidate @ CentOS 7.4 (حاويات)
كما ترى في الرسوم البيانية أعلاه ، فإن تطبيق التصحيحات ضد Meltdown و Specter يقلل بشكل كبير من أداء الحاوية. علاوة على ذلك ، كان التصحيح الأكثر صعوبة هو Spectre-V2. ومع ذلك ، فإن استخدام المترجم مع خيار Retpoline الجديد يسمح لك بالتخلي عن هذا التصحيح بأمان على الأنظمة ذات المعالجات الأقدم من Skylake واستعادة ما يصل إلى 25٪ من الأداء. ومع ذلك ، ما زلنا نفقد حوالي 5 ٪ بسبب تصحيحات Meltdown و Specter-V1.
الأداء مع Retpoline: vConsolidate @ CentOS 7.4 (الأجهزة الافتراضية)
في حالة CentOS Linux 7.4 ، فإن الوضع داخل الأجهزة الافتراضية أكثر وردية قليلاً: تصحيحات Meltdown و Spectre تؤدي إلى تدهور الأداء بنسبة 15٪ فقط ، وفرق الأداء بين النواة غير المصححة والنواة المترجمة باستخدام Retpoline هو 1-2٪ فقط. وبالتالي ، فإن استخدام المترجم الجديد جعل من الممكن تعويضه بالكامل تقريبًا عن انخفاض الأداء. ومع ذلك ، تجدر الإشارة إلى أنه تم إجراء جميع القياسات الثلاثة على نفس الأجهزة الافتراضية - مع نواة نظام التشغيل الضيف غير المصححة. سيؤدي تحديث أنظمة تشغيل الضيف إلى انخفاض الأداء الإضافي لتطبيقات المستخدم.
الأداء مع Retpoline: vConsolidate @ Windows 2012 R2 (الأجهزة الافتراضية)
أحدث مخطط لليوم هو مقارنة مماثلة ، ولكن مع الأجهزة الافتراضية لـ Windows Server 2012 R2. هنا لم يكن التباطؤ من البقع كبيرًا للغاية وبلغ حوالي 10 ٪ ، واستخدام النواة مع Retpoline يسمح بتقليل الفرق إلى 2-3 ٪ بالنسبة للنواة غير المصححة.
الخلاصة
بالطبع ، KVM غير المعدلة لها مزاياها ، والميزة الرئيسية هي مجانية. لكن الاختبارات التي تم إجراؤها تثبت أن التحسينات والتحديثات الخاصة يمكن أن تحسن العائد على البنية التحتية المستخدمة. أي إذا كنت بحاجة إلى وضع حد أقصى من الحاويات والآلات الافتراضية ، وضمان التخزين الدائم لهم - كل ذلك على نفس المنصة ومع الحد الأدنى من الرقصات الشامانية - فإن KVM المحسّن أكثر فعالية ، خاصة إذا كانت الخدمات التي تعمل على المنصة تظهر هوامش جيدة وتحقق المال. في هذه الحالة ، تكلفة التراخيص والدعم أكثر من تؤتي ثمارها في أقصر وقت ممكن.
تبقى قوة VZ7 دعم أنواع مختلفة من VMs والحاويات على نفس النظام الأساسي ، ومع أداء أعلى لكل فئة من الكائنات الافتراضية. ومع ذلك ، لا يمكن للمرء أن يتحدث عن الدواء الشافي هنا أيضًا. على سبيل المثال ، إذا كانت الزيادة في الكثافة لا تجلب تمويلًا إضافيًا للمؤسسة ، ويمكن لموظفيها إدارة وإنهاء حلول OpenSource ، فإن المنطق يميل إلى استخدام الأدوات المفتوحة ، بما في ذلك CentOS و KVM الأصلي.
بالمناسبة ، في المقالة التالية سنتحدث عن تطور التخزين الموزع لدينا وقدراته الحقيقية للعمل مع VMs والحاويات.