作者miau9202 (凛光)
看板Minecraft
标题[讨论] 降低延迟与修复破损的世界【上】
时间Thu Jan 19 21:16:17 2012
以下改写自:
http://goo.gl/uwkq3
本次的教学注重如何降低、修正延迟的问题,并减少"Can't keep up!"的警告讯息。
这次的教学适用於CraftBukkit跟官方Vanilla伺服器
但本教学不会改善玩家电脑的Lag以及网路延迟
同时我也会解释如何修复破损的世界
‧调整Java的启动参数,以便进行适当的垃圾回收(记忆体管理)
以下适用
64位元的JAVA:(
32位元的另写补述)
java
-Xmx1024M -XX:ParallelGCThreads=4 -server -Xincgc
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing
-XX:+AggressiveOpts -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC
-XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90
-XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -Xnoclassgc -XX:UseSSE=3
-XX:PermSize=128m -XX:LargePageSizeInBytes=4m -jar
craftbukkit-0.0.1-SNAPSHOT.jar nogui
(以上皆是同一行,请勿断行)
这条指令需要依你的电脑更改:
1.【分配的记忆体大小】
看到
-Xmx1024M 这部分
分配1G的记忆体则填入 -Xmx1024M。(或-Xmx1G)
如果要分配更多记忆体给伺服器,比如说2.5G就是 -Xmx2560M
但如果你是64位元的系统,你可以指定大於4G的记忆体。
2.【垃圾回收的线程(核心数)】
看到
-XX:ParallelGCThreads=4 这部分
如果你是双核心,这部分就不用动了
如果你是4核心,把4改成8,比如-XX:ParallelGCThreads=8
3.
craftbukkit-0.0.1-SNAPSHOT.jar请改成你实际的档名。
‧你应该清除世界里没用的东西。
使用WorldGuard + WorldEdit 然後输入
/butcher
/remove drops -1
/remove arrows -1
(如果你有装MultiWorld,请在每一个世界都输入上述指令)
‧不要使用太多插件。
我认为最多50个插件就是极限了。
不要双开相同功能的插件(像是Permissions 跟 GroupManager)
而且不要安装用不到的插件。
【编按:重点】你也不应该使用写得很差的插件。
(写得很差的像是Essetials,试着暂时移除Essetials。
如果真的因此降低LAG,那你可以考虑改用 CommandBook 来取代 Essentials。)
【编按:替代插件的部分会另写新文章】
‧过多流动的水流与岩浆流是相当浪费资源的。
如果你断线时得到overflow的讯息,那你肯定有这个问题。
当你邻近一个区域并开始LAG或断线,
你可以使用 WorldEdit的 /removenear movingwater 90 跟 /removenear water 90
来解决这个问题。
‧范围性的火焰(特别是一整片森林发生大火灾)会导致不小的LAG。
这问题在Java 6并不明显,若要移除火焰,
靠近火焰并使用WorldEdit的 /ex 指令,火焰就会熄灭。
‧安装Java 7。 http://goo.gl/0tHct
下载请选JRE,并记得点agree才能下载
安装Java 7之前,请确定你已经移除其他版本的Java。
‧去弄个伺服器作业系统像是CentOS或Ubuntu。
Windows及Mac OS X都不是很好的伺服器作业系统。
【编按:个人不反对用Mac OS X。】
【补充:启动指令解释】
java =
告诉作业系统我要启动Java
-Xmx1024M =
告诉Java使用记忆体不要超过1G
-XXarallelGCThreads=8 =
告诉Java用8条线程同时进行垃圾回收,而不是暂停伺服器来做垃圾回收。
-server =
告诉Java以伺服器模式执行(64位元限定,或使用32位的JDK)
-Xincgc =
告诉程式使用小一些或刚好所需的记忆体,并不要超过-Xmx的设定。
-Xnoclassgc =
告诉Java保留记忆体内所有.jar的class。
-jar craftbukkit-0.0.1-SNAPSHOT.jar =
告诉Java执行一个叫做 craftbukkit-0.0.1-SNAPSHOT.jar 的jar档
nogui =
告诉 craftbukkit 不要启动图形介面
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.127.122.196
1F:→ gcobc12632:快写32位元(敲碗 01/19 21:56
2F:推 zseineo:推 01/19 21:57
3F:推 kaj1983:水流和岩浆流耗的资源多吗? 01/19 22:03
4F:→ miau9202:更正"流动的"水流 01/19 22:06
5F:推 olys:推 等待32位元版 01/19 22:11
※ 编辑: miau9202 来自: 122.127.122.196 (01/19 22:18)
6F:→ gcobc12632:这些参数设置是要输入在哪里? 01/19 23:24
※ 编辑: miau9202 来自: 218.161.57.144 (02/01 22:34)