Minecraft “Can't keep up! Is the server overloaded?”: كيف تصلح تأخر الخادم
يعني تحذير وحدة التحكم هذا أن الخادم لم ينهِ عمله في الوقت المحدد وتأخر. ظهوره أحيانًا لا يضر. أما إذا استمر في الظهور، فيشعر به اللاعبون على شكل rubber-banding وكائنات بطيئة وكتل تعود بعد كسرها. إليك كيف تجد السبب وتصلحه.
معنى التحذير
يعمل خادم Minecraft بمعدل 20 tick في الثانية، أي إن لكل tick مدة 50 جزءًا من الألف من الثانية. وعندما تستغرق الـ tick وقتًا أطول، يتأخر الخادم ويطبع مقدار التأخر، مثل “Running 2500ms or 50 ticks behind”. رقمان يخبرانك بمدى سلامة الخادم:
- TPS (عدد tick في الثانية): 20 مثالي. وتحت 18 يبدأ اللاعبون بالملاحظة.
- MSPT (أجزاء الألف من الثانية لكل tick): أقل من 50 يعني أن الخادم يواكب، وكلما قلّ الرقم زاد هامشك.
تحذير أو اثنان عند بدء الخادم، أو بعد تغيير كبير في العالم مباشرة، أمر طبيعي. أما التحذيرات المتكررة أثناء اللعب فليست كذلك.
1. قِس قبل أن تغيّر أي شيء
يتضمن Paper أداة spark. في وحدة التحكم، أو داخل اللعبة مع شرطة مائلة في البداية:
spark tps spark profiler start --timeout 600
spark tps يعرض TPS وMSPT. يعمل profiler لمدة 10 دقائق، ثم يعطيك رابطًا لتقرير يوضح أين يذهب وقت الـ tick: أي إضافة أو كيان أو توليد chunk أو redstone. على خادم vanilla، يعرض /tick query أزمنة الـ tick، كما تتوفر spark كتعديل لـ Fabric وForge.
2. ولّد العالم مسبقًا
توليد chunk جديدة من أثقل مهام الخادم، واللاعبون الذين يستكشفون بسرعة، مثلًا بأجنحة elytra، يولّدون الكثير منها. ولّد المنطقة التي سيستخدمها اللاعبون قبل أن يحتاجوها، باستخدام إضافة Chunky، ثم اضبط حدًا للعالم يطابقها:
chunky radius 5000 chunky start worldborder set 10000
شغّله عندما يكون الخادم هادئًا؛ فنصف القطر الكبير قد يستغرق ساعات.
3. خفّض مسافة الرؤية ومسافة المحاكاة
في server.properties، يحدد view-distance مدى رؤية اللاعبين، ويحدد simulation-distance المدى الذي يعمل فيه العالم فعلًا حولهم: تتحرك الكائنات وتنمو المحاصيل ويعمل redstone. خفض simulation-distance إلى 6 أو 8 يوفر الكثير من العمل، بينما يظل اللاعبون يرون بعيدًا.
4. تعامل مع الكيانات والمزارع
- مزارع الكائنات الكبيرة وحظائر الحيوانات. مئات الكيانات في مكان واحد سبب كلاسيكي. اتفقوا على حد أقصى للحيوانات لكل لاعب، وأزيلوا الفائض.
- العناصر الملقاة وكرات الخبرة. المزارع التي تُسقط عناصر لا يجمعها أحد تُبقي كيانات كثيرة حية.
- ساعات redstone والقمع. الساعات التي لا تتوقف أبدًا وسلاسل القمع الطويلة تعمل في كل tick. ويُظهر تقرير spark أيها يكلّف أكثر.
تحتوي إعدادات Paper على خيارات لدمج العناصر وتحديد الكيانات وضبط القمع. غيّر إعدادًا واحدًا في كل مرة وقِس مجددًا، لتعرف ما الذي ساعد.
5. تحقق من الإضافات والتعديلات
إذا أشار تقرير spark إلى إضافة، فحدّثها أولًا؛ فكثير من مشكلات التأخر مُصلحة في الإصدارات الأحدث. احذف الإضافات التي لا تستخدمها، واستبدل تلك التي تؤدي عملًا ثقيلًا في كل tick.
6. تحقق من الذاكرة والعتاد
- الذاكرة. عندما تكاد الذاكرة تمتلئ، يقضي الخادم وقته في جمع المهملات، ويُظهر تقرير spark التوقفات. أعطه قليلًا أكثر، أو اكتشف ما الذي يملؤها. راجع كم يحتاج خادم Minecraft من الذاكرة.
- المعالج. تعمل الحلقة الرئيسية للعبة على خيط واحد، لذا فإن نواة سريعة واحدة أهم من نوى بطيئة كثيرة. والمستضيف المشترك المثقل يسبب تأخرًا لا يصلحه أي إعداد.
- التخزين. تحميل الـ chunk وحفظها سريع على NVMe وبطيء على الأقراص الصلبة المزدحمة.
قائمة تحقق سريعة
- شغّل Paper أو Purpur بدلًا من خادم vanilla
- ولّد العالم مسبقًا واضبط حدًا له
- أبقِ simulation-distance معتدلًا
- افحص الأداء باستخدام spark قبل كل تغيير وبعده
- استخدم مستضيفًا بمعالج سريع للخيط الواحد وتخزين NVMe
اللاعبون الذين ينقطع اتصالهم بسبب timeout بينما الخادم يعاني من التأخر يحتاجون إلى هذا الدليل عن أخطاء الاتصال.
استضف خادم Minecraft في سنغافورة
ping منخفض للاعبين في الهند وماليزيا وإندونيسيا، على أنوية AMD EPYC سريعة مع NVMe وحماية من DDoS.
