哈囉大家好我是SamHacker,今天並沒(méi)有要寫(xiě)程式,也不是裝插件,而是我想介紹一下Minecraft伺服器效能的指標(biāo):TPS與MSPT
這篇文章可能會(huì)比較短,但我會(huì)將所有可以用來(lái)評(píng)估Minecraft伺服器順暢度的指標(biāo):TPS、MSPT及Ping介紹給各位'v'
Tick(遊戲刻)
Tick,中文譯為遊戲刻,是Minecraft的一種特殊遊戲架構(gòu)。它控制了Minecraft大部分的遊戲機(jī)制,例如火焰延燒、傷害、建築速率、生怪等,你可以把它想像成一個(gè)時(shí)鐘,每隔一段時(shí)間通知怪物出生、通知火焰要蔓延了、通知你的手可以放方塊了…
想要知道Tick的原理,你要先知道Minecraft的絕大多數(shù)運(yùn)算在一個(gè)大循環(huán)內(nèi)執(zhí)行,執(zhí)行了一次這個(gè)循環(huán)就執(zhí)行了一刻。在這一刻內(nèi),遊戲會(huì)執(zhí)行定時(shí)作業(yè)來(lái)保持運(yùn)行。
在單人世界裡,Tick往往由電腦本身發(fā)送,但如果開(kāi)啟了多人世界、或加入伺服器,則Tick會(huì)交由伺服器統(tǒng)一發(fā)送,這樣才能確保所有玩家的畫(huà)面與遊戲內(nèi)容都是正常的。以下是一張示意圖,表示Tick的原理
TPS(Tick Per Second)
TPS,Tick Per Second,中文譯名為每秒遊戲刻數(shù),代表一秒鐘伺服器可以發(fā)送多少個(gè)Tick。理想狀況下每秒發(fā)送20Tick,也就是20TPS或TPS20。
如果伺服器開(kāi)始卡頓,Tick會(huì)降到20以下。一般在15~20TPS浮動(dòng)都是正常的,這個(gè)狀況仍然可稱(chēng)為穩(wěn)定,但要是降到15以下就會(huì)有明顯動(dòng)畫(huà)卡卡的,7TPS以下就會(huì)開(kāi)始可感的卡頓:挖礦會(huì)開(kāi)始有延遲、也開(kāi)始容易放出幽靈方塊。倘若這時(shí)候再不進(jìn)行優(yōu)化,讓TPS掉到4以下,伺服器的穩(wěn)定度就會(huì)開(kāi)始彈動(dòng),系統(tǒng)可能會(huì)突然當(dāng)住。如果真的到了最糟的狀況,系統(tǒng)卡死了,這將會(huì)造成當(dāng)前地圖檔沒(méi)有存到。最糟的狀況甚至地圖檔故障!
MSPT(MilliSeconds Per Tick)
MSPT,MilliSeconds Per Tick,代表伺服器實(shí)際用於計(jì)算一個(gè)Tick的時(shí)間,以毫秒計(jì)算。此數(shù)據(jù)與TPS對(duì)立,也就是如果TPS高,則MSPT就低,反之亦然。
理想狀況下此數(shù)據(jù)最好在50以?xún)?nèi),也就是50MSPT或MSPT50。如果MSPT低於50,TPS才能穩(wěn)定在20運(yùn)作,如果MSPT超過(guò)50,則TPS將開(kāi)始下降,一般而言TPS是整數(shù),而MSPT則有小數(shù)點(diǎn)。在Java版的F3除錯(cuò)選單中,可以使用Alt+F3打開(kāi)幀生成圖表來(lái)檢視。如果MSPT超過(guò)50則伺服器就會(huì)有延遲,超過(guò)500會(huì)感到實(shí)際延遲,倘若大於1000,那看起來(lái)伺服器準(zhǔn)備蒙主寵召了…你會(huì)看到一道聖光,然後伺服器就打掉故障了…
Ping值
Ping代表客戶(hù)端發(fā)送一個(gè)訊息至伺服器,再由伺服器傳回該訊息的時(shí)間,大都以毫秒為單位:
這個(gè)數(shù)值代表電腦連上伺服器的延遲,以毫秒計(jì)算。Ping值越高則感到越延遲,但這個(gè)項(xiàng)目影響的是玩家的體驗(yàn),而非伺服器效能占用量。也就是說(shuō),就算伺服器Ping值高達(dá)上萬(wàn),也不直接代表伺服器硬體被吃滿(mǎn)了。
主要會(huì)影響到Ping值的原因是託管商網(wǎng)路品質(zhì)、線(xiàn)路不佳,或玩家的網(wǎng)路不好(Ping值高不一定是伺服器的問(wèn)題,如果只有特定玩家Ping高可能該玩家自己網(wǎng)路不好,網(wǎng)路有木桶效應(yīng)的)
項(xiàng)目 | TPS | MSPT | Ping |
---|---|---|---|
定義 | 一秒內(nèi)伺服器可發(fā)出幾個(gè)Tick(遊戲刻) | 伺服器處理一個(gè)Tick需要多久毫秒的時(shí)間 | 一個(gè)訊息從玩家到伺服器後再傳回來(lái)的時(shí)間 |
單位 | Tick/秒 | 毫秒/Tick | 毫秒 |
測(cè)量方式 | 監(jiān)控伺服器端執(zhí)行速度 | 監(jiān)控伺服器端執(zhí)行速度 | 監(jiān)控網(wǎng)路延遲時(shí)間 |
可能影響因素 | 玩家:玩家數(shù)量、玩家行為、客戶(hù)端性能、網(wǎng)路狀況 伺服器:伺服器硬體理論性能、伺服器負(fù)載、插件、世界大小、世界複雜度 |
玩家:玩家數(shù)量、玩家行為、客戶(hù)端性能、網(wǎng)路狀況 伺服器:伺服器硬件性能、伺服器負(fù)載、插件、世界大小、世界複雜度 |
玩家:網(wǎng)路狀況、路由、距離 伺服器:伺服器端位置 |
反映 | 伺服器端處理遊戲世界的速度 | 伺服器端執(zhí)行一個(gè)更新所需的平均時(shí)間 | 使用者端與伺服器端之間的網(wǎng)路延遲時(shí)間 |
影響因素 | 伺服器硬件性能、負(fù)載、插件等 | 伺服器硬件性能、負(fù)載、插件等 | 網(wǎng)路狀況、路由、距離等 |
理想值 | 20 TPS | 50 MSPT 以下 | 50 ms 以下 |
應(yīng)用 | 評(píng)估伺服器性能、優(yōu)化伺服器 | 評(píng)估伺服器性能、優(yōu)化伺服器 | 評(píng)估網(wǎng)路狀況、選擇伺服器 |
改善方式 | 升級(jí)伺服器硬件、減少伺服器負(fù)載、[color=var(--theme-link-initial-color)]優(yōu)化插件 | 升級(jí)伺服器硬件、減少伺服器負(fù)載、[color=var(--theme-link-initial-color)]優(yōu)化插件 | 調(diào)整路由、升級(jí)網(wǎng)路頻寬、更換網(wǎng)路服務(wù)商 |
總結(jié)
今天介紹了三項(xiàng)麥塊開(kāi)服必知的基本資訊,其中TPS可以在Paper伺服器中打/tps指令來(lái)檢視:
MSPT的話(huà)...也可以喔!但是在Paper中會(huì)以這個(gè)方式顯示:
而Ping的部分按住TAB預(yù)設(shè)就會(huì)有Ping數(shù)值了。我之後也會(huì)寫(xiě)一篇教學(xué)讓玩家可以自己在遊戲介面看到Ping值。
今天的文章沒(méi)有涉及任何插件,但今天的內(nèi)容比任何插件都更為重要。如果你在開(kāi)設(shè)伺服器時(shí)不懂這些關(guān)鍵資訊,那麼和新手沒(méi)什麼區(qū)別。這些基礎(chǔ)知識(shí)是伺服器運(yùn)行的根本,了解它們能讓你更好地管理和優(yōu)化伺服器,確保玩家們獲得最佳的遊戲體驗(yàn)。記住,掌握這些資訊是成為伺服器管理大師的第一步。即使沒(méi)有華麗的插件,這些基本原則依然是伺服器運(yùn)行順暢的核心。