اضبط مهلات الوكيل انطلاقًا من أبطأ عملية رفع مشروعة ستقبلها، مع هامش أمان، واحرص على أن يكون التطبيق وأي وكيل صاعد أكثر تساهلًا منها على الأقل. لا تعالج كل عملية رفع فاشلة باختيار مهلة غير محدودة.
قد تفشل صورة أو مقطع فيديو كبير بينما يعمل التطبيق نفسه بشكل طبيعي، لأن نص الطلب أو المعالجة الصاعدة أو الاستجابة قد يتجاوز حدًا مختلفًا. سجّل رمز الحالة والوقت المنقضي وحجم الملف وسجل الوكيل أولًا. تساعد هذه الملاحظات على التمييز بين رفض بسبب حجم النص، أو مهلة خمول، أو مهلة خلفية، أو انقطاع من جانب العميل.
حدّد المرحلة التي تنهي عملية الرفع
كرّر الاختبار باستخدام ملف معروف واحد، ولاحظ ما إذا كان الفشل يحدث أثناء النقل، أو بعد وصول شريط التقدم إلى 100 بالمئة، أو أثناء معالجة الخادم للوسائط. ترتبط كل مرحلة باتصال ومهلة مختلفين.
يشير الفشل المنتظم عند عدد البايتات نفسه إلى حد لحجم النص؛ بينما يشير الفشل بعد فترة الخمول نفسها إلى مهلة. أما خطأ البوابة بعد اكتمال الرفع فيشير إلى الانتظار بين الوكيل والتطبيق أو إلى حد المعالجة الخاص بالتطبيق.
اقرأ سجلات الوصول والأخطاء الخاصة بالوكيل مع سجلات التطبيق. إذا أغلق العميل الاتصال أولًا، فلن تساعد زيادة مهلة الوكيل وحدها؛ تحقّق من سلوك التطبيقات في الخلفية على الأجهزة المحمولة، واستقرار الشبكة الافتراضية الخاصة، ومسار الطلب في المتصفح.
قِس ميزانية مهلة يمكن تبريرها
اقسم أكبر ملف مقبول على أبطأ سرعة رفع صاعدة مدعومة لتقدير وقت النقل، ثم أضف وقتًا مناسبًا لمصافحة TLS والتخزين المؤقت وتفاوت معدل النقل. استخدم هذا الحد الأقصى للعمل المشروع، وليس وعدًا بإبقاء كل اتصال بطيء مفتوحًا إلى الأبد.
ميّز بين المدة الإجمالية ومدة الخمول. فعلى سبيل المثال، توثّق NGINX توجيهات منفصلة لمهلات الوكيل، ويقيس بعضها الفاصل بين العمليات المتتالية بدلًا من مدة الاستجابة بأكملها.
ضع مخاطر رفض الخدمة في الحسبان. قيّد نقاط نهاية الرفع بالمصادقة وضوابط معدل الطلب قبل إطالة أعمار الاتصالات بشكل كبير، ولا تكشف واجهة إدارة الوكيل.
نسّق جميع الطبقات من دون تصحيح مفرط
اضبط حجم نص الطلب عند الحد الأقصى الذي يدعمه التطبيق أو أعلى منه. ثم نسّق مهلات نص العميل، والاتصال الصاعد، والقراءة الصاعدة، والإرسال الصاعد وفقًا لمرحلة الفشل المرصودة.
تحقّق من وجود شبكة CDN خارجية أو نفق أو موازن تحميل أو وكيل عكسي ثانٍ يفرض حدًا أقصر وثابتًا. الحد الفعلي هو أصغر حد في السلسلة، لذا قد لا يؤدي تغيير الوكيل الداخلي وحده إلى أي نتيجة ملحوظة.
احتفظ بتوثيق عناوين URL الخاصة بالتطبيق ومسارات الوكيل. يساعد دليل ZimaSpace حول Immich على مشاركة شبكية على فصل أخطاء مسار الرفع عن زمن استجابة تركيب التخزين وانقطاعاته.
أعد اختبار عمليات الرفع البطيئة والكبيرة والمنقطعة
ارفع الملف الأصلي الذي فشل من قبل من الموقع الأصلي وبسرعة الشبكة الأصلية. لا يُعد الاختبار ناجحًا إلا عند اكتمال العملية وفهرسة التطبيق وإنتاج ملف قابل للتشغيل أو العرض، وليس بمجرد الحصول على رمز نجاح HTTP.
خفّض سرعة اتصال تجريبي إلى الحد الأدنى المدعوم وكرّر الاختبار. ثم اقطع عملية رفع واحدة عمدًا؛ ينبغي تنظيف الملفات المؤقتة وسجلات قاعدة البيانات غير المكتملة وفقًا لسلوك التطبيق.
توقّف عن زيادة المهلات عندما تُظهر السجلات تعطلًا في الخلفية أو خطأ في التخزين أو حدًا ثابتًا من مزود خارجي. أعد القيم المفرطة إلى ما كانت عليه، وأصلح الطبقة المتسببة في الفشل، واحتفظ بأصغر مهلة تغطي عبء العمل المقاس باستمرار.
الأسئلة الشائعة
هل ينبغي أن تستخدم جميع مهلات الوكيل القيمة نفسها؟ لا. فبدء الاتصال وقراءة نص العميل وانتظار استجابة النظام الصاعد والإرسال إلى الجهة الهابطة تحمي مراحل مختلفة.
لماذا تعمل صورة صغيرة بينما يفشل مقطع فيديو؟ قد يتجاوز الفيديو حدًا لحجم النص، أو يستغرق وقتًا أطول من حد الخمول، أو يستدعي معالجة أطول على الخادم؛ وتحدد السجلات وتوقيت الفشل السبب.
الدعم والنصائح
المزيد للقراءة

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

هل يمكنك استيراد Google Takeout ونسخ الهاتف الاحتياطية إلى مكتبة صور واحدة؟
قرار مشروط لخادم منزلي لاستيراد الصور الموحّد، مع اختبارات مضبوطة وتفسير للنتائج والتراجع وأسئلة شائعة مركّزة.

هل يستطيع Immich استخدام مكتبة خارجية دون تولّي ملكية الملفات؟
قرار مشروط لخادم منزلي بشأن ملكية المكتبة الخارجية في Immich، مع اختبارات مضبوطة وتفسير للنتائج وإمكانية التراجع وأسئلة شائعة مركزة.

