اختبر أداء Home Assistant من خلال إعادة تشغيل حمل عمل ثابت واحد من الحدث إلى الإجراء، وقياس زمن الاستجابة المئوي، والأخطاء، والتشبع، والتعافي في ظل ظروف مضبوطة لذاكرة التخزين المؤقت والعمليات الخلفية.
لا يثبت النقر السريع على لوحة المعلومات أن الأتمتة تظل سريعة الاستجابة أثناء عمليات الكتابة في Recorder أو النسخ الاحتياطية أو دفعات الأجهزة. يبدأ اختبار أداء خادم منزلي مفيد من إدخال محدد وينتهي بإجراء قابل للملاحظة، مع تثبيت عدد الكيانات، وسلوك التكاملات، ومسار الشبكة، وحالة ذاكرة التخزين المؤقت، ودرجة الحرارة، والخدمات المتنافسة. ويكشف تكرار ذلك المسار التباين وأول مورد يفقد هامش الأمان.
اختر نتيجة واحدة من البداية إلى النهاية قبل قياس الموارد
ابدأ بنتيجة يمكن للأسرة ملاحظتها، مثل الوقت من تغيير حالة اصطناعي إلى استدعاء خدمة، أو من أمر في لوحة المعلومات إلى تأكيد الحالة المستهدفة. يتضمن هذا الفاصل أكثر من عمل وحدة المعالجة المركزية: فقد تسهم جميعًا في النتيجة زمنيةُ التكامل، ومعالجة الأحداث، ومنطق الأتمتة، وتسليم الشبكة، واستجابة الجهاز، والتأكيد.
تتحسن منهجية اختبار الأداء عندما تحل أحمال العمل الحقيقية محل الاختبارات الجزئية المعزولة، وعندما يُقاس سلوك الذيل بدلًا من المتوسطات فقط. وتؤكد مجموعة عملية من مبادئ تصميم اختبارات الأداء أهمية أحمال العمل الواقعية، والقيم المئوية، والتزامن، وحالتي البرودة والدفء.
تصبح النتيجة المختارة مقياس القبول. وتوضح قراءات وحدة المعالجة المركزية والذاكرة والتخزين والشبكة على المضيف سبب تغير تلك النتيجة؛ لكنها ليست بديلًا عنها. فقد يبلغ الخادم عن استخدام متوسط منخفض، بينما يظل مسار الأتمتة يعاني أحيانًا من تأخيرات طويلة تؤثر في الإضاءة أو الأقفال أو أجهزة الإنذار أو التدفئة.
أنشئ نصًا برمجيًا لحمل عمل ثابت
دوّن الكيانات الدقيقة، ومعدل التشغيل، ومسار الأتمتة، ونشاط لوحة المعلومات، ومدة الاحتفاظ بسجلات Recorder، وحالة قاعدة البيانات، والمهام الخلفية المشمولة في التشغيل. استخدم مدخلات اصطناعية أو غير ضارة حتى يمكن إعادة تشغيل التسلسل دون التأثير في سلامة المنزل أو استهلاك الأجهزة الحقيقية. وثبّت مدة التشغيل ووقت التعافي بين التجارب.
توضح مناقشات الأتمتة عالية التكرار سبب ضرورة تحديد معدل الأحداث والعمل على القوالب بوضوح. إذ تعرض إحدى تحقيقات مجتمع Home Assistant حول حمل الأحداث عالي التكرار أحمالًا تتجاوز ألف حدث في الدقيقة، ما يوضح كيف يمكن لمعدل تشغيل غير معلن أن يجعل نتيجتي اختبار أداء غير قابلتين للمقارنة.
لا يعني حمل العمل التمثيلي بالضرورة أقصى حمل ممكن. أدرج أكثر تداخل اعتيادي ازدحامًا، ثم خطوة مضبوطة تتجاوزه قليلًا. يحدد التشغيل الأول السلوك الطبيعي، بينما تكشف الخطوة الإضافية السعة الاحتياطية المتبقية. تجنب خلط الخدمات عشوائيًا، لأن مهمة خلفية غير مفسرة تحول الاختبار إلى حكاية غير قابلة للتكرار.
اختبر حالات البرودة والدفء والاستقرار كلًّا على حدة
يمكن أن تؤدي إعادة تشغيل Home Assistant، وفتح لوحة المعلومات للمرة الأولى، والاستعلام عن سجل غير موجود في ذاكرة التخزين المؤقت إلى تشغيل مسارات التخزين والتهيئة التي تتجنبها التكرارات اللاحقة. وقد تعيد التشغيلات الدافئة استخدام صفحات قاعدة البيانات، وموارد الواجهة الأمامية، وإجابات DNS، وذاكرة نظام التشغيل المؤقتة. أما التشغيلات الطويلة فتضيف الاستقرار الحراري، ونمو السجلات، وجدولة العمليات الخلفية.
يغير تدفئة ذاكرة التخزين المؤقت زمن الاستجابة عبر وضع البيانات المستخدمة بكثرة في طبقة أسرع قبل وصول الطلب. ويشرح هذا التحليل حول تأثيرات تدفئة ذاكرة التخزين المؤقت سبب صلاحية النتيجة الدافئة للتشغيل العادي، مع كونها مضللة كدليل على أداء إعادة التشغيل أو التعافي.
أبلغ عن كل حالة بدلًا من حساب متوسطها معًا. يجيب أداء الحالة الباردة عن سلوك النظام بعد إعادة التشغيل أو الإخلاء؛ ويجيب أداء الحالة الدافئة عن التفاعل اليومي المتكرر؛ بينما يجيب أداء الحالة المستقرة عن الحمل المستمر. ولا يكون ادعاء السعة موثوقًا إلا عندما تتطابق الحالة المسماة مع سيناريو المستخدم.
قس القيم المئوية وحدود المراحل
سجل كل زمن استجابة من البداية إلى النهاية، ثم أبلغ عن القيمة الوسيطة والقيم المئوية العليا مع عدد الأخطاء. تصف القيمة الوسيطة التجربة الشائعة، بينما تكشف القيمة المئوية الخامسة والتسعون أو التاسعة والتسعون قوائم الانتظار المتقطعة التي يخفيها المتوسط. استخدم طوابع زمنية عند التشغيل، وبدء الأتمتة، واستدعاء الإجراء، وتأكيد الحالة المستهدفة متى سمح المسار بذلك.
تفحص عملية الفرز السريع لمشكلات النظام العمليات، ووحدة المعالجة المركزية، والذاكرة، والشبكة، وأجهزة الكتل، والأخطاء، لأن زمن الاستجابة قد ينتقل بين الموارد. ويوفر سير عمل تحليل أداء Linux مثالًا موجزًا على ربط إشارات الموارد بدلًا من التشخيص استنادًا إلى نسبة استخدام واحدة.
تميز الطوابع الزمنية للمراحل بين تكامل بطيء، أو حلقة أحداث مشغولة، أو عمل بطيء لقاعدة البيانات، أو تأخر في الشبكة، أو جهاز مستهدف بطيء الاستجابة. فإذا أصدر Home Assistant الإجراء بسرعة لكن وصل التأكيد متأخرًا، فلن تؤدي إضافة وحدة معالجة مركزية إلى المضيف إلى إصلاح عنق الزجاجة المقاس. والمرحلة الأولى التي يتسع نطاقها هي موضع الخروج المفيد من العلاقة.
استخدم الاستخدام والتشبع والأخطاء معًا
يوضح الاستخدام مدى انشغال المورد؛ ويشير التشبع إلى وجود عمل في قائمة انتظار لا يمكن خدمته فورًا؛ بينما تكشف الأخطاء عن العمليات الفاشلة. افحص المؤشرات الثلاثة جميعًا لوحدة المعالجة المركزية والذاكرة والتخزين والشبكة أثناء اختبار الأداء. وقد يكون الاستخدام المرتفع صحيًا، في حين يمكن لدفعات التشبع القصيرة أن تنشئ زمن استجابة مرتفعًا حتى عندما يبدو المتوسط الطويل مريحًا.
تحذر منهجية USE للأداء تحديدًا من أن المتوسطات العامة قد تخفي فترات قصيرة من الاستخدام الكامل والانتظار في الطوابير. وهذا وثيق الصلة بـ Home Assistant، حيث قد تكون دفعة أحداث قصيرة أهم من متوسط استخدام وحدة المعالجة المركزية للمضيف خلال خمس دقائق.
اربط إشارات النظام بالطوابع الزمنية نفسها المستخدمة في اختبار الأداء. فارتفاع قائمة انتظار التخزين أثناء كل ذيل بطيء يشير إلى تجربة تالية مختلفة عن حدث استعادة الذاكرة أو إعادة إرسال حزم الشبكة. ولا تطلق على المورد الأكثر انشغالًا اسم عنق الزجاجة إلا إذا توافق تشبعه أو أخطاؤه مع التأخير الظاهر للمستخدم.
متى يتوقف اختبار الأداء عن كونه قابلًا للمقارنة
تتوقف النتائج عن كونها قابلة للمقارنة عندما تتغير إصدارات البرامج، أو مجموعات الكيانات، أو أحجام قواعد البيانات، أو مدة الاحتفاظ، أو العملاء، أو مسارات الشبكة، أو درجة الحرارة المحيطة، أو الخدمات الخلفية دون تسجيل ذلك. كما تفشل المقارنة عندما تُدفأ ذاكرة التخزين المؤقت في تشغيل دون آخر، أو عندما يحل التوقيت اليدوي محل طوابع الأحداث الزمنية للفواصل القصيرة.
يجب أن تذكر اختبارات الحاويات بيئة التشغيل، وحدود الموارد، ومسار التخزين، ووضع الشبكة، وظروف المضيف. ويفصل دليل اختبار أداء Docker اختبارات وحدة المعالجة المركزية والذاكرة والتخزين والشبكة، موضحًا سبب عدم كفاية ذكر الحاوية وحده لوصف البيئة.
كما تتوقف النتائج الاصطناعية عن التنبؤ بتجربة المنزل عندما تغفل أبطأ تبعية حقيقية. فقد يختبر تشغيل أتمتة عبر loopback النواة Core بوضوح، لكنه لا يقول شيئًا عن تكامل سحابي أو جهاز يعمل بالبطارية. احتفظ بمسار داخلي مضبوط ومسار ممثل من البداية إلى النهاية، ولا تدمج نتائجهما مطلقًا في رقم واحد.
نفّذ بروتوكول قبول من خمس تجارب
التقط بيان البيئة، ثم نفّذ خمس تجارب باردة وخمس تجارب دافئة لحمل العمل الثابت. أتبع ذلك بتشغيل مستمر يتضمن أكثر مهمة خلفية مسموح بها ازدحامًا. أبلغ عن القيمة الوسيطة، والقيمة المئوية الخامسة والتسعين، والحد الأقصى، والأخطاء، وأحداث إعادة التشغيل، وإشارات الاستخدام والتشبع والأخطاء لكل مورد فعلي.
تصبح المقاييس الخاصة بكل حاوية مفيدة عندما يُحتفظ بها وتُحاذى مع نتائج التطبيق. ويشرح دليل مراقبة الحاويات حقول وحدة المعالجة المركزية والذاكرة والشبكة وإدخال وإخراج الكتل التي يمكن أن ترافق توزيع زمن الاستجابة.
لا تقبل أي تغيير إلا إذا حسّن القيمة المئوية المستهدفة دون زيادة الأخطاء أو نقل التشبع إلى مسار مطلوب آخر. ويُعد تشخيص ZimaSpace الخاص بـ تحديد المورد المقيِّد خطوة المتابعة عندما تحدد التجارب المتكررة السقف نفسه.
مركز التكنولوجيا والذكاء الاصطناعي
المزيد للقراءة

لماذا يعيد Home Assistant معالجة البيانات الموجودة بعد الترقية؟
قد يعيد Home Assistant فحص البيانات الحالية بعد الترقية لجعل الحالة المخزنة والفهارس وذاكرات التخزين المؤقت والتكاملات متوافقة مع التعليمات البرمجية الجديدة.

ما التبعيات التي غالبًا ما تحدد سقف أداء Home Assistant الفعلي؟
أداء Home Assistant محدود بأبطأ تبعية مطلوبة في مسار الانتقال من الحدث إلى النتيجة، وليس بالضرورة بوحدة المعالجة المركزية للمضيف.

شبكات Home Assistant: كيف يحقق الاكتشاف وDNS والتوجيه إمكانية الوصول
يتطلب الوصول إلى Home Assistant الاكتشافَ وحلَّ الأسماء بشكل صحيح، ومسارًا صالحًا، وحركة مرور مسموحًا بها، ونقطة نهاية تستمع للاتصالات.

