كيفية تهيئة ذاكرة التخزين المؤقت ووحدة التخزين المؤقتة لـ Home Assistant

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

اضبط ذاكرة التخزين المؤقت في Home Assistant عبر تحديد البيانات القابلة للحذف أولًا؛ ولا تنقل مسار الإعدادات الدائم بأكمله إلى وحدة تخزين مؤقتة.

قد تعني «ذاكرة التخزين المؤقت» أصول واجهة المتصفح الأمامية، أو مخرجات تحويل النص إلى كلام، أو الملفات المؤقتة الخاصة بتكامل معين، أو المجلد /tmp داخل حاوية، أو ذاكرة صفحات نظام التشغيل، أو مساحة العمل الخاصة بقاعدة البيانات. لكل طبقة من هذه الطبقات مالك وسلوك استرداد مختلفان. أبقِ المستخدمين والسجلات والإعدادات وحالة Recorder والملفات المرجعية الأخرى على وحدة تخزين دائمة. استخدم tmpfs أو وحدة تخزين مدعومة بذاكرة RAM فقط لمسار موثق وقابل للحذف، بعد اختبار فقدانه واستهلاكه للذاكرة عبر إعادة التشغيل.

صنّف ذاكرة التخزين المؤقت قبل نقل أي مسار

ابدأ بتحديد المالك والمسار والحجم الأقصى المتوقع وطريقة إعادة البناء وما يحدث إذا اختفت البيانات. توجد ذاكرة المتصفح المؤقتة على جهاز العميل؛ بينما توجد حالة التطبيق الدائمة في Home Assistant ضمن مسار البيانات المُعدّ له؛ وتختلف ذاكرات التكاملات المؤقتة؛ وقد تختفي الملفات المؤقتة داخل الحاوية عند إعادة التشغيل. ولا ينبغي معالجة هذه الحالات كلها بإعداد عام واحد يسمى «دليل ذاكرة التخزين المؤقت».

توضح حالة تحويل النص إلى كلام في Home Assistant مثالًا محدودًا جرى فيه توجيه الصوت المُنشأ ضمن مسار تخزين مؤقت محدد عمدًا إلى موقع مدعوم بذاكرة RAM. وتتمثل الحدود المهمة في نقل ذاكرة تخزين TTS المؤقتة القابلة للحذف في أن المستخدم استهدف دليلًا واحدًا يمكن إعادة إنشائه، وليس شجرة الإعدادات بأكملها.

إذا لم تتمكن من إثبات أن ملفًا ما يمكن أن يختفي دون فقدان الهوية أو السجل أو الإعدادات أو لوحات المعلومات أو تسجيل التكامل، فصنّفه على أنه دائم. الإعداد الافتراضي الأكثر أمانًا هو التخزين الدائم. ويأتي التحسين بعد معرفة مسؤولية الاسترداد.

حافظ على حالة Home Assistant الدائمة وRecorder على وحدة تخزين دائمة

ليس مسار تركيب الإعدادات ذاكرةً مؤقتة لمجرد أنه يحتوي على بعض الملفات المُنشأة. فقد يتضمن بيانات المصادقة، وسجلات الكيانات والأجهزة، وحالة الأتمتة، والإعدادات، والمكونات المخصصة، وقاعدة بيانات Recorder الافتراضية. إن وضع هذا المسار بأكمله على tmpfs يحوّل إعادة التشغيل إلى فقدان للبيانات، ويجعل النسخ الاحتياطية تعتمد على محتويات الذاكرة التي لم تُصمم لتكون مرجعية.

يُعد شرح ZimaSpace حول أدوار البيانات الدائمة في Home Assistant المرشح الأول الصحيح للتصفية: افصل بين الحالة المرجعية وذاكرة التخزين المؤقت القابلة لإعادة البناء وبيانات العمل المؤقتة قبل تحديد مستويات التخزين.

استخدم SSD أو نظام ملفات دائمًا وموثوقًا آخر لحالة التطبيق، واحتفظ بمساحة خالية كافية لنمو قاعدة البيانات والترقيات والصيانة. ولا يمكن لنقل ذاكرة مؤقتة صغيرة قابلة للحذف إلى RAM أن يعوّض وحدة تخزين دائمة صغيرة السعة أو معطلة.

استخدم tmpfs فقط لمسارات محددة وقابلة للحذف مع حد للذاكرة

يمكن لـ tmpfs تقليل عمليات الكتابة وتوفير زمن استجابة منخفض جدًا، لكنه يستهلك ذاكرة RAM للمضيف ويختفي عند توقف الحاوية أو المضيف. لذلك فهو مناسب لبيانات العمل المؤقتة المحدودة، وليس لأي شيء مطلوب بعد إعادة التشغيل. كما يجب تحديد حجم التركيب بحيث لا يتمكن حمل مؤقت من استهلاك الذاكرة اللازمة لـ Home Assistant Core والخدمات المجاورة.

يوضح دليل Docker Compose حديث أن استخدام tmpfs يُحتسب ضمن سعة الذاكرة، وقد يؤدي إلى حالات نفاد المساحة أو نفاد الذاكرة (OOM) عندما يكون حجمه أكبر من اللازم أو غير محدود مقارنة بميزانية الحاوية.

ضع حدًا أقصى للحجم، وراقب ذروة الاستخدام، وأعد تشغيل الحاوية عمدًا. ينبغي أن يُعاد ملء المسار تلقائيًا، مع بقاء المستخدمين والإعدادات والسجل والتكاملات دون تغيير. إذا كان التطبيق لا يستطيع إعادة بناء الدليل أو يتعامل مع غيابه باعتباره تلفًا، فأعده إلى وحدة تخزين دائمة.

تعامل مع ذاكرة الواجهة الأمامية المؤقتة باعتبارها مشكلة لدى العميل، لا في تخزين الخادم

قد تستمر صفحة قديمة في Home Assistant على متصفح واحد حتى عندما يكون الخادم سليمًا، لأن موارد الواجهة الأمامية تُخزّن مؤقتًا في المتصفح أو التطبيق. ولن يؤدي حذف الملفات المؤقتة من جانب الخادم إلى إصلاح حالة العميل تلك. وبالعكس، لا يؤدي حذف ذاكرة المتصفح المؤقتة إلى تقليل عمليات إدخال وإخراج القرص الخاصة بـ Recorder أو تصغير قاعدة بيانات Home Assistant.

يميز مستخدمو Home Assistant صراحةً ذاكرة الواجهة الأمامية المؤقتة باعتبارها ذاكرة المتصفح، ولذلك ينبغي أن يبدأ استكشاف مشكلة التخزين المؤقت بتحديد ما إذا كان العارض موجودًا على عميل واحد أم على الخادم بأكمله.

استخدم متصفحًا نظيفًا أو ملفًا شخصيًا خاصًا كمرجع للتحقق. إذا كان العميل الجديد يعمل بصورة سليمة، فأبقِ الإصلاح ضمن مسار الواجهة الأمامية. وإذا عرض كل عميل البيانات المفقودة نفسها أو خطأً من جانب الخادم، فلا تواصل مسح ذاكرات التخزين المحلية؛ بل ارجع إلى سجلات Home Assistant أو استكشاف مشكلات التخزين أو التكامل أو قاعدة البيانات.

تحقق من التخزين المؤقت عبر اختبارات إعادة التشغيل والضغط والمساحة الخالية

بعد تغيير مسار ذاكرة التخزين المؤقت أو tmpfs، قِس الحجم العادي وحجم الذروة، والذاكرة المتاحة للمضيف، وضغط الذاكرة في الحاوية، والمساحة الخالية في وحدة التخزين الدائمة، وسلوك إعادة التشغيل. ثم شغّل الحمل الذي يُنشئ ذاكرة التخزين المؤقت—مثل تحويل النص إلى كلام أو الوسائط أو معالجة تكامل مخصص أو منتج معروف آخر—وتأكد من حدوث التنظيف كما هو متوقع.

اترك هامشًا في التخزين الدائم للعمليات التي تحتاج إلى مساحة عمل مؤقتة، حتى إذا كانت قاعدة البيانات اليومية تشغل حيزًا مريحًا. لا تملأ وحدة التخزين الدائمة لأن ذاكرة RAM المؤقتة جعلت عمليات الكتابة العادية تبدو أقل؛ فقد تتطلب الترقيات وصيانة قاعدة البيانات والنسخ الاحتياطية ودفعات السجلات كميات مختلفة جدًا من المساحة المؤقتة.

يُعد الاختبار ناجحًا عندما يمكن لكل مسار قابل للحذف أن يختفي ويُعاد بناؤه، وتبقى الحالة الدائمة محفوظة بعد إعادة تشغيل الحاوية والمضيف، ويظل الاستخدام الأقصى لـ tmpfs ضمن ميزانية الذاكرة، وتبقى لدى Home Assistant مساحة خالية دائمة كافية. وإذا اختفى أي إعداد مطلوب أو سجل بعد الاختبار، فهذا يعني أن المسار صُنّف خطأً ويجب إعادته إلى التخزين الدائم قبل مواصلة الضبط.

الدعم والنصائح

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.