[討論] 降低延遲與修復破損的世界【上】

看板Minecraft (當個創世神)作者 (凜光)時間13年前 (2012/01/19 21:16), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
以下改寫自: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

01/19 21:56, , 1F
快寫32位元(敲碗
01/19 21:56, 1F

01/19 21:57, , 2F
01/19 21:57, 2F

01/19 22:03, , 3F
水流和岩漿流耗的資源多嗎?
01/19 22:03, 3F

01/19 22:06, , 4F
更正"流動的"水流
01/19 22:06, 4F

01/19 22:11, , 5F
推 等待32位元版
01/19 22:11, 5F
※ 編輯: miau9202 來自: 122.127.122.196 (01/19 22:18)

01/19 23:24, , 6F
這些參數設置是要輸入在哪裡?
01/19 23:24, 6F

01/21 00:27, , 7F
01/21 00:27, 7F

01/21 00:27, , 8F
01/21 00:27, 8F
※ 編輯: miau9202 來自: 218.161.57.144 (02/01 22:34)
文章代碼(AID): #1F61UcVq (Minecraft)
文章代碼(AID): #1F61UcVq (Minecraft)