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

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

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

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

