الرئيسية
» مسؤول الشبكة
»
حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في إنشاء معاينة Nextcloud: إعداد مُنشئ المعاينة
حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في إنشاء معاينة Nextcloud: إعداد مُنشئ المعاينة
باختصار: ثبّت تطبيق مُولّد المعاينات، فعّله، ثمّ شغّل عملية إنشاء أولية مُحدّدة النطاق بعناية، ثمّ جدوِل العملية occ preview:pre-generateخلال أوقات انخفاض الاستخدام. حدّد أيضًا حجم المعاينات وعدد المعاينات الجديدة التي يُنشئها Nextcloud في المرة الواحدة. يُؤجّل التطبيق العمل من لحظة فتح المستخدم للملف؛ فهو لا يفرض حدًا أقصى صارمًا على وحدة المعالجة المركزية، وقد يزيد من استخدام القرص.
هذا الإعداد مناسب لخادم Nextcloud مُستضاف ذاتيًا، حيث تتسبب الصور المصغرة في ارتفاع ملحوظ في استهلاك وحدة المعالجة المركزية أثناء التصفح، خاصةً على خادم صغير يحتوي على مكتبة صور أو مستندات كبيرة. ويكون أقل فائدة إذا كان خادمك يستخدم تشفيرًا من جانب الخادم: إذ يُشير مشروع Preview Generator إلى أن التشفير غير متوافق. كما أن الاستضافة المُدارة، وNextcloud AIO، وDocker، وتثبيت الحزم تستخدم مسارات أوامر مختلفة، لذا يُرجى تعديل الأوامر لتناسب بيئة النشر الخاصة بك. لا تُشغّلها من دليل مُفترض.
توصي تعليمات التطبيق الحالية بتثبيت التطبيق وتفعيله، وتشغيله preview:generate-allمرة واحدة، ثم جدولة preview:pre-generateالتغييرات اللاحقة على الملفات. قد يكون تنفيذ الأمر الأول مكلفًا مع مكتبة كبيرة. ابدأ بمستخدم واحد أو مجلد واحد وعامل واحد. راجع ملف README الخاص بمشروع Preview Generator وخيارات الأوامر ، واختر إصدارًا متوافقًا مع إصدار Nextcloud الخاص بك من متجر تطبيقات Nextcloud .
1. تأكد من أن هذا هو الحل الصحيح
حدد أولًا متى يرتفع استهلاك وحدة المعالجة المركزية. إذا حدث ذلك عند فتح المستخدمين لمجلدات تحتوي على صور كثيرة أو مستندات تحتاج إلى معاينات، فقد يُحوّل برنامج الإنشاء المسبق جزءًا كبيرًا من هذا العمل إلى مهمة مجدولة. أما إذا ظل استهلاك وحدة المعالجة المركزية مرتفعًا في حين لا يتصفح أحد، أو تزامنت الارتفاعات مع خدمة أخرى، فقد لا يُعالج مُنشئ المعاينات السبب. لذا، تحقق من مراقب العمليات وسجلات Nextcloud قبل تغيير الإعدادات.
يقوم مُولِّد المعاينات بتسجيل الملفات المُضافة أو المُعدَّلة ومعالجتها في مهمة تعمل في الخلفية. تُقلِّل المعاينات الموجودة من تكلفة الطلبات اللاحقة، ولكن يُمكن إنشاء المعاينات المفقودة عند الطلب قبل وصول المهمة المُجدولة إليها. هذا يعني أن التطبيق يُقلِّل من ارتفاعات استهلاك وحدة المعالجة المركزية التي تظهر للمستخدم عند امتلاء قائمة الانتظار؛ ولكنه لا يضمن عدم حدوث أي ارتفاعات مفاجئة في استهلاك وحدة المعالجة المركزية. كما أنه يُضحِّي بمساحة التخزين مقابل سرعة أكبر في تسليم المعاينات. قد يكون سلوك Nextcloud عند الطلب مناسبًا لمكتبة صغيرة ذات تصفح غير متكرر.
2. قم بتثبيت إصدار التطبيق المتوافق
تعرض صفحة إدارة السحابة العامة بطاقة تطبيق معاينة الصور وهي قيد التشغيل، لتوضيح خطوة التثبيت والتمكين؛ والتخطيط ليس لقطة شاشة خاصة بإصدار معين.
سجّل الدخول كمسؤول Nextcloud، وافتح قسم التطبيقات، وابحث عن Preview Generator ، ثم ثبّته وفعّله. قبل المتابعة، تأكد من أن متجر التطبيقات يُقدّم إصدارًا مستقرًا لإصدار Nextcloud الرئيسي المُثبّت لديك. تجنّب نسخ مجلد التطبيق الأحدث يدويًا فوق إصدار يُصنّفه متجر التطبيقات على أنه غير متوافق.
يمكن للمسؤولين الذين لديهم صلاحيات الوصول إلى سطر الأوامر التحقق من التطبيق أو تفعيله occ. يظهر أدناه مثال على أمر تثبيت الحزمة؛ غيّر مسار ملف PHP الثنائي ومسار Nextcloud ليتوافق مع مضيفك. بالنسبة إلى Docker أو AIO، استخدم أمر الحاوية المدعوم أو تعليمات جدولة النشر الخاصة بهذا النوع من النشر.
3. اضبط مهام Nextcloud التي تعمل في الخلفية على Cron
في إعدادات إدارة Nextcloud، حدد Cron كوضع تشغيل المهام في الخلفية، وتأكد من أن نظام Cron الخاص بـ Nextcloud يعمل بالفعل. يشير ملف README الخاص بالتطبيق إلى أن معاينة المهام المدمجة في الخلفية تتطلب وضع Cron؛ ولا يدعم هذا التطبيق وضعي Webcron وAJAX لهذه المهام طويلة الأمد. إذا كان نظام Cron الخاص بك معطلاً، فلن يؤدي تثبيت هذا التطبيق وحده إلى استمرار عمل قائمة الانتظار.
لا تخلط بين جدولة cron.php العادية في Nextcloud والجدولة المخصصة الاختيارية للتطبيق preview:pre-generate. فهما آليتان منفصلتان. يمكنك استخدام مهمة الخلفية المدمجة في التطبيق أو أمر cron مخصص للنظام. إذا اخترت الأمر المخصص، يُنصح بتعطيل مهمة الخلفية الافتراضية المدمجة لتجنب تشغيل كلا المسارين لنفس قائمة الانتظار.
تعرض صفحة الجدولة مهمة متكررة نشطة واحدة تقوم بتسليم العمل المعروض إلى نافذة الأوامر وإرجاع نتائج مصغرة.
4. خفّض عبء العمل الخاص بالمعاينة قبل التشغيل الجماعي الأول
تقوم لوحة التكوين العامة بربط الإعدادات الشبيهة بالرموز البرمجية مع عناصر التحكم في حجم الصورة والمعالج، مما يوضح الحدين اللذين يجب على المسؤولين ضبطهما.
لتقليل استهلاك موارد المعالج عند إنشاء معاينات جديدة، قلل عدد المعاينات الجديدة التي تُشغّل في وقت واحد. في دليل إعدادات Nextcloud 35، preview_concurrency_newيتحكم هذا الخيار في إنشاء المعاينات الجديدة المتزامنة؛ القيمة الافتراضية الموثقة هي أربع، ويوصي الدليل بعدم تجاوزها عدد أنوية المعالج. على خادم صغير، جرّب قيمة مثل اثنتين، أو واحدة إذا توقف الخادم عن الاستجابة. هذا يحدّ من العمل المتزامن، ولكن قد تستهلك صورة أو مقطع فيديو كبير واحد قدرًا كبيرًا من موارد المعالج.
أبعاد المعاينة مهمة أيضًا. يبلغ الحد الأقصى الافتراضي لعرض وارتفاع مستندات Nextcloud 35 4096 بكسل. يمكن أن يؤدي تقليل هذه preview_max_xالقيم preview_max_yإلى config/config.phpتقليل متطلبات المعالجة والذاكرة، على حساب صغر حجم المعاينات. احتفظ بنسخة احتياطية من ملف التكوين وادمج الإعدادات في مصفوفة PHP الموجودة؛ لا تستبدل الملف بمقتطف برمجي. على سبيل المثال، قد يقوم المسؤول بتعيين كلا القيمتين إلى 2048 واختبار الجودة في عرضي الملفات والصور.
يُمكن للتطبيق أيضًا إنشاء عدة أحجام مختلفة. يوفر ملف README الخاص به ملف تعريف مُصغّر للأحجام الشائعة للاستخدام مع الملفات والصور والأنشطة: أحجام مربعة 64 256، وأحجام ملء العرض والارتفاع ، بالإضافة إلى خيار 256 4096"فارغ" لتجاوز هذه المجموعات. استخدم هذه الإعدادات فقط إذا كانت مُلائمة للتطبيقات التي يعتمد عليها المستخدمون؛ فقد تحتاج جداول زمنية للذكريات أو تطبيقات أخرى إلى أحجام إضافية. يُشير المشروع إلى أن أحجام المعاينة يجب أن تتوافق مع قواعد الحجم المقبولة ولا يُمكن أن تتجاوز الحد الأقصى المُحدد. راجع إعدادات حجم وجودة المعاينة في Nextcloud ومرجع التكوين الخاص بالإصدار .widthSizesheightSizes
5. إنشاء معاينات موجودة في دفعة أولى صغيرة
بعد تفعيل التطبيق وتحديد الحدود، شغّل المُولِّد الأولي على مجلد اختبار أو مستخدم واحد بدلاً من تشغيله على كامل النظام. يدعم التطبيق التصفية حسب مُعرِّف المستخدم أو المسار، ويقبل الأمر عدد العمال. استخدم عاملاً واحداً لإجراء فحص أولي بسيط.
تعرض صفحة إعدادات المهام الخلفية خيار المهمة المجدولة المحدد؛ وتختلف التسميات الدقيقة والخيارات المتاحة حسب إصدار Nextcloud.
استبدل aliceالمسار ومسار تثبيت Nextcloud بقيم حقيقية من خادمك. يستخدم خيار المسار الصيغة التالية: `path` /[username]/files/[folder path]. إذا حذفت المسار وفلتر المستخدم، فقد يتصفح الأمر المكتبة بأكملها. شغّل العملية عندما يكون المستخدمون أقل نشاطًا، وراقب استخدام وحدة المعالجة المركزية والذاكرة ومساحة القرص، وأوقفها لإعادة التقييم إذا أصبح الخادم غير مستقر. لا تزد عدد العمال لمجرد إنهاء العملية بشكل أسرع حتى تقيس التأثير.
6. جدولة الملفات المضافة أو المعدلة حديثًا
بمجرد أن تعمل مجموعة الاختبار بشكل جيد، أضفها preview:pre-generateإلى جدول مهام النظام (cron schedule). يشير ملف README الخاص بالتطبيق إلى كل عشر دقائق كمثال، وليس شرطًا. اختر فاصلًا زمنيًا يتناسب مع حجم التحميل ووقت الخمول المتاح. على سبيل المثال، يمكن أن يحتوي ملف crontab الخاص بحساب خادم الويب على السطر التالي، مع تعديل المسارات لتناسب التثبيت:
أبقِ مهمة cron.php العادية في Nextcloud مُفعّلة. بالنسبة للحاويات والمنصات المُستضافة، استخدم مُجدول المهام المُعتمد من المنصة بدلاً من وضع مسار المضيف في إدخال cron الخاص بالحاوية. إذا كان التطبيق مُثبّتًا مع تفعيل التشفير، فتوقف هنا واستشر مسؤول النظام أو مُزوّد خدمة الاستضافة؛ حيث يُصنّف المشروع هذا التكوين حاليًا على أنه غير مدعوم.
7. راقب قائمة الانتظار وتأكد من التحسن
تجمع لوحة المراقبة العامة بين رسم بياني لوحدة المعالجة المركزية وأشرطة تقدم قائمة الانتظار لمقارنة حمل الخادم ومعاينة الأعمال المتراكمة.
قم بتشغيل البرنامج occ preview:queue-statsلفحص قائمة انتظار ما قبل الإنشاء والمعاينات القديمة. تشير قائمة الانتظار التي تتقلص بين عمليات التشغيل المجدولة إلى أن العامل يلحق بالركب. أما إذا كانت تنمو باستمرار، فهذا يعني أن المستخدمين يضيفون ملفات أسرع من قدرة المهمة المُهيأة على معالجتها؛ لذا، قم بزيادة تردد التشغيل أو حدود المهمة المسموح بها بحذر، بعد التأكد من أن الحمل الإضافي على وحدة المعالجة المركزية مقبول. يعرض التطبيق حدودًا لوقت تنفيذ المهمة والمعاينات لكل تشغيل. يشير ملف README الخاص به إلى أن الصفر يعني غير محدود، لذا لا تختر الصفر بشكل عشوائي على مضيف ذي موارد محدودة.
قارن ذروة استخدام وحدة المعالجة المركزية قبل وبعد التحديث في أوقات متقاربة، ثم افتح مجلد صور نموذجي ومعاينة مستند كمستخدم عادي. تأكد من ظهور الصور المصغرة، واستمرار استجابة الصفحات، واستقرار استخدام وحدة المعالجة المركزية بعد انتهاء المعالجة المجدولة. يُعدّ انخفاض استهلاك وحدة المعالجة المركزية خلال النهار مع تقدم كافٍ في قائمة الانتظار نتيجة مفيدة؛ أما تراكم الطلبات المتراكمة بشكل مستمر أو بطء جلسات المستخدم فيعني أن الجدول الزمني أو حجم الملفات أو موفر المعاينة الأساسي بحاجة إلى إعادة النظر.
يعرض معرض الصور على غرار تطبيق الملفات صورًا مصغرة، مما يمثل التحقق المرئي من تحميل المعاينات المطلوبة الآن.
حدود هامة وتنظيف آمن
تعتمد بعض أنواع المعاينات على برامج الخادم: يذكر دليل Nextcloud برنامج FFmpeg لمعاينات الفيديو وبرنامج LibreOffice لمعاينات مستندات Office. قد تختلف هذه التنسيقات عن الصور المصغرة العادية، ويعتمد دعمها على إعدادات مزود الخدمة. ابدأ بتقليل عدد الملفات المتزامنة واختبار مجموعة صغيرة من الملفات قبل تغيير مزود الخدمة أو إضافة خدمات جديدة.
إذا قمت بتغيير أبعاد المعاينة أو أنواع الملفات المدعومة، واحتجت إلى حذف المعاينات المخزنة مؤقتًا، فإن Nextcloud 31 والإصدارات الأحدث توفر occ preview:cleanupهذه الميزة، وفقًا لملف README الخاص بالمشروع. تقوم هذه الميزة بحذف جميع ملفات المعاينة المُنشأة، وبعد ذلك يقوم Nextcloud بإنشاء معاينات عند الطلب أثناء وصول المستخدمين إلى الملفات. قد يؤدي هذا إلى عودة ارتفاعات استهلاك وحدة المعالجة المركزية التي تحاول تقليلها مؤقتًا. لذا، يُنصح بأخذ نسخة احتياطية عند الحاجة، وجدولة عمليات التنظيف بشكل دوري، وتجنب حذف مجلد معاينة بيانات التطبيق يدويًا كجزء من عملية الضبط الروتينية. كما يوثق ملف README الخاص بمولد المعاينة .nomediaملفًا لتجاوز مجلد ومجلداته الفرعية عند الضرورة.
يظهر رمز المجلد ورمز الملف المخفي بجانب رمز الدرع والقفل، مما يوضح قيود التشفير وخيار تخطي مجلد.
عمليًا، يُعدّ مُولّد المعاينة خيارًا مناسبًا عندما تُسبّب المعاينات البطيئة عند الطلب ذروة تحميل ملحوظة، وعندما يكون بالإمكان جدولة العمليات في الخلفية، وتتوفر مساحة كافية على القرص لتخزين الأحجام مؤقتًا. يُنصح باستخدامه مع حدّ معقول للتزامن، وأبعاد معاينة تُناسب احتياجات العرض الفعلية، وتشغيل اختبار شامل أولًا. إذا كانت النسخة مُشفّرة، أو مُدارة بدون جدولة عبر سطر الأوامر، أو مُقيّدة بوحدة المعالجة المركزية لأسباب لا علاقة لها بطلبات المعاينة، فيجب التحقق من هذه القيود قبل النشر.