حلّ المجتمع

استخدام مرتفع لمساحة التبديل في ZimaOS: تحقّق من استخدام الذاكرة والقرص بواسطة Docker

A user found a 3.8GB swap file on a nearly full 48GB ZimaOS boot disk, but the system later reclaimed about 20GB, suggesting other temporary data was involved.

إن وجود ملف مبادلة كبير في ZimaOS لا يعني بالضرورة وجود ضغط فعلي على الذاكرة، وحذفه ليس الطريقة الصحيحة لاستعادة مساحة على قرص الإقلاع. تحقّق من الاستخدام الفعلي للمبادلة، وضغط الذاكرة، واستخدام Docker للقرص، والسجلات، وموقع AppData قبل تغيير إعدادات المبادلة.

حمّل مصدر النقاش لعام 2026 ملفًا باسم .swap وحجمه 3.8 جيجابايت مسؤولية امتلاء قرص إقلاع سعته 48 جيجابايت تقريبًا، لكن الحسابات أظهرت أن المبادلة لم تكن تمثل سوى جزء صغير من المساحة المفقودة. وقد استعاد النظام لاحقًا نحو 20 جيجابايت، ما يشير إلى تنظيف مؤقت لبيانات Docker أو ذاكرة التخزين المؤقت، وليس إلى تقليص مساحة المبادلة.

حجم المبادلة المحجوز مقابل الاستخدام الفعلي للمبادلة

شغّل:

free -h
swapon --show

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

اعثر على ما يملأ قرص النظام

شغّل:

df -h
du -xh /var/lib/docker --max-depth=1 2>/dev/null | sort -h

يمكن لطبقات صور Docker، والطبقات القابلة للكتابة، والسجلات، وذاكرة التخزين المؤقت، والبيانات المؤقتة أن تشغل قرص النظام الصغير حتى عندما تكون وسائط التطبيقات مرتبطة بموقع آخر.

أبقِ AppData خارج قرص النظام

يوصي دليل بيانات تطبيقات ZimaOS الحالي صراحةً بتعيين موقع بيانات التطبيقات إلى مساحة تخزين بدلًا من ملء قرص النظام.

لا يؤدي ذلك إلى إزالة كل استخدام Docker للنظام، لكنه يمنع قواعد بيانات التطبيقات وذاكرة التخزين المؤقت للوسائط من استهلاك جهاز الإقلاع افتراضيًا.

تحقّق من سجلات الحاويات

قد تؤدي حاوية كثيرة الضوضاء إلى نمو سجلات JSON بسرعة. افحص استخدام Docker للقرص وأحجام سجلات الحاويات قبل حذف ملفات عشوائية.

إذا كان أحد التطبيقات هو المسؤول، فأصلح سلوك التسجيل لديه أو دوّر السجلات بدلًا من حذف ملفات السجل النشطة يدويًا.

قد يعني الاستخدام المرتفع للمبادلة وجود ضغط على الذاكرة

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

لا تعطل المبادلة لمجرد إخفاء المشكلة

يمكن للمبادلة إبقاء النظام قيد التشغيل أثناء الارتفاعات القصيرة في استهلاك الذاكرة. وقد يؤدي تعطيلها على خادم محدود الذاكرة إلى تحويل التباطؤ إلى عمليات قتل بسبب نفاد الذاكرة.

متى تضيف ذاكرة وصول عشوائي؟

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

يساعد دليل استكشاف مشكلات الأداء على تجنب اعتبار كل خادم بطيء مشكلة في ذاكرة الوصول العشوائي.

قِس ضغط الذاكرة بمرور الوقت

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

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

لا تزال صور Docker تستهلك مساحة النظام

إن نقل AppData إلى /DATA لا ينقل كل طبقة من طبقات صور Docker ولا كل ملفات وقت التشغيل. لذلك قد يؤدي تثبيت العديد من التطبيقات وتحديثها إلى زيادة استهلاك قرص النظام حتى عندما تشير جميع وحدات تخزين بيانات المستخدم إلى موقع آخر.

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

تحقّق مما إذا كان قرص النظام الصغير هو المشكلة البنيوية

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

قد تؤدي المساحة الحرة المنخفضة إلى أعطال ثانوية

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

الأسئلة الشائعة

لماذا عادت المساحة الحرة على القرص أثناء الليل؟

قد تكون طبقات Docker المؤقتة أو ذاكرة التخزين المؤقت أو السجلات أو مهام التنظيف قد حررت مساحة. لا يعني ذلك أن ملف المبادلة نفسه قد تقلّص.

هل ينبغي أن أحذف ملف ‎.swap؟

لا. تحقّق أولًا من الاستخدام الفعلي للمبادلة ومن المستهلكين الحقيقيين لمساحة القرص.

هل تُعد مبادلة بحجم 3–4 جيجابايت أمرًا طبيعيًا؟

وجود ملف مبادلة بحجم بضعة جيجابايت ليس أمرًا غير معتاد. المهم هو مقدار المبادلة المستخدم فعليًا وما إذا كان ضغط الذاكرة مستمرًا.

لماذا لا يزال قرص الإقلاع مستخدمًا عندما يكون AppData على ‎/DATA؟

لا تزال البيانات الوصفية لمحرك Docker وطبقات الصور والطبقات المتراكبة لوقت التشغيل والسجلات وملفات النظام موجودة خارج بيانات التطبيقات المرتبطة لديك.