الرئيسية
» مكتب MS
»
حل مشكلة نفاد ذاكرة خادم مستندات ONLYOFFICE على خادم افتراضي خاص (VPS)
حل مشكلة نفاد ذاكرة خادم مستندات ONLYOFFICE على خادم افتراضي خاص (VPS)
ابدأ بالتحقق مما إذا كان نظام التشغيل المضيف (Linux) أو حاوية ONLYOFFICE قد وصلا إلى الحد الأقصى للذاكرة. تشير إرشادات الإصدار المجتمعي الحالي من ONLYOFFICE Docs إلى أن 4 جيجابايت من ذاكرة الوصول العشوائي (RAM) و4 جيجابايت على الأقل من مساحة التبديل (swap) هي المتطلبات الأساسية. وتوضح صفحة استكشاف أخطاء Docker وإصلاحها أن استخدام 2-4 جيجابايت من ذاكرة الوصول العشوائي (RAM) قد يكون طبيعيًا لبضع عشرات من المستخدمين النشطين، لأن استخدام الذاكرة يزداد مع زيادة عدد المستندات المفتوحة والمستخدمين المتزامنين. يوصي جدول الأجهزة باستخدام Kubernetes لعمليات النشر التي تضم أكثر من 400 مستخدم نشط متزامن. هذه أرقام مرجعية، وليست ضمانًا بأن كل خادم افتراضي خاص (VPS) سيتعامل مع نفس الحمل: فنظام التشغيل المضيف، والحاويات الأخرى، وحجم المستند، وحدود مزود خدمة الخادم الافتراضي الخاص (VPS) لها أيضًا أهمية.
يركز هذا الدليل على تثبيت Docker الشائع على خادم افتراضي خاص (VPS) يعمل بنظام Linux. اتبع الخطوات الأربع بالترتيب: قياس ضغط المضيف والحاويات، والتحقق من السجلات وذاكرة التخزين المؤقت للملفات المنسية، وتقليل الحمل غير الضروري أو تصحيح سعة الحاويات المنخفضة جدًا، ثم إعادة التشغيل فقط عند الحاجة والتحقق من الأداء أثناء الاستخدام العادي. تستخدم أمثلة الأوامر <CONTAINER_ID>اسمًا افتراضيًا؛ استبدله بالمعرّف أو الاسم من docker ps. خذ نسخة احتياطية وجدول الصيانة قبل إيقاف محرر لديه مستخدمون نشطون.
1. تأكد من مكان حدوث ضغط الذاكرة
قم بتشغيل الأوامر الأولى على مضيف VPS، وليس داخل حاوية ONLYOFFICE:
free -h
swapon --show
docker stats --no-stream
free -hيعرض هذا الأمر ذاكرة المضيف المتاحة ومساحة التبديل. swapon --showويؤكد ما إذا كانت مساحة التبديل نشطة. في هذا الأمر docker stats، قارن استخدام الذاكرة لبرنامج ONLYOFFICE مع الحد المعروض له. إذا كانت ذاكرة المضيف المتاحة شبه معدومة، وكانت عدة خدمات تستخدم ذاكرة الوصول العشوائي (RAM)، فقد يكون حجم الخادم الافتراضي الخاص (VPS) غير كافٍ. أما إذا كان لدى المضيف مساحة كافية، ولكن حاوية ONLYOFFICE تقترب من حد أصغر بكثير، فقد يكون الحد الأقصى لحجم الحاوية هو السبب المباشر. يمكن أن تؤدي مساحة التبديل شبه الممتلئة، أو عمليات التبديل المستمرة، أو النشاط المكثف على القرص إلى بطء عملية التحرير حتى قبل أن يقوم المضيف بإنهاء أي عملية.
الخطوة 1: قم بتشغيل الأمر free -h و swapon --show على مضيف VPS لمعرفة ذاكرة الوصول العشوائي المتاحة وما إذا كان التبديل نشطًا.الخطوة 1: يقوم الأمر docker stats --no-stream بمقارنة استخدام الذاكرة الحالي لحاوية ONLYOFFICE مع حدها الأقصى.
يعرض الأمر الأول إعدادات الذاكرة وإعدادات الذاكرة والذاكرة بالإضافة إلى مساحة التبديل بالبايت. يشير حد الذاكرة الصفري عمومًا إلى عدم وجود حد أقصى مُحدد لذاكرة الحاوية، ولا يعني ذلك أن الخادم الافتراضي الخاص (VPS) لديه ذاكرة وصول عشوائي (RAM) غير محدودة. يُعد إعداد الذاكرة ومساحة التبديل في Docker حدًا أقصى مُدمجًا للذاكرة ومساحة التبديل، لذا لا تفسره على أنه مساحة التبديل فقط. يُبلغ الأمر الثاني عما إذا كان Docker قد سجل عملية إنهاء بسبب نفاد الذاكرة (OOM kill) للحاوية ورمز الخروج الأخير. يُوثق Docker هذه الحدود كضوابط يفرضها مُضيف Linux، وقد يؤثر ضغط نفاد الذاكرة على مستوى المُضيف على أكثر من حاوية واحدة.
2. تحقق من سجلات الحاوية وحالات الاستخدام العالي المعروفة في ONLYOFFICE
اقرأ السجلات الأخيرة قبل تغيير الإعدادات أو حذف الملفات:
docker logs --since 1h <CONTAINER_ID>
ابحث عن عمليات إعادة تشغيل متكررة، وأخطاء بدء تشغيل قاعدة البيانات، ورسائل تظهر قرب وقت توقف المحرر عن العمل. تحقق أيضًا من سجل نواة النظام المضيف بحثًا عن أحداث نفاد الذاكرة إذا كانت لديك الصلاحية.
تقترح صفحة استكشاف أخطاء Docker في ONLYOFFICE تحديدًا التحقق من وجود مستندات عالقة أو منسية /var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten/عندما يبدو استخدام الذاكرة مرتفعًا بشكل غير متوقع. ابدأ بفحص حجم المجلد ومحتوياته؛ ولا تقم بحذف ملفاته عشوائيًا، فقد تكون هذه الملفات ضرورية للاستعادة أو استكشاف الأخطاء وإصلاحها. إذا كان المجلد كبيرًا أو يستمر في النمو، فاحتفظ بالملفات والسجلات، ثم اتبع إرشادات استكشاف الأخطاء وإصلاحها الرسمية أو استشر دعم ONLYOFFICE لمعرفة ما إذا كان من الآمن حذف الملفات في إصدارك.
الخطوة 2: افحص سجلات الحاوية الأخيرة قبل تغيير الخادم الافتراضي الخاص أو حذف الملفات المخزنة مؤقتًا.
3. تقليل الطلب غير الضروري وتصحيح الحد الأقصى المنخفض جدًا لـ Docker
يُعرّف "المستخدم النشط" في إرشادات تحديد حجم موارد ONLYOFFICE بأنه أي شخص لديه مستند مفتوح في المحرر، بما في ذلك من يكتفي بمشاهدته فقط. أما المستخدمون الذين سجلوا دخولهم إلى منصة متكاملة دون فتح أي مستند، فلا يُحتسبون بنفس الطريقة. اطلب من المستخدمين إغلاق علامات تبويب المستندات غير المستخدمة، وتجنب جدولة عمليات تحرير مكثفة على خادم افتراضي صغير. إذا كان الحمل يتبع فتح عدة جداول بيانات كبيرة أو ملفات معقدة في آنٍ واحد، قارن استهلاك الذاكرة في أوقات انخفاض النشاط وعند ذروة الاستخدام الفعلية، بدلاً من الاعتماد على عدد الحسابات فقط.
إذا كانت خاصية التبديل (swap) معطلة في الخادم الافتراضي الخاص (VPS)، فإن إضافة ملف تبديل يمكن أن توفر حماية مؤقتة ضد أي زيادة مفاجئة في الاستخدام. يُشير دليل تثبيت Docker الحالي من ONLYOFFICE إلى ضرورة توفير 4 جيجابايت على الأقل من ملف التبديل، مع ملاحظة أن هذا الحجم يعتمد على نظام التشغيل المضيف. ملف التبديل مُخزّن على القرص وهو أبطأ بكثير من ذاكرة الوصول العشوائي (RAM)، لذا فهو ليس بديلاً عن الذاكرة الفعلية الكافية. قبل إنشاء ملف تبديل، تأكد من عدم وجود ملف تبديل مُسبقًا، وتحقق من وجود مساحة كافية على القرص، وتأكد من أن نظام الملفات ومزود خدمة الخادم الافتراضي الخاص يدعمان هذه الطريقة. على سبيل المثال، في نظام ملفات Linux نموذجي يدعم ملف التبديل:
لا تُنفّذ هذه الأوامر فوق ملف تبديل موجود /swapfile. للاحتفاظ بملف التبديل الذي تم إنشاؤه حديثًا بعد إعادة التشغيل، أضف إدخالًا مطابقًا واحدًا /etc/fstabفقط بعد التحقق من وجود إدخال موجود.
/swapfile none swap sw 0 0
إذا أظهر Docker حدًا منخفضًا لذاكرة الحاوية، فراجع ملف Compose أو لوحة النشر التي أنشأت الحاوية. قم بزيادة الحد أو إزالته فقط بعد التحقق من إجمالي ذاكرة الوصول العشوائي (RAM) للخادم الافتراضي الخاص (VPS) والذاكرة المستخدمة من قِبل نظام التشغيل وقاعدة البيانات ومنصة التكامل والخدمات الأخرى. لا تُخصص كل ذاكرة الوصول العشوائي (RAM) للمضيف لتطبيق ONLYOFFICE. إذا كان المضيف نفسه مُستنفدًا، فلن يؤدي تغيير حد Docker إلى إنشاء ذاكرة فعلية إضافية؛ قم بتغيير حجم الخادم الافتراضي الخاص (VPS) أو انقل الخدمات الأخرى إلى مضيف آخر. يدعم Compose حدود الذاكرة، ولكن يجب أن يتطابق الحد المُكوّن مع وضع النشر الفعلي وذاكرة المضيف المتاحة.
يُعدّ خادم افتراضي خاص (VPS) بسعة 2 جيجابايت، يعمل عليه برنامج ONLYOFFICE إلى جانب Nextcloud أو خدمات أخرى، أقل من الحد الأدنى المُعلن عنه من قِبل المورّد وهو 4 جيجابايت من ذاكرة الوصول العشوائي (RAM). كما قد يُعاني خادم VPS بسعة 4 جيجابايت من نقص في الذاكرة عند مشاركة نظام التشغيل المضيف وحزمة التكامل لها. في هذه الحالات، يُعدّ استخدام خادم VPS أكبر أو خادم مستندات مُخصّص أكثر موثوقية من إعادة تشغيل الحاوية بشكل مُتكرر. بالنسبة لأكثر من 400 مُستخدم نشط مُتزامن، يُوصي جدول ONLYOFFICE الحالي بنشر البرنامج على Kubernetes والتواصل مع ONLYOFFICE للحصول على نصائح حول حجم الموارد؛ فهذا ليس حملاً يُمكن حله بإضافة ملف تبديل صغير إلى خادم VPS واحد.
الخطوة 4: قبل إعادة تشغيل الحاوية المخطط لها، قم بتشغيل برنامج الإعداد الموثق الخاص بـ ONLYOFFICE حتى تتمكن جلسات التحرير النشطة من قطع الاتصال بشكل سليم.
4. أعد التشغيل بأمان، ثم تحقق من النتيجة
لا تقم بإعادة تشغيل خادم المستندات أثناء قيام المستخدمين بالتحرير إلا إذا كان الانقطاع حتميًا. توضح ONLYOFFICE أن المستند يُحفظ بعد إغلاقه من قِبل جميع المستخدمين الذين قاموا بتحريره. قبل إيقاف الحاوية المخطط له، يُوصي دليل استكشاف الأخطاء وإصلاحها بتنفيذ برنامج الإعداد الموضح أدناه؛ وقد يستغرق ذلك ما يصل إلى خمس دقائق أثناء فصل المستخدمين. قم بإبلاغ المستخدمين أولًا، واحتفظ بنسخ احتياطية، واتبع إجراءات الصيانة المعتادة.
إذا كنت تستخدم Docker Compose، فقم بإجراء التغيير الدائم في إعدادات Compose أو لوحة التحكم، واستخدم آلية إعادة التشغيل المعتادة للمشروع. قد يختفي أي تغيير لمرة واحدة على حاوية قيد التشغيل عند إعادة إنشائها. تجنب استخدام --oom-kill-disableأولوية نفاد الذاكرة (OOM priority) للحفاظ على تشغيل ONLYOFFICE؛ إذ يحذر Docker من أن استنفاد ذاكرة المضيف قد يعرض الخادم الافتراضي الخاص (VPS) والخدمات الأخرى للخطر.
بعد عودة الخادم الافتراضي الخاص أو الحاوية، تأكد من سلامة الحاوية، وأن المحرر يفتح ويحفظ مستندًا تجريبيًا، وأن ذاكرة المضيف متاحة، وأن الحاوية لا تُعاد تشغيلها بشكل متكرر. راقب ذاكرة كل من المضيف والحاوية خلال فترة انشغال نموذجية. إذا ازداد استهلاك الذاكرة باستمرار بعد إغلاق المستندات، أو ازداد حجم مجلد الملفات المنسية، أو عادت أحداث نفاد الذاكرة، فاجمع مخرجات أوامر `resources` free -hو` swapon --showresources` docker statsو` docker inspectresources` وسجلات النظام الحديثة لدعم ذلك. لا تعتبر إعادة تشغيل ناجحة واحدة دليلاً على ثبات سعة الذاكرة.
دليل اتخاذ القرار السريع
ما تلاحظه
الخطوة التالية الأكثر فائدة
نفدت ذاكرة الوصول العشوائي (RAM) الخاصة بالخادم، وتأثرت خدمات أخرى أيضًا.
قم بترقية الخادم الافتراضي الخاص أو نقل الخدمات غير المتعلقة بالتحرير. لا يمكن لإعدادات الحاوية إضافة ذاكرة وصول عشوائي (RAM) إلى المضيف.
لدى المضيف مساحة كافية، لكن برنامج ONLYOFFICE يصل إلى حد منخفض في Docker
راجع حدّ التأليف أو حدّ المزوّد وقم برفعه فقط ضمن المساحة الآمنة المتاحة للمضيف.
يزداد الاستخدام مع فتح المستندات ثم ينخفض عند إغلاقها
قارن ذلك بالتزامن المتوقع وأنواع المستندات؛ ضع في اعتبارك زيادة ذاكرة الوصول العشوائي (RAM) إذا تسببت الذروات العادية في نفاد الذاكرة.
لا يزال الاستخدام مرتفعًا بشكل غير معتاد بعد انخفاض النشاط
افحص السجلات الحديثة وذاكرة التخزين المؤقت للملفات المنسية الموثقة؛ واحتفظ بالبيانات وقم بالتحقيق قبل التنظيف.
أكثر من 400 مستخدم لديهم مستندات مفتوحة في نفس الوقت
استخدم مسار تحديد حجم المجموعة/Kubernetes الخاص بالبائع بدلاً من خادم افتراضي خاص صغير واحد.