最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Minecraft服務(wù)器優(yōu)化教程,服務(wù)器帶寬能夠怎么辦,MC服務(wù)器優(yōu)化教程

2022-02-26 19:03 作者:網(wǎng)絡(luò)愛好者聚集地  | 我要投稿


啟動腳本

(網(wǎng)頁后臺可以跳過本段)越多的啟動參數(shù)反而導(dǎo)致越多的性能損耗。在不了解JVM工作原理的情況下,不要隨隨便便增加一大堆無用的啟動參數(shù)。一般情況下指定最小內(nèi)存、最大內(nèi)存即可,Java7還需要指定一個大于等于128MB的MaxPermSize。GC回收模式等等參數(shù)都應(yīng)該由JVM自動選擇,例如國外論壇流傳的使用G1GC可以優(yōu)化MC性能,的確,G1GC減少了Full GC的時間,但是會額外增加10%~30%的CPU時間占用,完全得不償失。還有流傳很廣的設(shè)置MaxGCPauseMillis參數(shù)。這個參數(shù)的含義是控制GC垃圾回收的最大時間。設(shè)置一個很小的數(shù)值的確從表面來看服務(wù)器沒有瞬卡的問題了,但是這樣會導(dǎo)致每次垃圾回收都不夠深入和全面,這樣的結(jié)果就是服務(wù)端運行時間越久越卡,而且很可能出現(xiàn)OOM(內(nèi)存不夠了)直接蹦服。

  例如Java7的開服參數(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的含義是盡可能的使用更多對性能有幫助的優(yōu)化功能

  * -XX:+UseCompressedOops的含義是指針壓縮,可以減少一定的內(nèi)存占用(64位才支持)


參數(shù)的優(yōu)化

  不要小瞧參數(shù)的修改帶來的優(yōu)化空間,有時候只修改一個參數(shù),就是在線100人TPS19和TPS16的差距。參數(shù)的調(diào)整分別為server.properties(原版服務(wù)器就有),bukkit.yml(水桶服或者衍生版就有),spigot.yml(Spigot或者衍生版就有),paper.yml(PaperSpigot才有)。

  * 其中對性能有顯著影響的前面為紅色的星號,有中等程度影響的為藍(lán)色的星號,沒有顏色的星號是建議設(shè)置項

  server.properties中可以優(yōu)化性能的參數(shù):

  * view-distance,視距,默認(rèn)值是10。含義是玩家的視距也就是加載的區(qū)塊范圍,默認(rèn)是10個區(qū)塊,視距10加載的區(qū)塊是視距5的四倍。加載更多的區(qū)塊則需要更多的內(nèi)存和運算能力。推薦將這個值設(shè)置在5或者6,如果在線人數(shù)非常多可以設(shè)置為4。降低視距可以有效減少內(nèi)存的占用,也能有效提高TPS,還可以減少寬帶的使用量。這個參數(shù)對性能提升是立竿見影的。

  * generate-structures,默認(rèn)值是true。含義是生成和計算一些特殊的環(huán)境,例如女巫塔、村民到達(dá)數(shù)量生成鐵傀儡等等。設(shè)置為false可以減少這些特殊環(huán)境生成和周期性檢查帶來的開銷。這個參數(shù)很少被提起,但是對性能的提升有著不少的幫助。例如我的服務(wù)器生存子服有130人左右在線,TPS在17左右,關(guān)閉這個功能后提高到了19左右。需要徹底關(guān)閉這個參數(shù),還需要在spigot.yml中把save-structure-info設(shè)置為false。并且關(guān)服后手動刪除每個世界(例如world、world_nether、world_the_end)下的data文件夾里的Fortress.dat、Mineshaft.dat、Stronghold.dat、Temple.dat、Village.dat文件。

  network-compression-threshold,默認(rèn)值是256。這個參數(shù)只有1.8的服務(wù)端才有,含義是網(wǎng)絡(luò)封包壓縮的閥值。例如設(shè)置為16,代表封包大于16才被壓縮,設(shè)置成256代表著封包大于256才被壓縮。設(shè)置的值越小則會壓縮更多的封包,可以使得寬帶使用減少,提高網(wǎng)絡(luò)流暢程度,但是也會增加性能的開銷。如果性能夠用可以設(shè)置為128,使得更多通訊封包被壓縮,一定程度上減少寬帶使用率又不會帶來太多的性能開銷。設(shè)置的值太小,例如小于等于32會明顯增加對性能的開銷,不建議這么做。

  bukkit.yml中可以優(yōu)化性能的參數(shù):

  * spawn-limits,意思是限制實體的生成。這個并不是限制一個區(qū)塊生成多少實體,而是針對一個人可以生成多少實體。例如monsters: 70,在線人數(shù)只有10個人,則最多只能生成700個怪物實體(僵尸、骷髏、蜘蛛等等),適當(dāng)?shù)脑O(shè)置這些參數(shù)可以減少實體對性能的影響。

  * chunk-GC,控制著區(qū)塊的回收,單位是Tick(1/20秒),period-in-ticks是指每過多少tick回收一次需要回收的區(qū)塊,設(shè)置的太小會導(dǎo)致回收過于頻繁而影響性能,設(shè)置的太大會導(dǎo)致需要回收的區(qū)塊遲遲不回收使得內(nèi)存占用過大。合理的數(shù)值一般是300~400。load-threshold是指達(dá)到多少需要回收的區(qū)塊的時候才進(jìn)行回收。例如設(shè)置成300,只有當(dāng)需要回收的區(qū)塊到達(dá)300以上才進(jìn)行回收,合理的設(shè)置這個數(shù)值可以使得額外只多占用一丁點內(nèi)存卻使得區(qū)塊回收的性能開銷可以被無視。一般設(shè)置為300~600比較合適。

  autosave,自動保存存檔(地圖、玩家數(shù)據(jù)等)的周期,單位是Tick(1/20秒),如果你使用了定時保存的插件,例如Saveit、AutoSave等等,你可以將他設(shè)置為0,即關(guān)閉這個功能。這樣可以減少服務(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è)置為true可以提高性能。

  * view-distance,同server.properties里的view-distance一樣。

  * chunks-per-tick,是指每tick(1/20秒)掃描計算多少區(qū)塊,計算的內(nèi)容是作物的生長。默認(rèn)值是650,可以設(shè)置成350來提高性能。極端的情況可以設(shè)置成150,但是會使得作物生長的速度明顯變慢。

  * max-tick-time:? (僅較新的版本有該參數(shù),如1.8.3+)是指每tick,實體和tile最多可以用的時間(單位是毫秒),要明白其含義首先要解釋什么是TPS,TPS的意思是每秒有多少tick,最大值是20,也就是每秒tick20次,每次50毫秒。如果運算量過大導(dǎo)致每tick計算了超過了50毫秒,那么TPS就會下降,一旦TPS低于15就會產(chǎn)生明顯的卡頓。在這參數(shù)中tile代表著熔爐、箱子、牌子、骷髏頭等等所能占用的最大時間,entity是指的實體,例如動物、怪物、村民、展示框、掉落物、船、礦車等等。設(shè)置tile和entity的總和小于等于30則能明顯降低tile和entity對TPS的影響,而服務(wù)器運算資源幾乎一大半都是由這兩者消耗的。設(shè)置tile為10,entity為20比較合適,如果實體非常多,還可以設(shè)置tile為6,entity為24。

  * anti-xray,服務(wù)端自帶的反透視功能,俗稱假礦。這個功能相比插件版的假礦來說,額外內(nèi)存占用極少,少到可以忽略,并且礦物的變動計算是異步進(jìn)行的,對TPS的影響很小。engine-mode為1則是隱藏礦物,engine-mode為2則是將非礦物也偽裝成礦物,engine-mode設(shè)置為2的效果最好,但是會額外吃一定的性能和寬帶,但是engine-mode設(shè)置為1無法防御礦追。具體如何權(quán)衡請自行決定。如果你不需要本功能,例如你是純RPG服務(wù)器,可以直接把enabled設(shè)置為false關(guān)閉這個功能,提高性能。

  nerf-spawner-mobs,簡單來說就是讓刷怪籠生成的怪物變成白癡,直觀感受就是刷怪籠刷出的怪不能攻擊了。默認(rèn)為false,意思是不開啟。設(shè)置為true可以獲得一定的性能提升。

  * entity-activation-range,這個參數(shù)是控制實體的活躍范圍,例如monsters: 32意思是在玩家附近32格范圍內(nèi)的怪物才會活躍(被計算AI等),減少這個數(shù)值可以明顯提升性能,但是設(shè)置得過小會使得游戲難度大幅降低。一般可以把monsters設(shè)置為24,animals設(shè)置為12,misc設(shè)置為2(misc主要是掉落物,設(shè)置2可以使得掉落物幾乎不再卡服)。

  entity-tracking-range,這個參數(shù)是控制實體的可見范圍,這個參數(shù)不會影響性能,對寬帶的影響也極小。不建議修改這個參數(shù),但是適當(dāng)?shù)慕档蛿?shù)值可以減少客戶端的卡頓。

  * random-light-updates,隨機的光照更新,設(shè)置為true的話服務(wù)器會隨機更新光照,并且在區(qū)塊加載的第一個tick運算光照邏輯。設(shè)置為false可以提高不少性能。

  * save-structure-info,在前面已經(jīng)介紹了。

  max-bulk-chunks,1.7.10+才有這個參數(shù),意思是每個數(shù)據(jù)封包里塞多少個區(qū)塊。適當(dāng)提高這個數(shù)值,例如從10提高到15可以減少網(wǎng)絡(luò)卡頓和客戶端讀取區(qū)塊的速度,但是設(shè)置得過高會導(dǎo)致客戶端崩潰。

  * max-entity-collisions,實體碰撞箱的閥值。建議設(shè)置為2,可以減少密集卡服的問題。

  * max-tnt-per-tick,每tick(1/20秒)最多計算多少TNT爆炸,設(shè)置為20可以顯著防御TNT蹦服。

  paper.yml中可以優(yōu)化性能的參數(shù):

  keep-spawn-loaded,spawn區(qū)塊是否常駐內(nèi)存,設(shè)置為false可以減少一定的內(nèi)存占用和計算量

  * tick-next-tick-list-cap,每tick最大的運算量,減少數(shù)值可以提高TPS,例如設(shè)置為8000

  * tick-next-tick-list-cap-ignores-redstone,達(dá)到上面的運算閥值是否無視紅石運算,設(shè)置為true可以顯著減少紅石對服務(wù)器性能的影響。

  * optimize-explosions,是否開啟爆炸算法優(yōu)化,設(shè)置為true可以提升一定的服務(wù)器性能

  * use-async-lighting,是否讓光照的邏輯運算異步化,設(shè)置為true可以使得光照運算不再影響TPS,強烈推薦設(shè)置為true

  * cache-chunk-maps,是否緩存chunkmaps,可以讓區(qū)塊的數(shù)據(jù)更多得被復(fù)用,可以一定程度提高性能,推薦設(shè)置為true

  * fast-drain,快速液體流動運算,推薦設(shè)置為true,可以減少液體流動運算對服務(wù)器性能的影響

系統(tǒng)的選擇

(網(wǎng)頁后臺可以跳過本段)關(guān)于系統(tǒng)的選擇,Linux類系統(tǒng)(Centos、Redhat等)固然高效、穩(wěn)定,但選擇系統(tǒng)也一定要考慮到自己的熟悉程度和學(xué)習(xí)能力。不要盲目為了高效而選擇一個自己完全不熟悉甚至從未使用過的系統(tǒng),一旦出現(xiàn)了突發(fā)情況,原本只需要幾分鐘解決的問題由于不熟悉系統(tǒng)的操作用幾個小時來解決,這樣真的合適么?在內(nèi)存足夠使用的情況下,Windows和Linux開服的性能差距幾乎可以忽略。但是如果你熟悉Linux的操作,我依然會推薦你使用Linux系統(tǒng),畢竟大服需要的Mysql、Redis在Linux下的性能往往高過Windows不少。如果你有較強的學(xué)習(xí)能力,打算入坑Linux開服,我會推薦你使用Centos6.6(穩(wěn)定性突出、可靠性不俗、大量教程和文檔)。

JVM版本的選擇

?。ňW(wǎng)頁后臺可以跳過本段)JVM(Java Virtual Machine)也就是Java虛擬機,俗稱Java運行環(huán)境。關(guān)于選擇JRE還是JDK的選擇,我推薦使用JDK,JDK包括運行環(huán)境(JRE),在此基礎(chǔ)上增加了一些性能調(diào)優(yōu)工具如VisualVM。而JVM的版本,非常不推薦使用Java6,因為有不少插件已經(jīng)放棄了Java6的支持。Java7和Java8則是不錯的選擇,如果不是模組服務(wù)器,推薦使用Java8,Java8相比Java7主要的性能提升便在于HashMap上,而無論Minecraft服務(wù)端本身還是插件都大量使用了HashMap。所以對于Minecraft服務(wù)器來說,使用Java8帶來的性能提升還是比較可觀的。

服務(wù)端的選擇

從服務(wù)端的選擇開始就注定了性能優(yōu)劣的起步水平,現(xiàn)在依然有不少人認(rèn)為CraftBukkit(水桶服)的兼容性、穩(wěn)定性要遠(yuǎn)遠(yuǎn)好于Spigot(水龍頭)。然而這是一個誤區(qū),Spigot是在CraftBukkit基礎(chǔ)上優(yōu)化而來的,幾乎100%兼容原有的插件API,所以可以認(rèn)為只要同版本水桶服能用的插件就可以在Spigot上運行。如果你選擇使用1.7.10以下的版本開服(純凈服),強烈推薦你使用Spigot服務(wù)端,Spigot相比水桶服擁有近百項的優(yōu)化,例如異步加載、讀取區(qū)塊,限制實體的活動范圍,修復(fù)一些內(nèi)存泄露的問題等等。所以同版本下可以很容易感受到Spigot有著更出色的性能和更低的內(nèi)存占用。如果你開服的版本在1.8+,我會推薦你使用PaperSpigot服務(wù)端,這款服務(wù)端是在Spigot基礎(chǔ)上優(yōu)化而來的,相比Spigot有著顯著的性能提升(Tiles幾乎不再消耗CPU時間,爆炸算法優(yōu)化,紅石不再卡服,流水算法優(yōu)化,區(qū)塊壓縮節(jié)約內(nèi)存,優(yōu)化Spigot自帶的Anti X-ray等等),并且有許多可自定義項目(船損壞依然掉落船,各種地形生成的開關(guān)等等)。在最后需要提醒的是,如果沒有特殊原因,建議使用最新版本的服務(wù)端,最新版本的服務(wù)端往往修復(fù)了目前已知的絕大多數(shù)BUG和有著更多的性能提升。例如目前的1.8.8版本就比1.8.7多修復(fù)了數(shù)個可以卡服、蹦服的BUG(利用旗幟樣式堆疊卡服等)。


本篇文章來源于網(wǎng)絡(luò),原作者是誰目前我也不知道,故沒有標(biāo)明(看到的也是別人轉(zhuǎn)載的),因為這個優(yōu)化教程確實有用就想轉(zhuǎn)載分享出來,如有侵權(quán)聯(lián)系刪除!


Minecraft服務(wù)器優(yōu)化教程,服務(wù)器帶寬能夠怎么辦,MC服務(wù)器優(yōu)化教程的評論 (共 條)

分享到微博請遵守國家法律
嘉义县| 聂荣县| 和平县| 濉溪县| 武平县| 嘉定区| 东乌珠穆沁旗| 丽江市| 建始县| 江阴市| 禄劝| 绵阳市| 开化县| 包头市| 翁牛特旗| 南陵县| 阿克苏市| 湘乡市| 肃宁县| 湘西| 英山县| 游戏| 安西县| 修水县| 吴旗县| 南汇区| 庆安县| 鲁甸县| 和政县| 平湖市| 阳春市| 银川市| 鄂尔多斯市| 措美县| 平乡县| 徐闻县| 江川县| SHOW| 广东省| 垣曲县| 揭西县|