يمكن لـ Immich أن يتسبب في نشاط متكرر على القرص طوال الليل، لأن أعمال الصيانة المجدولة، ومعالجة قاعدة البيانات، ومهام الوسائط الموضوعة في قائمة الانتظار، أو عمليات إعادة المحاولة تستمر بعد توقف الأشخاص عن استخدام المكتبة.
لا يعني هدوء المنزل أن الخادم غير نشط. السؤال المفيد هو ما إذا كانت العملية والمهمة نفسيهما تفسران عمليات القراءة أو الكتابة في الوقت نفسه تقريبًا. اربط النشاط بمصدره أولًا، ثم قرر ما إذا كان عملًا متوقعًا، أو استدراكًا لتراكم سابق، أو حلقة ينبغي إيقافها.
طابق ارتفاع نشاط القرص مع الوقت قبل تغيير أي شيء
ابدأ بتسجيل الطوابع الزمنية لثلاث ليالٍ بدلًا من ملاحظة واحدة مشوشة. سجّل وقت ارتفاع عمليات الإدخال والإخراج على مستوى الكتل، والجهاز المشغول، وما إذا كانت القراءات أو الكتابات هي الغالبة، وما إذا كان النمط يبدأ في الوقت نفسه تقريبًا. يشير وقت البدء القابل للتكرار إلى وجود مُجدوِل؛ بينما يشير النمط غير المنتظم بدرجة أكبر إلى وصول ملفات جديدة، أو عمليات إعادة محاولة، أو حاوية أخرى.
يمكن لعمليات نشر Immich جدولة نسخ احتياطية لقاعدة البيانات وأعمال موجهة نحو التحقق من السلامة خلال ساعات انخفاض الاستخدام، لذلك قد يكون الارتفاع في الصباح الباكر مقصودًا. لا تعطل مهمة لمجرد أنها توقظ الأقراص. تحقق أولًا مما إذا كانت هناك نسخة احتياطية مقابلة، أو نتيجة صيانة، أو اكتمال لقائمة انتظار يظهر بعد فترة النشاط.
يستخدم تشخيص عمل Immich في الخلفية خلال ساعات الخمول في ZimaSpace القاعدة الزمنية نفسها: اربط العَرَض الظاهر بالعملية والمهمة قبل اعتبار «الخمول» حالة فشل.
افصل بين كتابات PostgreSQL وقراءات الوسائط
يمكن لتغييرات حالة تطبيق Immich أن تُبقي PostgreSQL نشطًا حتى عندما لا تُفتح صورة جديدة. تتمتع نقاط التحقق في قاعدة البيانات، وتسجيل الكتابة المسبقة، والأعمال المتعلقة بالتنظيف، وتحديثات التطبيق العادية ببصمة إدخال وإخراج مختلفة عن فحص آلاف ملفات الوسائط. حدّد المسار أو الجهاز الذي يستقبل حركة البيانات قبل إلقاء اللوم على مكتبة الصور.
يوضح نقاش مراقبة PostgreSQL في تحليل pg_stat_io سبب ضرورة فصل القراءات والكتابات ونشاط الواجهة الخلفية وسلوك أداة التحقق والكتابات الخلفية. استخدم هذا التمييز لتحديد ما إذا كان جهاز قاعدة البيانات مشغولًا بسبب حفظ معاملات مفيدة، أم لأن شيئًا ما يكرر عمليات مرهقة بلا توقف.
إذا كانت كتابات قاعدة البيانات صغيرة ودورية بينما تظل أقراص الوسائط في وضع السكون، فقد يكون السلوك مجرد أعمال صيانة طبيعية لقاعدة البيانات. أما إذا كان الملف نفسه في قاعدة البيانات يتلقى كتابات كثيفة ومتواصلة دون تقدم أي مهمة، فاحتفظ بالسجلات وافحص الاستعلامات المسؤولة أو حلقة إعادة التشغيل بدلًا من نقل المكتبة بأكملها إلى مساحة تخزين أسرع.
تحقق مما إذا كانت قوائم الانتظار في الخلفية تتقدم فعلًا
افتح عرض المهام وقارن بين الأعمال المعلقة والنشطة والفاشلة والمكتملة قبل فترة الليل وبعدها. يمكن لتوليد الصور المصغرة، ومعالجة الفيديو، واستخراج البيانات الوصفية، ومهام التعلم الآلي، أو أعمال المكتبة المستوردة أن تُبقي التخزين نشطًا بشكل مشروع بعد إجراء تغيير كبير. ويُعد انخفاض التراكم دليلًا على إنجاز عمل مفيد.
يوضح تقرير حديث من المجتمع حول قراءات مستمرة غير مفسرة الحد التشخيصي المقابل: فالقراءات المستمرة بمعدل مرتفع جدًا، من دون عمل متوقع، تستحق التحقيق بدل اعتبارها «ما يفعله Immich». تعامل مع المعدل المذكور باعتباره حالة منفردة لا معيارًا مرجعيًا.
إذا فشلت المهام نفسها عدة مرات وعادت إلى قائمة الانتظار، فقد يتكرر نشاط القرص دون إحراز تقدم. سجّل الخطأ الأول وأصلًا واحدًا متأثرًا، ثم اعزل نوع المهمة المعني. لا تمسح جميع قوائم الانتظار ولا تعِد إنشاء المكتبة بأكملها قبل تحديد ما إذا كانت الحلقة ناتجة عن ملف واحد، أو أذونات، أو زمن استجابة التخزين، أو اعتماد إحدى الخدمات.
انسب عمليات الإدخال والإخراج إلى عملية بدل التخمين من ضوضاء محرك الأقراص
استخدم مراقبة الإدخال والإخراج على مستوى المضيف أثناء التكرار التالي لتحديد العملية التي تقرأ الجهاز أو تكتب عليه. ثم اربط هذه العملية بخادم Immich، أو PostgreSQL، أو التعلم الآلي، أو أداة نسخ احتياطي، أو برنامج مكافحة فيروسات، أو فحص نظام الملفات، أو حاوية غير مرتبطة. لا تستطيع مؤشرات الأقراص أو ضوضاء المراوح توفير معلومات الملكية هذه.
يوضح سير العمل العملي باستخدام iotop أسلوب البدء بالعملية. سجّل عدة عينات لأن دفعة قصيرة قد تختفي بين الملاحظات؛ فالهدف هو التقاط العملية أثناء الفترة نفسها التي يظهر فيها العَرَض.
إذا لم يكن Immich هو المتسبب الأكبر في الإدخال والإخراج، فتوقف عن تغيير إعدادات Immich واتبع العملية الفعلية. وإذا كان PostgreSQL أو Immich أو عامل مرتبط بهما هو المسؤول، فاربط سجلاته وتقدم المهام بعينة الإدخال والإخراج. يحول ذلك عبارة «الخادم يصدر ضوضاء كل ليلة» إلى مكوّن ومُشغّل محددين.
حدّد الفاصل بين العمل الليلي الطبيعي والعطل
اعتبر النشاط طبيعيًا عندما يبدأ وفق جدول معروف أو بعد تغيير حديث في المكتبة، وينجز عملًا مفيدًا، ولا يترك عددًا متزايدًا من حالات الفشل، وتعود أزمنة استجابة التخزين وعمق قائمة الانتظار إلى خط الأساس. سجّل المدة الطبيعية حتى يكون لديك معيار للمقارنة عند حدوث زيادة مستقبلية.
توضح مناقشة تاريخية في Immich حول كتابات قاعدة البيانات المتكررة سبب إمكانية وجود بعض نشاط قاعدة البيانات دون إجراء ظاهر من المستخدم. وبما أن الإصدارات وعمليات النشر تتغير، فاستخدم الحالة لتبرير قياس قاعدة البيانات بشكل منفصل فقط، لا لإعلان أن كل كتابة مستمرة طبيعية.
صعّد المشكلة عندما يستمر الإدخال والإخراج بعد توقف قوائم الانتظار، أو تتكرر الأخطاء نفسها، أو يؤثر زمن استجابة التخزين في الاستخدام النهاري، أو تنخفض المساحة الحرة بشكل غير متوقع، أو يزداد النمط ليلة بعد أخرى. احتفظ بالطوابع الزمنية، وإدخال وإخراج العمليات، وأعداد المهام، والسجلات ذات الصلة، والمساحة الحرة في نظام الملفات، ومُشغّل واحد قابل للتكرار قبل إجراء تغييرات جذرية.
الدعم والنصائح
المزيد للقراءة

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

كيفية منع تكرار المهام أو عمليات الاستيراد في Immich
افصل المهام المتكررة عن الأصول المكررة. استخدم مسارًا أساسيًا واحدًا للإدخال، وتحكّم في عمليات إعادة المحاولة وتغييرات المسارات، ثم اختبر إعادة الإدخال على مجموعة...

كيفية إصلاح Immich بعد امتلاء وحدة تخزين قاعدة البيانات الخاصة به
لا تحذف سجلات WAL الخاصة بـ PostgreSQL لتحرير المساحة مطلقًا. أوقف عمليات الكتابة في Immich، وحافظ على حالة قاعدة البيانات، وأضف سعة تخزين آمنة،...

