تشخيص تباطؤ خادم Minecraft و TPS منخفض

كيف تعمل Minecraft (ما الذي يسبب التأخير؟)

المفتاح لفهم سبب التباطؤ هو فهم كيفية عمل Minecraft. تعمل جميع برامج خادم ماين كرافت في مسألة مماثلة مع مشكلة رئيسية واحدة: لا توجد حدود متعددة الخيوط أو التوقيت لحلقة اللعبة الرئيسية. عندما يذهب الخادم إلى التشنج ، يتم تشغيله من خلال كل تحديث TileEntity وتحديث الكيان وتحديث الكتلة والأحداث والعمليات الأخرى حتى يتم ذلك. يحدث هذا كله على مؤشر ترابط واحد ، ولا يمكن أن تبدأ الحلقة التالية حتى انتهاء الحلقة الحالية. لن يتم تحديث العالم ، ولن يبدو أن اللاعبين يتحركون وسيتم تجميد الكيانات في مكانها. من الناحية المثالية ، يجب ألا تستغرق كل عرة أكثر من 50 مللي ثانية للحفاظ على 20 Tics في الثانية (TPS). يمكن أن يصل هذا إلى 55.55 مللي ثانية لـ 18 TPS مع الحد الأدنى من المشكلات. أي أقل من هذا وستبدأ في رؤية التأخر.

الأسباب النموذجية للتأخر

هناك العديد من الأشياء التي يمكن أن تسبب تأخرًا ، ولكن القليل منها سيكون السبب الأكثر شيوعًا لمعظم الخوادم.

  • استخدام الملف : أي مكون إضافي يقرأ باستمرار من ملفات المشغل ، خاصة في الأحداث مثل الحركة أو التلف أو التفاعل. من الأمثلة على ذلك بعض أعلام PVP أو الإضافات الوهجية التي ستتم قراءتها باستمرار من ملفات المشغل.
  • الملفات المسطحة كقاعدة بيانات : عندما يكون لديك مكونات إضافية تستخدم ملفات كبيرة لتتبع الكثير من البيانات التي تتكرر من خلال هذا الملف أو في الذاكرة اعتمادًا على كيفية تخزينها ، فستستغرق وقتًا طويلاً. تقوم العديد من المكونات الإضافية بذلك ولا تتخذ احتياطات ضد كيفية تأثير وقت المعالجة على الخوادم عند تضخيم قواعد البيانات. سترى هذا كثيرًا عند تحميل تكوينات MagicSpells كبيرة ، أو استخدام أنظمة الأذونات التي تستخدم YAML بدلاً من قاعدة بيانات مناسبة مثل PEX و GroupManager.
  • عمليات كثيرة جدًا : عندما ينتج مكون إضافي عددًا كبيرًا جدًا من الكيانات ، أو يحاول تنفيذ مهام معقدة في أحداث مثل الحركة ، ستبدأ في رؤية التأخير. حتى إذا استغرق كل تشغيل أقل من 1 مللي ثانية ، عند معالجة حدث 20 مرة في الثانية يصبح أسيًا. الإضافات التي يمكن أن تسبب هذا هي الإضافات العالمية للتحرير مثل VoxelSniper و WorldEdit ؛ أو ملحقات الحماية مثل مكافحة الغش والحماية العالمية.
  • تم تحميل الكثير من القطع : قطعة واحدة 16*16*256. قد لا يبدو هذا كثيرًا ، ولكن عند الضرب يعني ذلك أن هناك 65.536 كتلة لكل قطعة. يمكن لكل لاعب تحميل أكثر من 200 قطعة حوله ، بناءً على التكوين الخاص بك. هذا أعلى من 13107200 قطعة. هذا يستهلك الكثير من الذاكرة. أيضًا ، إذا كان 1٪ من هؤلاء هم TileEntities التي تم تحميلها 131،072 TileEntities التي تحتاج إلى تحديث كل تيك. التعديلات سيئة السمعة بسبب وجود أوقات معالجة بطيئة على TileEntities.
  • Cascading WorldGen : يحدث هذا عندما يقوم مكون إضافي أو mod بإنشاء هياكل خارج القطعة المعطاة. يؤدي ذلك إلى تحميل الجزء التالي ، وتوليده ثم تشغيله مرة أخرى مرة أخرى إذا بدأ أيضًا في تجاوز الهياكل إلى الجزء التالي. هذا تصميم سيء نيابة عن المبدعين ويجب إزالة أي مكون إضافي أو تعديل يقوم بذلك على الفور.
  • كيانات البلاط : انظر قسم LagGoggles أدناه.

عادةً ما يكون العثور على سبب التأخير إجراءً بسيطًا في الوقت الحاضر حيث تم تصميم معظم برامج خادم Minecraft باستخدام أدوات التنميط المضمنة.

تقارير توقيت Spigot / PaperSpigot

للحصول على تقرير مفصل عن التوقيت ، يمكنك استخدام الأمر متابعة.

/timings on

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

/timings paste

سيوفر لك هذا رابطًا إلى موقع ويب مع تحليل جيد للتقرير مع خيارات سهلة للتنقل عبر جميع البيانات التي تحصل عليها. يمكنك معرفة المزيد عن كيفية قراءتها في ويكي توقيت Spigot .

ستحتاج إلى إيقاف التوقيت بعد ذلك ، لأنك لا ترغب في انسداد البيانات غير المرغوب فيها في قراءتك التالية ، وتضيف التوقيتات وقتًا إضافيًا إلى التشنج.

/timings off

تقارير توقيت الإسفنج

للحصول على تقرير مفصل عن التوقيت ، يمكنك استخدام الأمر متابعة.

/sponge timings on

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

/sponge timings report

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

ستحتاج إلى إيقاف التوقيت بعد ذلك ، لأنك لا ترغب في انسداد البيانات غير المرغوب فيها في قراءتك التالية ، وتضيف التوقيتات وقتًا إضافيًا إلى التشنج.

/sponge timings off

يمكنك أيضًا إعادة ضبط التوقيتات.

/sponge timings reset

خطوات لتقليل التأخير

  • استخدم الحجج المناسبة لملف البرنامج النصي الخاص بك لتشغيل Minecraft. تعرف على المزيد حول وسيطات Java المناسبة هنا
  • استخدم LuckPerms أو مدير أذونات يستخدم قاعدة بيانات مناسبة بدلاً من ملف مسطح
  • تجنب استخدام اللوادر المجزأة تمامًا
  • قم بإزالة أي شيء يتسبب في حدوث تسلسل عالمي للجيل
  • حصر الإضافات المضادة للغش في عدم الإفراط في الحماس
  • تحديد مسافة العرض للاعبين في server.properties
  • تخلص من الغوغاء المعادين بعد فترة زمنية محددة
  • أعد تشغيل الخادم يوميًا لتنظيف التسريبات من Java
  • لا تقم أبدًا بإعادة تحميل الخادم ، فهذا يسبب تسربًا ومشكلات أخرى
  • استخدم إصدارات FastAsync من المكونات الإضافية مثل WorldEdit و VoxelSniper
  • حد من حجم عالمك حتى لا يتم إنشاء قطع جديدة باستمرار
  • حدد كمية الإضافات التي تستخدمها. لا يتم إنشاء جميع المكونات الإضافية بشكل جيد وكلما زاد عدد المشاكل التي ستواجهها

LagGoggles

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

اترك تعليقاً

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد