Minecraft(我的世界)中文论坛

标题: Aikar: 调整JVM —— 非常有效的服务器启动参数

作者: 幻境雲達達    时间: 2019-5-22 08:13
标题: Aikar: 调整JVM —— 非常有效的服务器启动参数
本帖最后由 幻境雲達達 于 2021-2-4 21:24 编辑



Aikar: 调整JVM —— 非常有效的服务器启动参数

原文地址: https://aikar.co/category/minecraft/

介绍


要使用的Java启动参数

  1. java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar paperclip.jar
复制代码

推荐使用的服务器核心



推荐内存


更旧一代内存需求

如果您你的玩家数量很多且使用超过10GB的内存,并且看到旧一代延迟峰值,您可能需要调整以下内容:

参数详细说明

1. -Xms 和 -Xmx 相同,为什么?

2. UnlockExperimentalVMOptions :
3. TargetSurvivorRatio:

4. G1NewSize Percent:

5. G1MixedGCLiveThresholdPercent:

6. AlwaysPreTouch:

7. +DisableExplicitGC:

8.MaxGCPauseMillis=100:

9.+ParallelRefProcEnabled:

使用大内存分页

  1. -XX:+UseLargePagesInMetaspace
复制代码



作者: 森林蝙蝠    时间: 2019-5-22 08:36
这是spigot的东西,未必适用于forge/sponge和catserver。
作者: linbo10    时间: 2019-5-22 12:47
请问一下面板服可以不可以修改?使用
作者: 幻境雲達達    时间: 2019-5-22 13:28
linbo10 发表于 2019-5-22 12:47
请问一下面板服可以不可以修改?使用

部分面板有更改参数功能
作者: Freez!流年    时间: 2019-5-22 22:20
我修改启动参数后tps为-0.01 -0.03 -0.08 真的。。。。
核心版本为1.14.1的paperclip-37
作者: 幻境雲達達    时间: 2019-5-23 05:08
Freez!流年 发表于 2019-5-22 22:20
我修改启动参数后tps为-0.01 -0.03 -0.08 真的。。。。
核心版本为1.14.1的paperclip-37 ...

?????不会吧233

怎么会这样哦
作者: Freez!流年    时间: 2019-5-23 05:46
XJue_DaDa 发表于 2019-5-23 05:08
?????不会吧233

怎么会这样哦

就感觉有点奇怪。。。内存我给的6G-6G
作者: 寂    时间: 2019-5-24 13:17
我觉得,这篇文章既然是面对腐竹的,来教他们调整他的服务器的教程,
直接翻译的详细说明未免有些太硬核了,专业名词对于不专业的腐竹可能难以理解。
建议按照自己的理解,写成通俗易懂的白话解释,再把原文翻译折叠起来,或许更好一些。

作者: 幻境雲達達    时间: 2019-5-24 13:18
1582952890 发表于 2019-5-24 13:17
我觉得,这篇文章既然是面对腐竹来调整他的服务器的教程,
直接翻译的详细说明未免有些太硬核了,专业名词 ...

对于我来说难度真的大。。理解不了。。

只能这样硬翻译。。
作者: ysy960108    时间: 2019-5-26 21:28
森林蝙蝠 发表于 2019-5-22 08:36
这是spigot的东西,未必适用于forge/sponge和catserver。

Spigot,Sponge之类的服务端都是Java应用,任何Java应用都可以用到JVM优化。
作者: omysho    时间: 2019-6-23 02:40
有些翻译问题,估计是楼主对 JVM 不是很熟悉:

New Generation -> 新生代(实际上应该是 Young Generation,原作者也写错了)
Old Generation -> 老生代

这两个都是 JVM 术语,指的是 JVM 内存结构的区域,具体可以看下图:



可以看到,实际上原作者也搞错了,其实并没有什么 New Generation,而应该是 Young Generation

顺便解释一下 G1NewSize Percent 这个设置的意义:

在 G1 垃圾回收算法中,上面的 Young Generation 的大小是通过算法动态调整的,这个参数指定的是 Young Generation 的最小百分比。
默认值是 5%,那为什么要调高这个值呢?JVM 把内存分了很多部分,当 Young Generation 里面的一个块(比如 Eden)分配满了之后,会触发一次 Minor GC 进行垃圾回收,然后把没有回收掉的内存放到下一个内存区域。垃圾回收会重新调整内存,于是机器就会卡顿。而对于 MC 来说,动态变化的东西很多,很多对象的内存都不会持续很长时间,因此有很多内存都是处于 Young Generation 的。如果 Young Generation 的内存过小,那么就会频繁触发 GC,导致卡顿。因此,这里直接给 Young Generation 一半的空间,减少其 GC 频率。
作者: 幻境雲達達    时间: 2019-6-23 08:38
omysho 发表于 2019-6-23 02:40
有些翻译问题,估计是楼主对 JVM 不是很熟悉:

New Generation -> 新生代(实际上应该是 Young Generation ...

感谢,这方面确实不懂,强行翻译出来自己都觉得丢人。
作者: 26790top    时间: 2019-6-27 07:51
感谢分享,码住码住
作者: 索隆嘎嘎嘎    时间: 2019-6-27 08:08
感谢分享
作者: Xiao_FD    时间: 2019-6-28 23:13
呃呃呃呃呃呃呃呃呃呃呃呃 不懂

作者: addc123    时间: 2019-7-3 13:24
我想请问一下对于多模组服务器这种对服务器cpu要求本来就很高的,占用也一直很满可以使用这种优化形式来进行么,不行的话有没有其他的更好的办法,谢谢楼主大大
作者: wodewode    时间: 2019-7-7 16:09
用ParNewGC和这个一起更舒服
作者: 2313043769    时间: 2019-7-8 11:55
CMD一下就消失了
作者: 简简爱    时间: 2019-7-19 19:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 贺兰兰    时间: 2019-8-2 10:25
哒哒牛逼233333很不错的教程,表示以后开服参数都用这个
另外大内存分页那个可能会有腐竹听不懂是啥吧,大内存分页的意思应该是指大的虚拟内存
作者: kilito午夜    时间: 2019-11-10 01:16
好难懂 这些专业名词
作者: 小小周尼玛    时间: 2019-12-31 10:40
请问Linux可以直接用这个参数吗
作者: Minecraft小橙    时间: 2020-1-20 04:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 零落Y_    时间: 2020-2-7 19:18
使用上面参数后
我服务器cpu利用率100%  内存利用率100%然后........服务器没了

作者: 稳定c    时间: 2020-2-8 04:28
你这个代码。。。我服务器直接炸了。。。。
阿里云的2H4G,,居然开不起来。。
作者: Lonely丶独独    时间: 2020-2-10 22:36
感谢分享!
作者: lfm0719    时间: 2020-2-13 17:34

在脚本最后加入pause可以看到报错是什么
作者: lfm0719    时间: 2020-2-13 17:36
请问我用64GB的内存,24线程cpu,最佳参数有没有变化?
作者: fengmowanxiang    时间: 2020-2-17 06:56
使用率100% 真的没问题吗
作者: 武者、年    时间: 2020-2-23 15:16
非常有用!!鞋鞋
作者: 武曲    时间: 2020-3-1 11:24
各位腐竹注意了!java -Xms6G -Xmx6G 这个地方一定要改成自己服务器的使用内存范围内,最好是留出一点非服务器使用的空间;要不然服务器会直接崩溃!,实测4G使用内存使用Xms3G -Xmx3G的话会崩,建议在2G以下,就是2048M。
作者: Rhythm    时间: 2020-3-13 11:48
这种参数显然是不适用于官服和forge的
会频繁触发gc导致tps大幅度下降
作者: 1430704465    时间: 2020-3-16 21:06
Freez!流年 发表于 2019-5-23 05:46
就感觉有点奇怪。。。内存我给的6G-6G

CPU倒着跑了?!
作者: 猥琐的小王    时间: 2020-3-31 22:36
what ** this ????
作者: 抱枕丶蓝晨    时间: 2020-4-1 08:39
感谢楼主的java参数
作者: 虚伪的悲催    时间: 2020-4-5 01:38

我可能是少打了什么东西

作者: 晴天娃娃_    时间: 2020-4-10 13:55
请问cpu方面如何优化,我这边内存方面占用不到8/1,主要是cpu一核有难8核围观
作者: GS_LemonAngel    时间: 2020-4-14 23:42
我vps16G 内存分配12G
不知道为什么一开内存占用就100%。。
作者: 随随缘    时间: 2020-7-21 22:05
cat有用嘛
作者: CrazyPeanut    时间: 2020-7-25 01:39
-XX:ParallelGCThreads
大佬 我看到其他人帖子里面提到这个参数 但你帖子里面没有
是为什么呢 这个东西到底有用没
作者: 洲爸比    时间: 2020-11-9 14:15
MCBBS有你更精彩~
作者: wunaimzy    时间: 2020-11-27 00:32
谢谢楼主教程
作者: 不正经的取经人    时间: 2020-11-27 14:52
支持支持
作者: 阿莎蕊雅同学    时间: 2021-1-3 04:19
提示: 作者被禁止或删除 内容自动屏蔽