حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في إنشاء معاينة 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، استخدم أمر الحاوية المدعوم أو تعليمات جدولة النشر الخاصة بهذا النوع من النشر.

sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator

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. إنشاء معاينات موجودة في دفعة أولى صغيرة

بعد تفعيل التطبيق وتحديد الحدود، شغّل المُولِّد الأولي على مجلد اختبار أو مستخدم واحد بدلاً من تشغيله على كامل النظام. يدعم التطبيق التصفية حسب مُعرِّف المستخدم أو المسار، ويقبل الأمر عدد العمال. استخدم عاملاً واحداً لإجراء فحص أولي بسيط.

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"
شاشة إعدادات الوظائف الخلفية العامة مع تحديد خيار المهمة المجدولة.
تعرض صفحة إعدادات المهام الخلفية خيار المهمة المجدولة المحدد؛ وتختلف التسميات الدقيقة والخيارات المتاحة حسب إصدار Nextcloud.

استبدل aliceالمسار ومسار تثبيت Nextcloud بقيم حقيقية من خادمك. يستخدم خيار المسار الصيغة التالية: `path` /[username]/files/[folder path]. إذا حذفت المسار وفلتر المستخدم، فقد يتصفح الأمر المكتبة بأكملها. شغّل العملية عندما يكون المستخدمون أقل نشاطًا، وراقب استخدام وحدة المعالجة المركزية والذاكرة ومساحة القرص، وأوقفها لإعادة التقييم إذا أصبح الخادم غير مستقر. لا تزد عدد العمال لمجرد إنهاء العملية بشكل أسرع حتى تقيس التأثير.

6. جدولة الملفات المضافة أو المعدلة حديثًا

بمجرد أن تعمل مجموعة الاختبار بشكل جيد، أضفها preview:pre-generateإلى جدول مهام النظام (cron schedule). يشير ملف README الخاص بالتطبيق إلى كل عشر دقائق كمثال، وليس شرطًا. اختر فاصلًا زمنيًا يتناسب مع حجم التحميل ووقت الخمول المتاح. على سبيل المثال، يمكن أن يحتوي ملف crontab الخاص بحساب خادم الويب على السطر التالي، مع تعديل المسارات لتناسب التثبيت:

*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generate
لوحة على غرار لوحة الأوامر تحتوي على أيقونة مجلد متبوعة بصور مصغرة تم إنشاؤها.
تعرض نافذة على غرار نافذة الطرفية مجلدًا محددًا متبوعًا بصور مصغرة، مما يمثل محاولة أولية من قبل عامل واحد على مسار محدود.

إذا كنت تستخدم نظام cron المخصص هذا، فعطّل ​​مهمة المعاينة الخلفية المدمجة في التطبيق كما هو موصى به من قِبل المشروع. إعدادات التطبيق الموثقة هي:

sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled

أبقِ مهمة cron.php العادية في Nextcloud مُفعّلة. بالنسبة للحاويات والمنصات المُستضافة، استخدم مُجدول المهام المُعتمد من المنصة بدلاً من وضع مسار المضيف في إدخال cron الخاص بالحاوية. إذا كان التطبيق مُثبّتًا مع تفعيل التشفير، فتوقف هنا واستشر مسؤول النظام أو مُزوّد ​​خدمة الاستضافة؛ حيث يُصنّف المشروع هذا التكوين حاليًا على أنه غير مدعوم.

7. راقب قائمة الانتظار وتأكد من التحسن

شاشة مراقبة عامة مع رسم بياني لاستخدام وحدة المعالجة المركزية وشريطين لتقدم قائمة الانتظار.
تجمع لوحة المراقبة العامة بين رسم بياني لوحدة المعالجة المركزية وأشرطة تقدم قائمة الانتظار لمقارنة حمل الخادم ومعاينة الأعمال المتراكمة.

قم بتشغيل البرنامج occ preview:queue-statsلفحص قائمة انتظار ما قبل الإنشاء والمعاينات القديمة. تشير قائمة الانتظار التي تتقلص بين عمليات التشغيل المجدولة إلى أن العامل يلحق بالركب. أما إذا كانت تنمو باستمرار، فهذا يعني أن المستخدمين يضيفون ملفات أسرع من قدرة المهمة المُهيأة على معالجتها؛ لذا، قم بزيادة تردد التشغيل أو حدود المهمة المسموح بها بحذر، بعد التأكد من أن الحمل الإضافي على وحدة المعالجة المركزية مقبول. يعرض التطبيق حدودًا لوقت تنفيذ المهمة والمعاينات لكل تشغيل. يشير ملف README الخاص به إلى أن الصفر يعني غير محدود، لذا لا تختر الصفر بشكل عشوائي على مضيف ذي موارد محدودة.

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

معرض ملفات سحابي يعرض ست صور مصغرة في عرض مجلد.
يعرض معرض الصور على غرار تطبيق الملفات صورًا مصغرة، مما يمثل التحقق المرئي من تحميل المعاينات المطلوبة الآن.

حدود هامة وتنظيف آمن

تعتمد بعض أنواع المعاينات على برامج الخادم: يذكر دليل Nextcloud برنامج FFmpeg لمعاينات الفيديو وبرنامج LibreOffice لمعاينات مستندات Office. قد تختلف هذه التنسيقات عن الصور المصغرة العادية، ويعتمد دعمها على إعدادات مزود الخدمة. ابدأ بتقليل عدد الملفات المتزامنة واختبار مجموعة صغيرة من الملفات قبل تغيير مزود الخدمة أو إضافة خدمات جديدة.

إذا قمت بتغيير أبعاد المعاينة أو أنواع الملفات المدعومة، واحتجت إلى حذف المعاينات المخزنة مؤقتًا، فإن Nextcloud 31 والإصدارات الأحدث توفر occ preview:cleanupهذه الميزة، وفقًا لملف README الخاص بالمشروع. تقوم هذه الميزة بحذف جميع ملفات المعاينة المُنشأة، وبعد ذلك يقوم Nextcloud بإنشاء معاينات عند الطلب أثناء وصول المستخدمين إلى الملفات. قد يؤدي هذا إلى عودة ارتفاعات استهلاك وحدة المعالجة المركزية التي تحاول تقليلها مؤقتًا. لذا، يُنصح بأخذ نسخة احتياطية عند الحاجة، وجدولة عمليات التنظيف بشكل دوري، وتجنب حذف مجلد معاينة بيانات التطبيق يدويًا كجزء من عملية الضبط الروتينية. كما يوثق ملف README الخاص بمولد المعاينة .nomediaملفًا لتجاوز مجلد ومجلداته الفرعية عند الضرورة.

رمز المجلد والملف المخفي بجانب درع عليه قفل.
يظهر رمز المجلد ورمز الملف المخفي بجانب رمز الدرع والقفل، مما يوضح قيود التشفير وخيار تخطي مجلد.

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

المراجع الرسمية

اترك تعليقاً

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

قارن بين 10 أدوات مسح الشبكة المحلية (Ping) لاكتشاف الشبكات المحلية بسرعة، وإجراء مسح شامل للأنظمة الأساسية المختلفة، وإدارة عناوين IP. تعرّف على ما يمكن أن يكشفه لك المسح وما لا يمكنه كشفه.

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

قارن بين ست أدوات لإدارة الشبكة لمراقبة الأداء، بما في ذلك تغطية SNMP، ورسم الخرائط، والتنبيهات، ونماذج النشر، والمفاضلات المتعلقة بالتكلفة.

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

قارن بين أفضل برامج تحليل شبكة Wi-Fi لأنظمة Windows و iPhone و Android، بما في ذلك أدوات ازدحام القنوات وتغطية الإشارة والخرائط الحرارية واستكشاف أخطاء الشبكة وإصلاحها.

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

قارن بين سبعة برامج مراقبة زمن الاستجابة المجانية والمفتوحة المصدر، بدءًا من مجموعات الشبكة الكاملة وحتى مجسات زمن الاستجابة المركزة، واختر البرنامج المناسب من حيث التوافر وفقدان الحزم والسجل.

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

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

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

قم ببناء نظام مراقبة شبكة عملي مع تغطية واضحة للأجهزة، ومقاييس أداء مفيدة، وتنبيهات قابلة للتنفيذ، ومقارنة بين SolarWinds NPM وPRTG وOpManager.

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

قارن بين برامج خوادم SFTP الموثوقة لأنظمة ويندوز ولينكس، بما في ذلك OpenSSH وBitvise وSolarWinds وSFTPGo. اعثر على الخيار الأمثل الذي يلبي احتياجاتك الأمنية واحتياجات نقل الملفات.

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

قارن بين سبع أدوات لإدارة عناوين IP لاكتشاف الشبكات الفرعية، وتنسيق DNS وDHCP، وجرد الشبكة، وIPAM مفتوح المصدر.

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

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

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

استخدم خيار --traceroute في Nmap لرسم خرائط القفزات إلى مضيف مصرح به، وفهم مخرجات القفزة وRTT، واستكشاف الأخطاء وإصلاحها في الاستجابات المفقودة دون الإفراط في المسح.