我的世界服務(wù)器如何優(yōu)化?有些玩家自己搭建私服玩耍,但是由于不專業(yè)所以服務(wù)器創(chuàng)建的并不會(huì)。下面小編為大家?guī)?lái)了我的世界服務(wù)器優(yōu)化教程,看完相信大家都能更好的搭建自己的服務(wù)器哦!
系統(tǒng)的選擇
(網(wǎng)頁(yè)后臺(tái)可以跳過(guò)本段)關(guān)于系統(tǒng)的選擇,Linux類系統(tǒng)(Centos、Redhat等)固然高效、穩(wěn)定,但選擇系統(tǒng)也一定要考慮到自己的熟悉程度和學(xué)習(xí)能力。不要盲目為了高效而選擇一個(gè)自己完全不熟悉甚至從未使用過(guò)的系統(tǒng),一旦出現(xiàn)了突發(fā)情況,原本只需要幾分鐘解決的問(wèn)題由于不熟悉系統(tǒng)的操作用幾個(gè)小時(shí)來(lái)解決,這樣真的合適么?在內(nèi)存足夠使用的情況下,Windows和Linux開(kāi)服的性能差距幾乎可以忽略。但是如果你熟悉Linux的操作,我依然會(huì)推薦你使用Linux系統(tǒng),畢竟大服需要的Mysql、Redis在Linux下的性能往往高過(guò)Windows不少。如果你有較強(qiáng)的學(xué)習(xí)能力,打算入坑Linux開(kāi)服,我會(huì)推薦你使用Centos6.6(穩(wěn)定性突出、可靠性不俗、大量教程和文檔)。
JVM版本的選擇
(網(wǎng)頁(yè)后臺(tái)可以跳過(guò)本段)JVM(Java Virtual Machine)也就是Java虛擬機(jī),俗稱Java運(yùn)行環(huán)境。關(guān)于選擇JRE還是JDK的選擇,我推薦使用JDK,JDK包括運(yùn)行環(huán)境(JRE),在此基礎(chǔ)上增加了一些性能調(diào)優(yōu)工具如VisualVM。而JVM的版本,非常不推薦使用Java6,因?yàn)橛胁簧俨寮呀?jīng)放棄了Java6的支持。Java7和Java8則是不錯(cuò)的選擇,如果不是模組服務(wù)器,推薦使用Java8,Java8相比Java7主要的性能提升便在于HashMap上,而無(wú)論Minecraft服務(wù)端本身還是插件都大量使用了HashMap。所以對(duì)于Minecraft服務(wù)器來(lái)說(shuō),使用Java8帶來(lái)的性能提升還是比較可觀的。
服務(wù)端的選擇
從服務(wù)端的選擇開(kāi)始就注定了性能優(yōu)劣的起步水平,現(xiàn)在依然有不少人認(rèn)為CraftBukkit(水桶服)的兼容性、穩(wěn)定性要遠(yuǎn)遠(yuǎn)好于Spigot(水龍頭)。然而這是一個(gè)誤區(qū),Spigot是在CraftBukkit基礎(chǔ)上優(yōu)化而來(lái)的,幾乎100%兼容原有的插件API,所以可以認(rèn)為只要同版本水桶服能用的插件就可以在Spigot上運(yùn)行。如果你選擇使用1.7.10以下的版本開(kāi)服(純凈服),強(qiáng)烈推薦你使用Spigot服務(wù)端,Spigot相比水桶服擁有近百項(xiàng)的優(yōu)化,例如異步加載、讀取區(qū)塊,限制實(shí)體的活動(dòng)范圍,修復(fù)一些內(nèi)存泄露的問(wèn)題等等。所以同版本下可以很容易感受到Spigot有著更出色的性能和更低的內(nèi)存占用。如果你開(kāi)服的版本在1.8+,我會(huì)推薦你使用PaperSpigot服務(wù)端,這款服務(wù)端是在Spigot基礎(chǔ)上優(yōu)化而來(lái)的,相比Spigot有著顯著的性能提升(Tiles幾乎不再消耗CPU時(shí)間,爆炸算法優(yōu)化,紅石不再卡服,流水算法優(yōu)化,區(qū)塊壓縮節(jié)約內(nèi)存,優(yōu)化Spigot自帶的Anti X-ray等等),并且有許多可自定義項(xiàng)目(船損壞依然掉落船,各種地形生成的開(kāi)關(guān)等等)。在最后需要提醒的是,如果沒(méi)有特殊原因,建議使用最新版本的服務(wù)端,最新版本的服務(wù)端往往修復(fù)了目前已知的絕大多數(shù)BUG和有著更多的性能提升。例如目前的1.8.8版本就比1.8.7多修復(fù)了數(shù)個(gè)可以卡服、蹦服的BUG(利用旗幟樣式堆疊卡服等)。
* PaperSpigot 服務(wù)端已經(jīng)整理到網(wǎng)盤:點(diǎn)擊進(jìn)入
啟動(dòng)腳本
(網(wǎng)頁(yè)后臺(tái)可以跳過(guò)本段)越多的啟動(dòng)參數(shù)反而導(dǎo)致越多的性能損耗。在不了解JVM工作原理的情況下,不要隨隨便便增加一大堆無(wú)用的啟動(dòng)參數(shù)。一般情況下指定最小內(nèi)存、最大內(nèi)存即可,Java7還需要指定一個(gè)大于等于128MB的MaxPermSize。GC回收模式等等參數(shù)都應(yīng)該由JVM自動(dòng)選擇,例如國(guó)外論壇流傳的使用G1GC可以優(yōu)化MC性能,的確,G1GC減少了Full GC的時(shí)間,但是會(huì)額外增加10%~30%的CPU時(shí)間占用,完全得不償失。還有流傳很廣的設(shè)置MaxGCPauseMillis參數(shù)。這個(gè)參數(shù)的含義是控制GC垃圾回收的最大時(shí)間。設(shè)置一個(gè)很小的數(shù)值的確從表面來(lái)看服務(wù)器沒(méi)有瞬卡的問(wèn)題了,但是這樣會(huì)導(dǎo)致每次垃圾回收都不夠深入和全面,這樣的結(jié)果就是服務(wù)端運(yùn)行時(shí)間越久越卡,而且很可能出現(xiàn)OOM(內(nèi)存不夠了)直接蹦服。
例如Java7的開(kāi)服參數(shù)可以是(大型插件非常多,MaxPermSize可以設(shè)置得更高):
-Xms最小內(nèi)存 -Xmx最大內(nèi)存 -XX:MaxPermSize=128M -XX:+AggressiveOpts -XX:+UseCompressedOops
Java8的參數(shù)可以是:
-Xms最小內(nèi)存 -Xmx最大內(nèi)存 -XX:+AggressiveOpts -XX:+UseCompressedOops
* -XX:+AggressiveOpts的含義是盡可能的使用更多對(duì)性能有幫助的優(yōu)化功能
* -XX:+UseCompressedOops的含義是指針壓縮,可以減少一定的內(nèi)存占用(64位才支持)
參數(shù)的優(yōu)化
不要小瞧參數(shù)的修改帶來(lái)的優(yōu)化空間,有時(shí)候只修改一個(gè)參數(shù),就是在線100人TPS19和TPS16的差距。參數(shù)的調(diào)整分別為server.properties(原版服務(wù)器就有),bukkit.yml(水桶服或者衍生版就有),spigot.yml(Spigot或者衍生版就有),paper.yml(PaperSpigot才有)。
* 其中對(duì)性能有顯著影響的前面為紅色的星號(hào),有中等程度影響的為藍(lán)色的星號(hào),沒(méi)有顏色的星號(hào)是建議設(shè)置項(xiàng)
server.properties中可以優(yōu)化性能的參數(shù):
* view-distance,視距,默認(rèn)值是10。含義是玩家的視距也就是加載的區(qū)塊范圍,默認(rèn)是10個(gè)區(qū)塊,視距10加載的區(qū)塊是視距5的四倍。加載更多的區(qū)塊則需要更多的內(nèi)存和運(yùn)算能力。推薦將這個(gè)值設(shè)置在5或者6,如果在線人數(shù)非常多可以設(shè)置為4。降低視距可以有效減少內(nèi)存的占用,也能有效提高TPS,還可以減少寬帶的使用量。這個(gè)參數(shù)對(duì)性能提升是立竿見(jiàn)影的。
* generate-structures,默認(rèn)值是true。含義是生成和計(jì)算一些特殊的環(huán)境,例如女巫塔、村民到達(dá)數(shù)量生成鐵傀儡等等。設(shè)置為false可以減少這些特殊環(huán)境生成和周期性檢查帶來(lái)的開(kāi)銷。這個(gè)參數(shù)很少被提起,但是對(duì)性能的提升有著不少的幫助。例如我的服務(wù)器生存子服有130人左右在線,TPS在17左右,關(guān)閉這個(gè)功能后提高到了19左右。需要徹底關(guān)閉這個(gè)參數(shù),還需要在spigot.yml中把save-structure-info設(shè)置為false。并且關(guān)服后手動(dòng)刪除每個(gè)世界(例如world、world_nether、world_the_end)下的data文件夾里的Fortress.dat、Mineshaft.dat、Stronghold.dat、Temple.dat、Village.dat文件。
network-compression-threshold,默認(rèn)值是256。這個(gè)參數(shù)只有1.8的服務(wù)端才有,含義是網(wǎng)絡(luò)封包壓縮的閥值。例如設(shè)置為16,代表封包大于16才被壓縮,設(shè)置成256代表著封包大于256才被壓縮。設(shè)置的值越小則會(huì)壓縮更多的封包,可以使得寬帶使用減少,提高網(wǎng)絡(luò)流暢程度,但是也會(huì)增加性能的開(kāi)銷。如果性能夠用可以設(shè)置為128,使得更多通訊封包被壓縮,一定程度上減少寬帶使用率又不會(huì)帶來(lái)太多的性能開(kāi)銷。設(shè)置的值太小,例如小于等于32會(huì)明顯增加對(duì)性能的開(kāi)銷,不建議這么做。
bukkit.yml中可以優(yōu)化性能的參數(shù):
* spawn-limits,意思是限制實(shí)體的生成。這個(gè)并不是限制一個(gè)區(qū)塊生成多少實(shí)體,而是針對(duì)一個(gè)人可以生成多少實(shí)體。例如monsters: 70,在線人數(shù)只有10個(gè)人,則最多只能生成700個(gè)怪物實(shí)體(僵尸、骷髏、蜘蛛等等),適當(dāng)?shù)脑O(shè)置這些參數(shù)可以減少實(shí)體對(duì)性能的影響。
* chunk-gc,控制著區(qū)塊的回收,單位是Tick(1/20秒),period-in-ticks是指每過(guò)多少tick回收一次需要回收的區(qū)塊,設(shè)置的太小會(huì)導(dǎo)致回收過(guò)于頻繁而影響性能,設(shè)置的太大會(huì)導(dǎo)致需要回收的區(qū)塊遲遲不回收使得內(nèi)存占用過(guò)大。合理的數(shù)值一般是300~400。load-threshold是指達(dá)到多少需要回收的區(qū)塊的時(shí)候才進(jìn)行回收。例如設(shè)置成300,只有當(dāng)需要回收的區(qū)塊到達(dá)300以上才進(jìn)行回收,合理的設(shè)置這個(gè)數(shù)值可以使得額外只多占用一丁點(diǎn)內(nèi)存卻使得區(qū)塊回收的性能開(kāi)銷可以被無(wú)視。一般設(shè)置為300~600比較合適。
autosave,自動(dòng)保存存檔(地圖、玩家數(shù)據(jù)等)的周期,單位是Tick(1/20秒),如果你使用了定時(shí)保存的插件,例如Saveit、AutoSave等等,你可以將他設(shè)置為0,即關(guān)閉這個(gè)功能。這樣可以減少服務(wù)器瞬卡發(fā)生的可能。
spigot.yml中可以優(yōu)化性能的參數(shù):
* user-cache-size,1.7.5以上版本才有,其控制用戶緩存的大小,如果你的服務(wù)器玩家很多,可以設(shè)置的更大一些,例如5000。
* save-user-cache-on-stop-only,1.7.5以上版本才有,其含義是是否只在服務(wù)器關(guān)閉/重啟的時(shí)候保存用戶緩存,設(shè)置為true可以提高性能。
* view-distance,同server.properties里的view-distance一樣。
* chunks-per-tick,是指每tick(1/20秒)掃描計(jì)算多少區(qū)塊,計(jì)算的內(nèi)容是作物的生長(zhǎng)。默認(rèn)值是650,可以設(shè)置成350來(lái)提高性能。極端的情況可以設(shè)置成150,但是會(huì)使得作物生長(zhǎng)的速度明顯變慢。
* max-tick-time: (僅較新的版本有該參數(shù),如1.8.3+)是指每tick,實(shí)體和tile最多可以用的時(shí)間(單位是毫秒),要明白其含義首先要解釋什么是TPS,TPS的意思是每秒有多少tick,最大值是20,也就是每秒tick20次,每次50毫秒。如果運(yùn)算量過(guò)大導(dǎo)致每tick計(jì)算了超過(guò)了50毫秒,那么TPS就會(huì)下降,一旦TPS低于15就會(huì)產(chǎn)生明顯的卡頓。在這參數(shù)中tile代表著熔爐、箱子、牌子、骷髏頭等等所能占用的最大時(shí)間,entity是指的實(shí)體,例如動(dòng)物、怪物、村民、展示框、掉落物、船、礦車等等。設(shè)置tile和entity的總和小于等于30則能明顯降低tile和entity對(duì)TPS的影響,而服務(wù)器運(yùn)算資源幾乎一大半都是由這兩者消耗的。設(shè)置tile為10,entity為20比較合適,如果實(shí)體非常多,還可以設(shè)置tile為6,entity為24。
* anti-xray,服務(wù)端自帶的反透視功能,俗稱假礦。這個(gè)功能相比插件版的假礦來(lái)說(shuō),額外內(nèi)存占用極少,少到可以忽略,并且礦物的變動(dòng)計(jì)算是異步進(jìn)行的,對(duì)TPS的影響很小。engine-mode為1則是隱藏礦物,engine-mode為2則是將非礦物也偽裝成礦物,engine-mode設(shè)置為2的效果最好,但是會(huì)額外吃一定的性能和寬帶,但是engine-mode設(shè)置為1無(wú)法防御礦追。具體如何權(quán)衡請(qǐng)自行決定。如果你不需要本功能,例如你是純RPG服務(wù)器,可以直接把enabled設(shè)置為false關(guān)閉這個(gè)功能,提高性能。
nerf-spawner-mobs,簡(jiǎn)單來(lái)說(shuō)就是讓刷怪籠生成的怪物變成白癡,直觀感受就是刷怪籠刷出的怪不能攻擊了。默認(rèn)為false,意思是不開(kāi)啟。設(shè)置為true可以獲得一定的性能提升。
* entity-activation-range,這個(gè)參數(shù)是控制實(shí)體的活躍范圍,例如monsters: 32意思是在玩家附近32格范圍內(nèi)的怪物才會(huì)活躍(被計(jì)算AI等),減少這個(gè)數(shù)值可以明顯提升性能,但是設(shè)置得過(guò)小會(huì)使得游戲難度大幅降低。一般可以把monsters設(shè)置為24,animals設(shè)置為12,misc設(shè)置為2(misc主要是掉落物,設(shè)置2可以使得掉落物幾乎不再卡服)。
entity-tracking-range,這個(gè)參數(shù)是控制實(shí)體的可見(jiàn)范圍,這個(gè)參數(shù)不會(huì)影響性能,對(duì)寬帶的影響也極小。不建議修改這個(gè)參數(shù),但是適當(dāng)?shù)慕档蛿?shù)值可以減少客戶端的卡頓。
* random-light-updates,隨機(jī)的光照更新,設(shè)置為true的話服務(wù)器會(huì)隨機(jī)更新光照,并且在區(qū)塊加載的第一個(gè)tick運(yùn)算光照邏輯。設(shè)置為false可以提高不少性能。
* save-structure-info,在前面已經(jīng)介紹了。
max-bulk-chunks,1.7.10+才有這個(gè)參數(shù),意思是每個(gè)數(shù)據(jù)封包里塞多少個(gè)區(qū)塊。適當(dāng)提高這個(gè)數(shù)值,例如從10提高到15可以減少網(wǎng)絡(luò)卡頓和客戶端讀取區(qū)塊的速度,但是設(shè)置得過(guò)高會(huì)導(dǎo)致客戶端崩潰。
* max-entity-collisions,實(shí)體碰撞箱的閥值。建議設(shè)置為2,可以減少密集卡服的問(wèn)題。
* max-tnt-per-tick,每tick(1/20秒)最多計(jì)算多少TNT爆炸,設(shè)置為20可以顯著防御TNT蹦服。
paper.yml中可以優(yōu)化性能的參數(shù):
keep-spawn-loaded,spawn區(qū)塊是否常駐內(nèi)存,設(shè)置為false可以減少一定的內(nèi)存占用和計(jì)算量
* tick-next-tick-list-cap,每tick最大的運(yùn)算量,減少數(shù)值可以提高TPS,例如設(shè)置為8000
* tick-next-tick-list-cap-ignores-redstone,達(dá)到上面的運(yùn)算閥值是否無(wú)視紅石運(yùn)算,設(shè)置為true可以顯著減少紅石對(duì)服務(wù)器性能的影響。
* optimize-explosions,是否開(kāi)啟爆炸算法優(yōu)化,設(shè)置為true可以提升一定的服務(wù)器性能
* use-async-lighting,是否讓光照的邏輯運(yùn)算異步化,設(shè)置為true可以使得光照運(yùn)算不再影響TPS,強(qiáng)烈推薦設(shè)置為true
* cache-chunk-maps,是否緩存chunkmaps,可以讓區(qū)塊的數(shù)據(jù)更多得被復(fù)用,可以一定程度提高性能,推薦設(shè)置為true
* fast-drain,快速液體流動(dòng)運(yùn)算,推薦設(shè)置為true,可以減少液體流動(dòng)運(yùn)算對(duì)服務(wù)器性能的影響
我的世界新手指南 | ||||
新手入門攻略 | 新手常見(jiàn)問(wèn)題 | 生存模式小知識(shí) | 工具使用方法 | 村民繁殖屋 |
我的世界指令攻略 | ||||
SEED指令大全 | OP指令大全 | OP刷錢攻略 | 方塊代碼大全 | WE指令代碼 |
我的世界合成攻略 | ||||
另類道具合成 | 武器合成大全 | UU物質(zhì)合成 | 盔甲合成大全 | 基礎(chǔ)物品合成 |
我的世界道具攻略 | ||||
精品地圖種子 | 戰(zhàn)船 | 核電站 | 豪華木屋 | 活塞大炮 |
我的世界大神作品 | ||||
千年帝都洛陽(yáng) | 擎天柱 | 企業(yè)號(hào) | 中世紀(jì)城堡 | 冰島上的別墅 |
一念天堂一念地獄 | ||||
前往天堂 | 去往地獄 |
瀏覽量:72022-07-19
瀏覽量:12021-05-31
瀏覽量:02021-05-29
瀏覽量:02021-05-17
瀏覽量:02021-04-23
瀏覽量:02019-10-13