إذا أبلغ Frigate بأن حجم الذاكرة المشتركة الحالي لا يتجاوز 64 ميغابايت، فزد قيمة shm_size الخاصة بالحاوية في تعريف خدمة Docker Compose. لا تضف shm_size كمتغير بيئي؛ إذ يتعامل Docker Compose معها كإعداد وقت تشغيل على مستوى الخدمة يتحكم في /dev/shm داخل الحاوية.
رأى المستخدم في المصدر توصية بما لا يقل عن 306 ميغابايت على ZimaBoard 2. وتعتمد القيمة الدقيقة على عبء العمل، لذا انسخ الآلية بدلًا من نسخ رقم واحد دون تفكير. يؤثر عدد الكاميرات ودقتها وعدد الإطارات التي يجري فك ترميزها في متطلبات Frigate من الذاكرة المشتركة.
لماذا يرى Frigate حجمًا قدره 64 ميغابايت افتراضيًا
تبدأ حاويات Docker عادةً بنظام ملفات صغير نسبيًا للذاكرة المشتركة. ويستخدم Frigate المسار /dev/shm لتخزين إطارات الفيديو الخام بعد فك ترميزها، لذلك قد تتجاوز أحمال الكاميرات القيمة الافتراضية حتى عندما تتوفر مساحة كبيرة من ذاكرة RAM على المضيف نفسه.
لذلك، يتعلق التحذير بتخصيص الذاكرة المشتركة للحاوية، وليس بإجمالي ذاكرة النظام فحسب. إن إضافة المزيد من ذاكرة RAM الفعلية لا تزيد تلقائيًا حجم /dev/shm داخل الحاوية من دون تغيير إعداد الحاوية.
shm_size ليست متغيرًا بيئيًا
حاول أحد فروع استكشاف الأخطاء وإصلاحها في المنتدى إضافة shm_size ضمن قسم متغيرات البيئة. وأشار مشارك آخر بشكل صحيح إلى أن ذلك لا يضبط وحدة تركيب الذاكرة المشتركة الخاصة بـ Docker.
يعرّف Docker Compose القيمة shm_size مباشرةً ضمن الخدمة، إلى جانب إعدادات مثل الصورة وسياسة إعادة التشغيل ووحدات التخزين والأجهزة. وتنص مرجعية Compose الحالية الخاصة بـ Docker على أن هذا الحقل يضبط حجم /dev/shm في حاوية الخدمة.
مرجع shm_size في Docker Compose هو المصدر المعتمد للصياغة.
عدّل ملف YAML الخاص بخدمة Frigate
استخدمت المناقشة قيمة على مستوى الخدمة تعادل تقريبًا 1 غيغابايت بالبايت. كما تدعم محللات Compose الحالية وأمثلة Frigate أحجامًا سهلة القراءة. ويبدو الهيكل المبسّط كما يلي:
services:
frigate:
image: ...
shm_size: "512mb"
...
أبقِ الحقل على مستوى المسافة البادئة نفسه المستخدم في إعدادات وقت التشغيل الأخرى للخدمة. وإذا رفض إصدار معيّن من ZimaOS أو محرره وحدةً سهلة القراءة، فيمكن استخدام صيغة البايتات الواردة في مناقشة المجتمع كخيار توافق؛ والمهم أن الإعداد ينتمي إلى خدمة Compose، وليس إلى environment:.
اختر قيمة تناسب عبء العمل الفعلي لكاميراتك
توضح وثائق Frigate الحالية أن الطلب على الذاكرة المشتركة يعتمد على أبعاد الصورة والإطارات المخزنة مؤقتًا. ويستخدم ملف Compose النموذجي الحالي قيمة تخصيص أكبر من القيمة الافتراضية في Docker، كما يقدم إرشادات لتقدير المتطلبات.
لا تضبط قيمة ضخمة اعتباطيًا من دون سبب. زدها بما يكفي لإزالة التحذير أثناء عبء العمل الفعلي، ثم أعد تشغيل الحاوية أو أنشئها من جديد لتطبيق إعداد وقت التشغيل، وبعد ذلك تحقّق من الحجم الفعلي من داخل الحاوية قيد التشغيل.
ينبغي أن تكون إرشادات تثبيت Frigate الحالية هي المرجع المعتمد بدلًا من قيمة ثابتة واردة في مناقشة عام 2026.
يعتمد سير عمل التحرير في ZimaOS على الإصدار
نُشرت المشاركة الأصلية بينما كان المستخدم يعمل على إصدار تجريبي من ZimaOS 1.6.0. كما أشار أحد أعضاء IceWhale إلى أن سلوك الذاكرة المشتركة على مستوى المضيف في الإصدار 1.5.4 كان مختلفًا عما يراه المستخدم، مما أدى إلى مزيد من الالتباس بين إعدادات المضيف والحاوية.
يوفر ZimaOS 1.7.x الحالي تحريرًا أصليًا لملفات YAML، وقد حسّن الإصدار 1.7.1 تحديدًا توافق حفظ ملفات YAML. استخدم محرر التطبيق الحالي حيثما أمكن، مع الحفاظ على التمييز الخاص بـ Docker: ما تزال حاوية Frigate بحاجة إلى قيمة shm_size الخاصة بها بغض النظر عن مقدار الذاكرة المشتركة الذي يبلّغ عنه المضيف.
