作者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
→ gcobc12632:快寫32位元(敲碗 01/19 21:56
推 zseineo:推 01/19 21:57
推 kaj1983:水流和岩漿流耗的資源多嗎? 01/19 22:03
→ miau9202:更正"流動的"水流 01/19 22:06
推 olys:推 等待32位元版 01/19 22:11
※ 編輯: miau9202 來自: 122.127.122.196 (01/19 22:18)
→ gcobc12632:這些參數設置是要輸入在哪裡? 01/19 23:24