From b1ccbc625a74b7ede621de646e24ed07f2d8c884 Mon Sep 17 00:00:00 2001 From: Missing_Love <0xwymx0@gmail.com> Date: Mon, 14 Oct 2024 06:50:24 +0800 Subject: [PATCH] Merge branch 'PaperMC:master' into master --- README_ZH_CN.md | 52 +++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/README_ZH_CN.md b/README_ZH_CN.md index b9ab22f34..0248d6593 100644 --- a/README_ZH_CN.md +++ b/README_ZH_CN.md @@ -6,54 +6,60 @@ ## 概述 -Folia将附近加载的区块分组,形成一个“独立区域” -参见 [PaperMC文档](https://docs.papermc.io/folia/reference/region-logic) 有关Folia的详细信息 -将对附近的区块进行分组,每个独立的区域都有自己的tick循环 -,在常规的Minecraft tickrate(20TPS)中勾选。 -执行tick循环,常规的Minecraft tickrate(20TPS)。 -执行tick循环 并行地在线程池上。 -不再有主线,因为每个区域实际上都有自己的“主线程”执行整个tick循环。 +Folia将附近加载的块分组,形成一个“独立区域”。请参阅[PaperMC文档](https://docs.papermc.io/folia/reference/region-logic)了解Folia将如何对附近的块进行分组的确切细节。 +每个独立区域都有自己的tick循环,在常规的Minecraft(20TPS)中tick。 -未来Folia不会合并到Paper,这是个私人项目 -当初Starlight项目好像也是这么说的,最后还不是屈服于Paper的神威( +tick循环在线程池上并行执行。 + +服务端不再有主线程,因为每个区域实际上都有自己的“主线程”来执行整个tick循环。 + +Spottedleaf说未来Folia不会合并到Paper,这是个私人项目,当初Starlight项目好像也是这么说的,最后还不是屈服于PaperMC的神威( 更详细但抽象的概述: [项目概述](https://docs.papermc.io/folia/reference/overview). ## 问答 ### 哪些服务器类型可以从Folia中获益? -玩家数量多且自然分散的服务器类型 -比如王国或者城镇,空岛类和多人生存类服务器 +玩家数量多且自然分散的服务器类型,比如王国或者城镇,空岛类和多人生存类服务器 ### Folia在什么硬件上运行得最好? -Folia对主频需求不是很高。最好16个核心以上(注意是核心,不是线程) 像EPYC或者志强系列都可以很好的运行上百人的服务器 +Folia对主频需求不是很高。最好16个核心以上(注意是核心,不是线程)每个核心应不低于3.5Ghz主频,像EPYC或者志强系列的大多数CPU都可以很好的运行上百人的服务器 ### 如何最好地配置Folia? 建议预先生成世界,这样所需的区块系统工作的线程数量会大大减少。 -以下是基于第一次EOYC测试的粗略估计在Folia在测试服务器上发布之前只有330名玩家,所以他并不准确 +以下是基于第一次EPYC 7713测试的粗略估计在Folia在测试服务器上发布之前只有330名玩家,所以他并不准确 [数据来源](https://paper-chan.moe/folia/#records). + +第二次基于7950x3d的测试结果粗略估计500人整体可以稳定在TPS19以上大多数区域可以稳定在20 [数据来源](https://cubxity.dev/blog/folia-test-june-2023). -第二次基于7950x3d测试结果500人整体的可以稳定在TPS19以上大多数区域可以稳定在20 +在1000人的时候TPS大多在15左右但是服务端进行了多项调优改动,因此不应该作为参考。 + +PS:以上的测试环境为玩家分散到每个区块分组的测试结果 应考虑机器上可用的物理核心总数(非超线程),然后为以下对象分配线程: --网络IO:每4个线程约200-300名玩家 --区块系统IO:每3个线程约200-300名玩家 --区块系统IO工人预先生成:每2个线程200-300名玩家 + +- 网络IO:每4个线程约200-300名玩家(spigot.yml文件settings: netty-threads: 4) + +- 区块系统IO:每3个线程约200-300名玩家(paper-global.yml文件chunk-system: io-threads: 3) + +- 区块系统读写IO(预先生成):每2个线程200-300名玩家(paper-global.yml文件chunk-system: worker-threads: 2) + 如果不是预先生成的,那么区块系统工作就没有很好的预测,因为在我们运行300人的测试服务器上,分配了16个线程,但区块生成仍然很慢。 --GC设置:????但是,GC设置_do_分配并发线程,您需要确切知道有多少个。这通常是通过`-XX:ConcGCThreads=n`标志实现的。 -不要将此标志与“-XX:AParallelGCThreads=n”混淆,因为并行GC线程仅在GC暂停应用程序时运行,因此不应被考虑在内。 -在所有这些全部分配完成之后,服务端的分配资源应该不超过系统的80%(分配的线程总数<可用cpu的80%),可以分配给tickthreads(在全局配置下,threaded regions.threads)。 -你不应该分配超过80%的物理核心的原因是,插件甚至服务器可能会使用这些额外线程用来计算其他服务。 +- GC设置:????但是,GC设置确实会分配并发线程,您需要确切地知道有多少个。 + +这通常是通过`-XX:ConcGCThreads=n`标志实现的,不要将此标志与`-XX:AParallelGCThreads=n`混淆,因为并行GC线程仅在GC暂停应用程序时运行,因此不应被考虑在内。 + +你不应该分配超过80%的物理核心的原因是,插件甚至系统可能会使用这些额外线程用来计算其他服务。 以上都是基于玩家数量的粗略猜测,但线程分配很可能并不理想,您需要根据最终看到的线程使用情况对其进行调整。 ## 插件兼容性 现有的每个插件都需要进行一定程度的修改才能在Folia中运行。 -此外,任何类型的多线程都会在插件保存的数据中引入可能的竞争条件,因此,必然需要进行更改。 +此外,任何类型的多线程都会在插件保存的数据中引入可能的资源竞争,因此,必然需要进行更改。 -如果你在寻找能够兼容Folia的插件那么我这里有一份兼容性列表 +如果你在寻找能够兼容Folia的插件那么我这里有几份兼容性列表 [folia-plugins](https://github.com/BlockhostOfficial/folia-plugins) [modrinth](https://modrinth.com/plugins?g=categories:%27folia%27&g=categories:folia)