يمكن لعبارة «يكون Home Assistant أسرع في المرة الثانية» أن تصف عدة آليات مختلفة. فقد يعيد المتصفح استخدام أصول الواجهة الأمامية، وقد تتلقى لوحة معلومات مفتوحة بالفعل الحالة المباشرة عبر WebSocket بدلًا من إعادة إنشاء الصفحة، وقد يحتفظ نظام التشغيل بصفحات قاعدة البيانات أو الإعدادات في الذاكرة، وقد يعيد أحد التكاملات استخدام اتصال قائم.
إن إطلاق اسم «ذاكرة التخزين المؤقت لـ Home Assistant» على كل هذه التأثيرات يخفي موضع حدوث تسارع الأداء. والنموذج المفيد هو تسمية الطلب المتكرر، ثم تحديد الطبقة التي يمكنها تجنّب العمل في التشغيل الثاني.
ذاكرة التخزين المؤقت للمتصفح تُسرّع أصول الواجهة الأمامية
يمكن أن تبقى JavaScript والأنماط والأيقونات والبطاقات المخصصة وغيرها من موارد الواجهة الأمامية في ذاكرة التخزين المؤقت للمتصفح، بحيث يتجنب تحميل الصفحة المتكرر تنزيل الأصول نفسها أو إعادة بنائها من الصفر.
تشير إرشادات Home Assistant الحالية للمتصفح صراحةً إلى أن واجهة المستخدم تخزّن أشياء كثيرة مؤقتًا في المتصفح لتعمل بسرعة. وقد تصبح ذاكرة التخزين المؤقت نفسها قديمة بعد التحديثات أو تغييرات البطاقات المخصصة، ولهذا يمكن للتحديث القسري أن يصلح واجهة تعمل بصورة غير صحيحة.
تغيّر ذاكرة التخزين المؤقت هذه زمن بدء الصفحة وعملية العرض، ولا تغيّر سرعة التحكم الفعلية في الأجهزة. ويُعد مسحها اختبارًا للواجهة الأمامية، وليس إعادة ضبط عامة لأداء الخادم.
لوحة المعلومات المفتوحة تعيد استخدام مسار حالة مباشر عبر WebSocket
بمجرد اتصال الواجهة الأمامية، لا تحتاج إلى إعادة جلب حالة المنزل الذكي بأكملها عند كل تغيير. فهي تتلقى التحديثات والاشتراكات عبر واجهة WebSocket البرمجية، وتحدّث مكونات الواجهة ذات الصلة.
توضح البنية الحالية للواجهة الأمامية كيف أن الواجهة الأمامية تتلقى الحالة الأساسية عبر كائن hass مشترك وتحافظ على مزامنة البيانات الإضافية المشترَك فيها عبر WebSockets. لذلك يختلف مسار الطلب المتكرر لجهاز لوحي مثبت على الحائط ويبقى متصلًا عن مسار هاتف يفتح لوحة المعلومات بتحميل بارد كل صباح.
لا تفسّر إعادة الاستخدام هذه على أنها دليل على أن إضافة عدد أكبر بكثير من العملاء ستتوسع خطيًا. فلا يزال كل عميل إضافي قادرًا على إضافة أعمال التسلسل والاشتراكات وطلبات السجل والعرض من جهة العميل.
ذاكرة صفحات Linux تُسرّع عمليات قراءة الملفات وقواعد البيانات المتكررة
تمر عمليات قراءة نظام الملفات العادية عبر ذاكرة صفحات Linux. وقد تبقى صفحات قواعد البيانات وملفات الإعدادات والأصول الثابتة المستخدمة حديثًا في الذاكرة، فتتجنب قراءة فعلية أخرى من وحدة التخزين عند تكرار الطلب.
توضح وثائق نواة Linux الحالية أن قراءات الملفات العادية تملأ ذاكرة الصفحات، بحيث يمكن للقراءات اللاحقة تجنب الوصول الأعلى تكلفة إلى وحدة التخزين. وهذا يعني أن طلبًا متكررًا للسجل يمكن أن يستفيد من الذاكرة حتى عندما لا يكون Home Assistant قد طبّق ذاكرة تخزين مؤقت خاصة على مستوى التطبيق لهذا الطلب تحديدًا.
ولهذا قد تبدو الفروق بين SSD وHDD أصغر في اختبار دافئ منها بعد إعادة التشغيل أو إخلاء الذاكرة المؤقتة أو التعامل مع مجموعة عمل أكبر بكثير.
البيانات الدافئة لا تعني أن الاستعلام الأساسي أصبح أقل تكلفة
قد يظل طلب السجل يفحص الكمية المنطقية نفسها من البيانات أو يستخدم الفهرس نفسه، بينما تكون الصفحات التي يحتاج إليها موجودة بالفعل في الذاكرة. وقد تظل لوحة المعلومات تطلب الكيانات نفسها، بينما تكون الأصول وحالة الاتصال متاحتين مسبقًا.
يوضح دليل ZimaSpace ذي الصلة حول الفصل بين أداء ذاكرة التخزين المؤقت الدافئة والسعة الفعلية النتيجة التشغيلية: ذاكرة التخزين المؤقت مفيدة، لكن يجب أن يصمد ادعاء السعة أمام ضغط واقعي على الذاكرة المؤقتة وأعباء العمل المستمرة.
تزيل إصابة ذاكرة التخزين المؤقت تكلفة واحدة من طلب واحد. لكنها لا تزيل أعمال المعالج أو الذاكرة أو الشبكة أو قاعدة البيانات أو التكامل التي تخص المراحل الأخرى من المسار.
الطلبات المتكررة المختلفة تُدفئ طبقات مختلفة
- إعادة تحميل لوحة المعلومات نفسها: قد تكون أصول المتصفح وبيئة تشغيل العميل دافئة.
- إبقاء جهاز لوحي على الحائط مفتوحًا: تظل حالة WebSocket والاشتراكات مباشرة.
- تكرار النطاق الزمني نفسه في السجل: قد تبقى صفحات قاعدة البيانات ونظام الملفات في الذاكرة.
- استدعاء الخدمة المحلية نفسها: قد تكون اتصالات التكامل أو الشبكة القائمة موجودة بالفعل.
- الفتح بعد إعادة التشغيل: قد تكون عدة طبقات من هذه الطبقات باردة في الوقت نفسه.
قِس الطبقة التي تتوافق مع إجراء المستخدم بدلًا من مسح كل ذاكرات التخزين المؤقت وتسميته «علميًا».
الأسئلة الشائعة
هل يجعل مسح ذاكرة التخزين المؤقت للمتصفح Home Assistant Core أبطأ؟
إنه يغيّر بشكل أساسي مسار تحميل الواجهة الأمامية. يواصل Core تنفيذ منطق الخادم نفسه، لكن قد يحتاج المتصفح إلى تنزيل الأصول وإعادة بنائها مرة أخرى، ما يجعل تحميل الواجهة الأول أبطأ.
هل يكون استعلام السجل الدافئ عديم الفائدة عند قياس الأداء؟
لا. تمثل الاستعلامات الدافئة حالة تشغيل واقعية. والخطأ هو اعتبار النتيجة الدافئة نتيجة السعة الوحيدة، لأن ضغط الذاكرة أو إعادة التشغيل أو مجموعة العمل الأكبر قد تزيل ميزة ذاكرة التخزين المؤقت نفسها.
مركز التكنولوجيا والذكاء الاصطناعي
المزيد للقراءة

الحالة أثناء التشغيل مقابل الحالة المستمرة في Home Assistant: ما الذي يجب أن يبقى بعد إعادة التشغيل؟
لا يحتفظ Home Assistant بكل قيمة مباشرة؛ إذ تؤدي الإعدادات والسجلات والحالات المحددة المستعادة وبيانات النشر أدوارًا مختلفة عند إعادة التشغيل.

كيف يُجري Home Assistant مصادقة الجلسات المحلية وعن بُعد؟
تستخدم جلسات Home Assistant المحلية وعن بُعد نموذج الهوية نفسه من جهة الخادم؛ إذ يغيّر الوصول عن بُعد المسار وحدود TLS، وليس تدفق الرموز...

لماذا قد تصبح استعلامات سجل Home Assistant بطيئة مع نمو بيانات المسجّل؟
يمكن أن يؤدي نمو بيانات Recorder إلى زيادة تكلفة استعلامات History عندما يشمل النطاق المطلوب عددًا أكبر من الصفوف، أو تزداد حالات فقدان ذاكرة...

