تشخیص تاخیر سرور Minecraft و TPS پایین

چگونه Minecraft کار می کند (چه عواملی باعث تاخیر می شوند؟)

نکته اصلی درک آنچه باعث ایجاد تاخیر است ، درک چگونگی عملکرد Minecraft است. نرم افزار سرور Minecraft همه با یک مشکل اساسی در یک موضوع مشابه کار می کنند: هیچ محدودیتی برای چند حلقه یا زمان بندی برای حلقه بازی اصلی وجود ندارد. هنگامی که سرور به tic می رود ، تا زمانی که تمام شود ، از طریق هر بروزرسانی TileEntity ، به روزرسانی موجودیت ، به روزرسانی بلاک ، رویدادها و سایر فرآیندهای اجرا می شود. این همه در یک موضوع اتفاق می افتد ، و حلقه بعدی نمی تواند شروع شود تا جریان فعلی تمام شود. جهان به روز نمی شود ، بازیکنان به نظر نمی رسد حرکت کنند و اشخاص در جای خود منجمد شوند. در حالت ایده آل ، هر تیک برای حفظ 20 تیک در ثانیه (TPS) بیش از 50ms طول نمی کشد. برای 18 TPS با حداقل مشکلات می تواند 55.55ms باشد. پایین تر از این و شما شروع به دیدن تاخیر خواهید کرد.

علل معمولی تأخیر

موارد بسیاری وجود دارد که می تواند باعث تاخیر شود اما تعداد کمی از آنها احتمالاً مقصر اصلی سرورها هستند.

  • استفاده از پرونده : هر افزونه ای که به طور مداوم از پرونده های پخش کننده می خواند ، به خصوص در رویدادهایی مانند حرکت ، آسیب یا تعامل. چند نمونه می تواند برخی از پرچم های PVP یا افزونه های Glow باشد که به طور مداوم از پرونده های پخش کننده خوانده می شوند.
  • پرونده های مسطح به عنوان بانک اطلاعاتی : وقتی پلاگین هایی دارید که از پرونده های بزرگ استفاده می کنند تا تعداد زیادی از داده های تکرار شده از طریق آن فایل یا حافظه را ردیابی کنند ، بسته به نحوه ذخیره آن به مدت طولانی طول می کشد. بسیاری از افزونه ها این کار را انجام می دهند و اقدامات احتیاطی راجع به اینکه چگونه ، هنگامی که پایگاه داده ها پخته می شوند ، انجام نمی شود ، زمان پردازش روی تیک سرورها تأثیر می گذارد. در بارگیری پیکربندی های بزرگ MagicSpells یا استفاده از سیستم های مجوز که از YAML به جای یک پایگاه داده مناسب مانند PEX و GroupManager استفاده می کنند ، این امر را بسیار مشاهده خواهید کرد.
  • عملکرد بیش از حد : هنگامی که یک افزونه خیلی از ذات را ایجاد می کند ، یا سعی می کند کارهای پیچیده ای را روی رویدادهایی مانند حرکت انجام دهد ، شما شروع به دیدن تاخیر خواهید کرد. حتی اگر هر اجرا کمتر از 1ms طول بکشد ، هنگامی که شما یک رویداد را 20k بار در ثانیه پردازش می کنید ، نمایی محسوب می شود. افزونه هایی که می توانند این مسئله را ایجاد کنند پلاگین های ویرایش جهانی مانند VoxelSniper و WorldEdit هستند. یا پلاگین های محافظتی مانند Anti Cheats و World Protection.
  • تعداد زیادی تکه بارگذاری شده است : یک تکه است 16*16*256. این ممکن است خیلی زیاد به نظر نرسد اما وقتی ضرب شود این بدان معناست که در هر قطعه 65536 بلوک وجود دارد. بسته به تنظیمات شما ، هر بازیکن می تواند بیش از 200 قطعه بار در اطراف آنها داشته باشد. از 13،107،200 بلوک به سمت بالا است. این حافظه زیادی را به خود می گیرد. همچنین ، اگر حتی 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

با این کار می توانید پیوندی به وب سایت با تفسیر خوب گزارش با گزینه های آسان برای کشف تمام داده هایی که بدست می آورید ، فراهم کند. از آنجا که سیستم زمان بندی اسفنجی از Spigot مستقر نیست ، می توانید اطلاعات بیشتری در مورد نحوه خواندن این موارد در ویکی زمان بندی Spigot بیاموزید .

شما می خواهید زمان بندی ها را بعد از آن خاموش کنید ، زیرا نمی خواهید داده های ناخواسته خواندن بعدی خود را مسدود کنند ، و زمان بندی ها زمان اضافی را به تیک اضافه می کند.

/sponge timings off

همچنین می توانید زمانبندی ها را دوباره تنظیم کنید.

/sponge timings reset

مراحل کاهش تاخیر

  • برای راه اندازی Minecraft از آرگومان های مناسب برای فایل اسکریپت خود استفاده کنید. در اینجا با استدلالات مناسب جاوا بیشتر بیاموزید
  • از LuckPerms یا یک مدیر مجوز استفاده کنید که به جای یک فایل مسطح از یک پایگاه داده مناسب استفاده می کند
  • از لودرهای كاملاً اجتناب كنید
  • هر چیزی را که باعث ایجاد آبشار جهانی می شود حذف کنید
  • افزونه های ضد تقلب را محدود نکنید تا بیش از اندازه نشوند
  • فاصله مشاهده بازیکنان را در محدود کنید server.properties
  • پاک کردن اوباش خصمانه پس از یک دوره زمانی مشخص
  • روزانه سرور را مجدداً راه اندازی کنید تا نشتی ها از جاوا پاک شود
  • هرگز سرور را بارگیری نکنید ، این باعث نشت و مشکلات دیگر می شود
  • از نسخه های FastAsync افزونه هایی مانند WorldEdit و VoxelSniper استفاده کنید
  • اندازه دنیای خود را محدود کنید تا تکه های جدید به طور مداوم ایجاد نشوند
  • مقدار پلاگین هایی را که استفاده می کنید محدود کنید. همه افزونه ها به خوبی ساخته نشده اند و هرچه بیشتر مشکلات بیشتری داشته باشید می خواهید با آن روبرو شوید

LagGoggles

بخش بزرگی از تاخیر در سرورهای تغییر یافته از اشخاص کاشی ناشی می شود. اینها واحدهای ایجاد شده برای بلوکهایی هستند که برای پردازش عملکردها و وقایع بلاک استفاده می شوند. اگر این کار بیش از حد طولانی شود یا تعداد بسیار زیادی وجود داشته باشد ، می تواند باعث کاهش زمان TIC شود. راهی برای تجسم این مشکلات ، استفاده از یک مود به نام LagGoggles است. می توانید این مود را از CurseForce بارگیری کنید .

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.