诊断Minecraft服务器延迟和低TPS

Minecraft的工作原理(导致延迟的原因是什么?)

了解导致延迟的原因的关键是了解Minecraft的工作方式。我的世界服务器软件都以类似的方式运行,但有一个关键问题:主游戏循环没有多线程或计时限制。当服务器转到tic时,它将运行每个TileEntity更新,实体更新,块更新,事件和其他过程,直到完成为止。所有这些都在一个线程上发生,并且下一个循环要等到当前线程完成后才能开始。世界不会更新,玩家不会出现移动,并且实体将被冻结在原地。理想情况下,每个tic的间隔应不超过50毫秒,以保持每秒20 Tics(TPS)。对于18 TPS,此问题可降至55.55毫秒,而问题最少。低于此值,您将开始看到滞后。

滞后的典型原因

有许多因素可能导致延迟,但其中一些是大多数服务器最有可能的罪魁祸首。

  • 文件使用率:任何不断从播放器文件读取的插件,尤其是在发生移动,损坏或交互等事件时。一些示例是一些PVP标志或Glow插件,这些插件将不断从播放器文件中读取。
  • 平面文件作为数据库:当您有使用大文件的插件来跟踪通过该文件或在内存中进行迭代的大量数据时,这取决于存储方式,这将需要很长时间。许多插件会这样做,并且不会对数据库precaution肿时如何处理时间会影响服务器tic采取预防措施。当加载大型MagicSpells配置或使用使用YAML而不是适当的数据库(例如PEX和GroupManager)的权限系统时,您会看到很多情况。
  • 太多操作:当插件产生太多实体,或尝试对诸如运动之类的事件执行复杂的任务时,您将开始看到滞后现象。即使每次运行时间少于1毫秒,当您每秒处理20k次事件时,事件也将成指数级。可能导致这种情况的插件是世界编辑插件,例如VoxelSniper和WorldEdit。或“反作弊”和“世界保护”之类的保护插件。
  • 加载的太多:一个块是16*16*256。这听起来可能并不多,但相乘意味着每个块有65,536个块。根据您的配置,每个播放器周围可以装载200个以上的块。那就是13,107,200块以上。这会占用大量内存。此外,即使其中的1%是TileEntities,即已加载的131,072个TileEntities也需要更新每个tic。Mods因在TileEntities上的处理时间较慢而臭名昭著。
  • 级联WorldGen:这是当插件或mod在给定的块之外生成结构时。如果它也开始使结构溢出到下一个块中,这将导致下一个块加载,生成,然后再次触发所有块。这对创建者来说是不好的设计,任何执行此操作的插件或模块都应立即删除。
  • 平铺实体:请参见下面的LagGoggles部分。

由于大多数Minecraft服务器软件都是使用包含的分析工具构建的,因此,如今发现延迟的原因通常是一个简单的过程。

Spigot / PaperSpigot的时间报告

要获取详细的时序报告,可以使用以下命令。

/timings on

您将需要等待几分钟,并在计时运行时让它滞后。一段时间后,生成报告。

/timings paste

这将为您提供一个指向网站的链接,其中包含报告的详细分类,并提供简单的选项来筛选您所获取的所有数据。您可以在Spigot的计时Wiki上了解有关如何阅读这些内容的更多信息。

之后,您将需要关闭计时,因为您不希望垃圾数据阻塞您的下一次阅读,而计时会增加抽查的时间。

/timings off

海绵计时报告

要获取详细的时序报告,可以使用以下命令。

/sponge timings on

您将需要等待几分钟,并在计时运行时让它滞后。一段时间后,生成报告。

/sponge timings report

这将为您提供一个指向网站的链接,其中包含报告的详细分类,并提供简单的选项来筛选您所获取的所有数据。由于Sponge的计时系统是基于Spigot的,因此您可以在Spigot的计时Wiki上了解更多有关如何阅读这些信息的信息。

之后,您将需要关闭计时,因为您不希望垃圾数据阻塞您的下一次阅读,而计时会增加抽查的时间。

/sponge timings off

您还可以重置计时。

/sponge timings reset

减少滞后的步骤

  • 为脚本文件使用适当的参数以启动Minecraft。在此处了解有关适当的Java参数的更多信息
  • 使用LuckPerms或使用适当数据库而不是平面文件的权限管理器
  • 完全避免块加载器
  • 删除所有导致级联世界生成的内容
  • 限制Anti Cheat插件不要过分热心
  • 限制玩家的观看距离 server.properties
  • 在设定的时间段后清除敌对生物
  • 每天重新启动服务器以清理Java泄漏
  • 切勿重新加载服务器,这会导致泄漏和其他问题
  • 使用FastAsync版本的插件,例如WorldEdit和VoxelSniper
  • 限制您的世界的大小,以便不会不断创建新的块
  • 限制您使用的插件数量。并非所有插件都构建良好,并且您拥有的插件越多,您将遇到的问题就越多

护目镜

改装服务器上的大部分滞后来自图块实体。这些是为块创建的实体,用于处理块的功能和事件。如果这些花费的时间太长或太多,则可能会增加每次抽查的时间,从而降低整个服务器的TPS。可视化这些问题的一种方法是使用称为LagGoggles的mod。您可以从CurseForce下载此mod 。



Leave a Comment

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

如何在Ubuntu 16.04上安装Unturned 2.2.5

如何在Ubuntu 16.04上安装Unturned 2.2.5

使用其他系统?简介在本指南中,您将学习如何在运行Ubuntu 16.04的Vultr VPS上设置Unturned 2.2.5服务器。注意:锡

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

Ubuntu上的反恐精英全球攻势服务器启动器

Ubuntu上的反恐精英全球攻势服务器启动器

那些拥有专门的CS:GO(反恐精英:全球攻势)经验的人都知道,使用命令行界面进行管理的过程

设置Garrys Mod服务器

设置Garrys Mod服务器

这些说明是为32位Ubuntu 14.04设计的,但在所有版本的Ubuntu上均应适用。本教程将教您如何制作Garrys Mod游戏

如何在Minecraft中修复腐败的世界

如何在Minecraft中修复腐败的世界

有时,《我的世界》中的世界可能会崩溃。本文介绍了如何修复破碎的世界。不幸的是,腐败的世界无法修复

CentOS 6上的Multicraft(Minecraft面板)

CentOS 6上的Multicraft(Minecraft面板)

Multicraft面板Multicraft是用于Minecraft服务器的简单,易于使用的基于Web的控制面板。您可以创建,停止,启动,监视,配置,上传

在Windows上安装Reflex Server

在Windows上安装Reflex Server

简介Reflex是Turbo Pixel Studios推出的具有竞争力的竞技场FPS。本教程将向您展示如何在以下服务器上设置自己的Reflex服务器

如何在Debian 8上安装Unturned 2.2.5

如何在Debian 8上安装Unturned 2.2.5

在本指南中,您将学习如何在运行Debian 8的Vultr VPS上设置Unturned 2.2.5服务器。注意:这是Unturned的编辑版本,不会

设置反恐精英:Debian的全球攻势

设置反恐精英:Debian的全球攻势

在本指南中,我们将在Debian 7上设置《反恐精英:全球攻势》游戏服务器。这些命令已经在Debian 7上进行了测试,但应该也可以

如何在CentOS 6服务器上安装Forge和Sponge(Minecraft)

如何在CentOS 6服务器上安装Forge和Sponge(Minecraft)

使用其他系统?在本文中,我们将介绍安装Sponge(一种Minecraft服务器)的过程。海绵是一个旨在

如何安装反恐精英:CentOS 7上的全球攻势

如何安装反恐精英:CentOS 7上的全球攻势

在本教程中,我将介绍如何设置“反恐精英:全球攻势”服务器。本指南中的步骤是针对CentOS 7编写的。

如何在Ubuntu上安装Killing Floor Server

如何在Ubuntu上安装Killing Floor Server

在本教程中,您将学习如何设置自己的Killing Floor服务器。这些命令是为Ubuntu编写的,但可能会被其他Linu采用

在Ubuntu 14.10上安装McMyAdmin

在Ubuntu 14.10上安装McMyAdmin

McMyAdmin是用于管理服务器的Minecraft服务器控制面板。尽管McMyAdmin是免费的,但有多个版本,其中一些是pai

Linux上具有TShock的Terraria服务器

Linux上具有TShock的Terraria服务器

Terraria是基于采矿,建筑和战斗的MMORPG。有人说它是Minecraft的2D版本,但这对Terraria来说是不公平的

如何在CentOS 6/7上安装Tekkit Classic服务器

如何在CentOS 6/7上安装Tekkit Classic服务器

使用其他系统?在本教程中,很高兴创建Tekkit Classic服务器。Tekkit是为Minecraft制造的另一种流行的modpack。由于阿蒙

在CentOS 6上创建Dota 2服务器

在CentOS 6上创建Dota 2服务器

在本文中,我们将创建Dota 2服务器。Dota是Steam背后的Valve公司发行的免费多人游戏。提醒一下,

如何在Windows上安装Multicraft

如何在Windows上安装Multicraft

简介Multicraft是一个Minecraft服务器管理控制面板,用于管理您的Minecraft服务器。在本教程中,我们将安装

如何在Linux上未安装

如何在Linux上未安装

使用其他系统?简介在本指南中,您将学习如何在Linux上设置和安装Unturned服务器。幸免于难

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。