تشخیص تاخیر سرور 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 بارگیری کنید .



Leave a Comment

ایجاد یک سرور Teamspeak 3 در اوبونتو 14 64 بیتی

ایجاد یک سرور Teamspeak 3 در اوبونتو 14 64 بیتی

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

چگونه می توان سرور 4 چپ 2 را در اوبونتو تنظیم کرد

چگونه می توان سرور 4 چپ 2 را در اوبونتو تنظیم کرد

در این آموزش می آموزید که چگونه یک سرور Left 4 Dead 2 را در Ubuntu تنظیم کنید. این راهنما روی سرور اوبونتو 15.10 آزمایش شده است. پیش نیازها به روزرسانی هفتم

نحوه نصب سرور Starbound در CentOS 7

نحوه نصب سرور Starbound در CentOS 7

با استفاده از یک سیستم متفاوت؟ در این آموزش ، Ill در مورد نحوه راه اندازی یک سرور Starbound در CentOS 7 توضیح می دهد. پیش نیازها: شما باید این بازی را روی خود داشته باشید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

به یکی دیگر از آموزش های Vultr خوش آمدید. در اینجا ، نحوه نصب و اجرای سرور SAMP را یاد خواهید گرفت. این راهنما برای CentOS 6 نوشته شده است. پیش نیازهای مورد نیاز شما

تنظیم سرور آنلاین Ragnarok در اوبونتو 14.04 x64

تنظیم سرور آنلاین Ragnarok در اوبونتو 14.04 x64

در این مقاله قصد داریم یک سرور آنلاین Ragnarok Online را در Ubuntu 14.04 x64 تنظیم کنیم. می توانید به عنوان root یا کاربر دارای امتیازات superuser وارد شوید. آی تی

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

مقدمه در این آموزش ، PufferPanel را در Vultr VPS ما نصب کنید. PufferPanel یک پانل کنترل با منبع آزاد و بصورت رایگان برای مدیریت شما است

نصب اسفنج و Minecraft Forge در Debian 9

نصب اسفنج و Minecraft Forge در Debian 9

با استفاده از یک سیستم متفاوت؟ اسفنج یک پروژه منبع باز است که قابلیت های سرورهای Minecraft را از طریق افزونه ها گسترش می دهد. همراه با برنامه تعدیل شده

نحوه نصب Unturned 2.2.5 در CentOS 6

نحوه نصب Unturned 2.2.5 در CentOS 6

در این راهنما یاد می گیرید که چگونه یک سرور Unturned 2.2.5 را روی Vultr VPS که در حال اجرا CentOS 6. است تنظیم کنید. توجه: این یک نسخه ویرایش شده از Unturned است که نمی باشد.

نحوه نصب سرور FiveM در اوبونتو 19.04

نحوه نصب سرور FiveM در اوبونتو 19.04

پیش نیازها: سیستم لینوکس در حال اجرا در اوبونتو 19.04 با حداقل 1 هسته پردازنده و 2 گیگ حافظه کاربر غیر ریشه در سیستم قبل از شروع کار برای اطمینان از شما

تنظیم Counter Strike: منبع در دبیان

تنظیم Counter Strike: منبع در دبیان

در این راهنما ، یک سرور بازی Counter Strike: Source را در Debian 7 تنظیم خواهیم کرد. این دستورات بر روی Debian 7 تست شده اند اما آنها همچنین باید o

نحوه راه اندازی سرور کلاسیک Tekkit در اوبونتو 16.10

نحوه راه اندازی سرور کلاسیک Tekkit در اوبونتو 16.10

با استفاده از یک سیستم متفاوت؟ Tekkit Classic چیست؟ Tekkit Classic یک بازی جدید برای بازی است که همه می دانند و دوست دارند. کنکوری این شامل برخی از نسخه است

نحوه نصب چند نفره SA-MP San Andreas در CentOS 7

نحوه نصب چند نفره SA-MP San Andreas در CentOS 7

در این آموزش نحوه تنظیم سرور SA-MP (San Andreas Multiplayer) در CentOS 7. را یاد خواهید گرفت.

نحوه نصب سرور Teamspeak 3 در 64 بیتی Ubuntu 16.04

نحوه نصب سرور Teamspeak 3 در 64 بیتی Ubuntu 16.04

با استفاده از یک سیستم متفاوت؟ مروری بر استفاده از Discord / Skype؟ از نداشتن کنترل کامل سرور خود خسته شده اید؟ یا شاید به دلیل عدم وجود باشد

نحوه نصب ARK Survival Evolution (ArkSE) در CentOS 7

نحوه نصب ARK Survival Evolution (ArkSE) در CentOS 7

در این آموزش ، به خوبی یاد بگیرید که چگونه یک سرور ARK Survival را در CentOS 7 تنظیم کنید. پیش نیاز ARK به مقدار زیادی حافظه نیاز دارد. توصیه می کنم از V استفاده کنید

نحوه نصب Counter-Strike: سرور تهاجمی جهانی در ویندوز

نحوه نصب Counter-Strike: سرور تهاجمی جهانی در ویندوز

مقدمه در این راهنما یاد می گیرید که چگونه یک سرور Counter-Strike: Global Offensive را روی ویندوز نصب کنید. پیش نیازها قبل از شروع ، شما

نحوه نصب Cuberite در سرور CentOS 6 یا 7

نحوه نصب Cuberite در سرور CentOS 6 یا 7

مقدمه Cuberite چیست؟ Cuberite یک اجرای سرور Minecraft با منبع باز و مقیاس پذیر است که با زبان C ++ نوشته شده است. این یک افزونه آسان برای استفاده دارد

سرور Counter-Strike: Global Offensive (CSGO) را روی Arch Linux تنظیم کنید

سرور Counter-Strike: Global Offensive (CSGO) را روی Arch Linux تنظیم کنید

در این آموزش نحوه تنظیم سرور Counter-Strike: Global Offensive در Arch Linux توضیح داده شده است. این آموزش فرض می کند که شما با یک استفاده استاندارد وارد سیستم شده اید

نحوه نصب سرور چپ چپ 4 در CentOS 7

نحوه نصب سرور چپ چپ 4 در CentOS 7

در این راهنما ، نحوه نصب و پیکربندی سرور L4D در CentOS 7. را توضیح می دهیم. نصب Left 4 Dead قبل از شروع کار ، باید مطمئن شویم که

نصب سرور رفلکس در ویندوز

نصب سرور رفلکس در ویندوز

مقدمه Reflex یک مسابقه رقابتی در حال پیشرفت و Arena FPS توسط Turbo Pixel Studios است. این آموزش نحوه تنظیم سرور Reflex خود را به شما نشان می دهد

نحوه نصب Unturned 2.2.5 در Debian 8

نحوه نصب Unturned 2.2.5 در Debian 8

در این راهنما یاد می گیرید که چگونه یک سرور Unturned 2.2.5 را روی Vultr VPS که Debian 8. نصب می شود ، تنظیم کنید. توجه: این یک نسخه ویرایش شده از Unturned است که نیست

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

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

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

نحوه نصب 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

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

نحوه نصب 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

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

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

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

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

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

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