Optimeiddio gweinydd Minecraft

Optimeiddio gweinydd Minecraft
Ar ein blog rydym eisoes wedi dweud wrth, sut i greu eich gweinydd Minecraft eich hun, ond mae 5 mlynedd wedi mynd heibio ers hynny ac mae llawer wedi newid. Rydym yn rhannu gyda chi ffyrdd cyfredol o greu a gwneud y gorau o'r rhan gweinydd o gêm mor boblogaidd.

Dros ei hanes 9 mlynedd (gan gyfrif o'r dyddiad rhyddhau), mae Minecraft wedi ennill nifer anhygoel o gefnogwyr a chasinebwyr ymhlith chwaraewyr cyffredin a geeks. Mae'r cysyniad syml o fyd wedi'i wneud o flociau wedi esblygu o ffurf syml o adloniant i fod yn gyfrwng cyffredinol ar gyfer cyfathrebu a chreu gwrthrychau amrywiol o'r byd go iawn.

Yn ogystal ag adeiladu, mae gan y gêm y gallu i greu rhesymeg, sy'n eich galluogi i weithredu algorithmau llawn y tu mewn i Minecraft. Mae YouTube yn llawn fideos trawiadol iawn lle mae pobl, ar ôl gwneud llawer o ymdrech a threulio llawer o amser, wedi creu copi o hwn neu'r ddyfais electronig honno neu adeiladu copi manwl presennol и ffuglen strwythurau pensaernïol. Mae popeth wedi'i gyfyngu gan ddychymyg y chwaraewr a phosibiliadau'r bydysawd hapchwarae yn unig.


Ond gadewch i ni beidio â siarad ymhellach am beth yn union y mae'r chwaraewyr yn ei greu, ond gadewch i ni edrych ar ran gweinydd y cais a thynnu sylw at y problemau (cymhleth iawn weithiau) a all godi yn ystod gweithrediad dan lwyth. Gadewch i ni archebu ar unwaith mai dim ond am y Java Edition y byddwn yn siarad.

Mathau o weinyddion

Yr opsiwn symlaf yw gweinydd sydd wedi'i ymgorffori yn y cleient gêm. Fe wnaethon ni greu byd, pwyso un botwm, a daeth y gweinydd yn hygyrch dros y rhwydwaith lleol. Ni all yr opsiwn hwn wrthsefyll unrhyw lwyth difrifol, ac felly ni fyddwn hyd yn oed yn ei ystyried.

Fanila

Mae Mojang Studios yn dosbarthu rhan gweinydd y gêm fel cymhwysiad Java am ddim ar y wefan swyddogol. Mae hyn yn caniatáu ichi greu un eich hun gweinydd pwrpasol a byd personol, gan ei gwneud yn hygyrch ar gyfer cysylltiad o unrhyw le ar y blaned. I'r rhai sy'n gwneud hyn am y tro cyntaf, mae yna wych tiwtorial, ar gael ar y Wiki hapchwarae cyfatebol.

Mae gan y dull hwn un anfantais ddifrifol, sef diffyg galluoedd y tu allan i'r bocs i gysylltu ategion sy'n ehangu ymarferoldeb y gweinydd ac yn caniatáu nid yn unig i awtomeiddio llawer o brosesau, ond hefyd i optimeiddio perfformiad. Yn ogystal, mae gan y gweinydd swyddogol ddefnydd RAM eithaf mawr ar gyfer pob chwaraewr cysylltiedig.

Bwckit

Cymhwysiad gweinydd a grëwyd gan selogion yn seiliedig ar y fersiwn Vanilla Bwckit ehangu galluoedd y gêm yn sylweddol trwy gefnogi ategion a mods (addasiadau). Caniataodd nid yn unig ychwanegu blociau newydd at y gameplay, ond hefyd i berfformio amrywiol driniaethau a oedd yn anhygyrch i feddalwedd fanila. Yn ddiddorol, roedd angen llawer llai o gof ar y cais hwn.

Nid yw'n anodd gosod Bukkit; mae'r cyfarwyddiadau cyfatebol ar yr adnodd GêmPedia. Ond nid yw hyn yn gwneud unrhyw synnwyr, oherwydd ers 2014 mae tîm Bukkit wedi dod i ben, mae datblygwyr y prosiect wedi dod yn weithwyr Mojang Studios, a ystorfa wedi'i adael. Felly, mae Bukkit wedi marw i bob pwrpas, ac mae'n gwneud synnwyr i roi sylw i'r ddau brosiect nesaf.

SpigotMC

Er mwyn gwneud bywyd yn haws i ddatblygwyr ategyn, roedd angen API i ryngweithio â byd y gêm. Dyma'r union broblem a ddatrysodd y crewyr. Spigot, gan gymryd craidd Bukkit a'i ail-weithio i gyflawni gwell dibynadwyedd a pherfformiad. Serch hynny, Ystorfa Git cafodd y prosiect ei rwystro oherwydd Deddf Hawlfraint y Mileniwm Digidol (DMCA), ac mae'n amhosibl lawrlwytho'r cod ffynhonnell oddi yno.

Ar hyn o bryd, mae SpigotMC yn cael ei ddatblygu a'i ddefnyddio'n weithredol. Mae'n cefnogi'r holl ategion a grëwyd ar gyfer Bukkit, ond nid yw'n gydnaws yn ôl ag ef. I fynd o gwmpas y DMCA Takedown, dyfeisiwyd dull cain o'r enw BuildTools. Mae'r offeryn hwn yn dileu'r angen i ddosbarthu cymhwysiad wedi'i lunio ac yn caniatáu i ddefnyddwyr lunio Spigot, CraftBukkit a Bukkit o'r cod ffynhonnell. Mae hyn i gyd yn gwneud y gwaharddiad DMCA yn ddiwerth.

PapurMC

Roedd popeth yn ymddangos yn cŵl, a daeth Spigot yn opsiwn gwych. Ond nid oedd hyn yn ddigon i rai selogion, ac fe wnaethant greu eu fforc eu hunain o Spigot “ar steroidau.” Ar tudalen prosiect y fantais allweddol yw “Mae'n wirion yn gyflym”. Wedi'i ddatblygu cymuned yn eich galluogi i ddatrys materion sy'n dod i'r amlwg yn gyflym, ac mae'r API estynedig yn caniatáu ichi greu ategion diddorol. Gallwch chi lansio PaperMC gydag un gorchymyn syml, a roddir yn dogfennaeth.

Mae gan PaperMC gydnawsedd rhagorol, felly gall ategion a ysgrifennwyd ar gyfer SpigotMC weithio'n hawdd ar PaperMC, ond heb gefnogaeth swyddogol. Mae cydnawsedd ôl â SpigotMC hefyd yn bresennol. Nawr ein bod wedi rhestru'r opsiynau amrywiol ar gyfer creu gweinydd, gadewch i ni symud ymlaen at y materion perfformiad a allai godi.

Problemau ac atebion

Y prif beth y mae angen i chi ei ddeall yw y bydd popeth sy'n ymwneud â phrosesu byd y gêm yn cael ei brosesu ar un craidd cyfrifiadurol o'r gweinydd corfforol yn unig. Felly os yn sydyn mae gennych weinydd rhagorol gyda dwsin o greiddiau cyfrifiadurol, yna dim ond un fydd yn cael ei lwytho. Bydd pob un arall bron yn segur. Dyma bensaernïaeth y cais, ac nid oes unrhyw beth y gallwch chi ei wneud yn ei gylch. Felly wrth ddewis gweinydd, dylech dalu sylw nid i nifer y creiddiau, ond i amlder cloc. Po uchaf ydyw, y gorau fydd y perfformiad.

O ran y mater o gapasiti RAM, dylem symud ymlaen o'r dangosyddion canlynol:

  • nifer cynlluniedig o chwaraewyr;
  • nifer cynlluniedig o fydoedd ar y gweinydd;
  • maint pob byd.

Dylid cofio bod cais Java bob amser angen cronfa wrth gefn o RAM. Os ydych chi'n disgwyl defnydd cof o 8 gigabeit, yna mae angen i chi gael 12 mewn gwirionedd. Mae'r niferoedd yn gymharol, ond nid yw'r hanfod yn newid.

I gychwyn rhan y gweinydd, rydym yn argymell defnyddio'r baneri a nodir yn yr erthygl Tiwnio'r JVM - Baneri Casglwr Sbwriel G1GC ar gyfer Minecraft. Mae'r “hud du” hwn yn caniatáu i'r gweinydd ffurfweddu'r “casglwr sbwriel” yn gywir a gwneud y defnydd gorau o RAM. Ni ddylech ddyrannu mwy o gof nag y mae'r gweinydd yn ei ddefnyddio mewn gwirionedd yn ystod y mewnlifiad brig o chwaraewyr.

Cynhyrchu map bloc

“Ydych chi wir yn meddwl mai dim ond pan edrychwch arno y mae'r lleuad yn bodoli?” (Albert Einstein)

Gweinydd hollol newydd. Cyn gynted ag y bydd y chwaraewr yn cysylltu'n llwyddiannus am y tro cyntaf, mae cymeriad y gêm yn ymddangos yn y man ymgynnull cyffredinol (silio). Dyma'r unig le lle mae'r byd gêm yn cael ei gynhyrchu ymlaen llaw gan y gweinydd. Ar yr un pryd, mae rhan y cleient yn edrych ar y gosodiadau, a'r paramedr allweddol yw'r pellter tynnu. Mae'n cael ei fesur mewn talpiau (mae arwynebedd y map yn 16 × 16 a 256 bloc o uchder) Sawl talp sy'n cael ei nodi mae'n union faint y gofynnir amdano gan y gweinydd.

Mae'r gweinydd yn storio map byd-eang o'r byd, ac os nad oes blociau wedi'u cynhyrchu ynddo eto ar bwynt ymddangosiad cymeriad y gêm, yna mae'r gweinydd yn eu cynhyrchu'n ddeinamig ac yn eu storio. Nid yn unig y mae hyn yn gofyn am adnoddau cyfrifiadurol mawr, ond mae hefyd yn cynyddu maint map y byd yn gyson. Ar un o'r gweinyddion anarchaidd hynaf 2b2t (2builders2tools) Mae maint y map eisoes wedi bod yn fwy na 8 Tb, ac mae ffin y byd tua 30 miliwn o flociau. Mae miloedd o straeon yn gysylltiedig â'r gweinydd hwn ac mae'n haeddu ei erthygl ei hun yn y gyfres.

Nid yw creu byd o gwmpas un chwaraewr yn broblem. Bydd cynhyrchu byd o gwmpas cannoedd o chwaraewyr yn achosi mân arafu gweinyddwyr am gyfnod byr, ac ar ôl hynny bydd y llwyth yn lleihau. Mae cynhyrchu byd o bellter rendro cleient o gwmpas mil o chwaraewyr eisoes yn gallu “gollwng” y gweinydd a thaflu pob cleient allan ohono oherwydd goramser.

Yn y meddalwedd gweinydd mae gwerth fel TPS (Ticiau fesul Gweinydd - ticiau yr eiliad). Fel arfer, mae cylch 1 cloc yn hafal i 50 ms. (Mae 1 eiliad o'r byd go iawn yn hafal i 20 tic o fyd y gêm). Os bydd prosesu un tic yn cynyddu i 60 eiliad, bydd y cais gweinydd yn cael ei gau, gan daflu pob chwaraewr allan.

Yr ateb yw cyfyngu'r byd i gyfesurynnau penodol a pherfformio cynhyrchu bloc rhagarweiniol. Felly, rydym yn dileu'r angen am gynhyrchu deinamig yn ystod y gêm, a dim ond map sy'n bodoli eisoes y bydd angen i'r gweinydd ei ddarllen. Gellir datrys y ddau fater gydag un ategyn unigol Border Byd.

Y ffordd hawsaf yw gosod ffin y byd ar ffurf cylch o'i gymharu â'r pwynt silio (er y gallwch ei wneud o unrhyw siâp) gydag un gorchymyn:

/wb set <радиус в блоках> spawn

Os yw cymeriad y chwaraewr yn ceisio croesi'r ffin, bydd yn cael ei wthio yn ôl sawl bloc. Os gwneir hyn sawl gwaith o fewn amser cyfyngedig, bydd y troseddwr yn cael ei deleportio trwy rym i'r man silio. Mae cyn-genhedlaeth y byd yn symlach fyth, gyda'r gorchymyn:

/wb fill

Gan y gallai'r weithred hon o bosibl effeithio ar chwaraewyr ar y gweinydd, sicrhewch eich bod yn cadarnhau:

/wb confirm

Yn gyfan gwbl, cymerodd tua 5000 awr i gynhyrchu byd gyda radiws o 40 o flociau (~2 biliwn o flociau) ar brosesydd Intel® Xeon® Gold 6240. Felly, os ydych am gynhyrchu map mwy o faint ymlaen llaw, byddwch yn ymwybodol bydd y broses hon yn cymryd llawer iawn o amser , a bydd y gweinydd TPS yn cael ei leihau'n ddifrifol. Hefyd, cofiwch y bydd hyd yn oed radiws o 5000 o flociau angen tua 2 GB o ofod disg.

Er gwaethaf y ffaith bod y fersiwn ddiweddaraf o'r ategyn wedi'i ddatblygu ar gyfer fersiwn Minecraft 1.14, canfuwyd yn arbrofol ei fod yn gweithio'n wych ar fersiynau dilynol. Mae rhestr gyflawn o orchmynion gydag esboniadau ar gael ar y fforwm ategyn.

Blociau problem

Mae yna amrywiaeth eang o flociau yn Minecraft. Fodd bynnag, hoffem dynnu sylw darllenwyr at floc o'r fath TNT. Fel y mae'r enw'n awgrymu, mae'r bloc hwn yn ffrwydryn (nodyn y golygydd - mae hon yn eitem gêm o'r byd rhithwir ac nid oes gan yr eitem hon unrhyw beth â ffrwydron go iawn). Mae ei hynodrwydd yn golygu bod grym disgyrchiant yn dechrau gweithredu arno ar hyn o bryd. Mae hyn yn gorfodi'r gweinydd i gyfrifo'r holl gyfesurynnau os yw'r bloc yn dechrau cwympo ar hyn o bryd.

Os oes sawl bloc TNT, yna mae tanio un bloc yn achosi tanio ac actifadu disgyrchiant mewn blociau cyfagos, gan eu gwasgaru i bob cyfeiriad. Mae'r holl fecaneg hardd hon ar ochr y gweinydd yn edrych fel llawer o weithrediadau i gyfrifo llwybr pob bloc, yn ogystal â rhyngweithio â blociau cyfagos. Mae'r dasg yn hynod o ddwys o ran adnoddau, y gall unrhyw un ei gwirio'n hawdd. Cynhyrchu a thanio ciwb o flociau TNT sydd o leiaf 30x30x30 mewn maint. Ac os oeddech chi'n meddwl bod gennych chi gyfrifiadur hapchwarae pwerus, da, roeddech chi'n camgymryd yn fawr 😉

/fill ~ ~ ~ ~30 ~30 ~30 minecraft:tnt

Optimeiddio gweinydd Minecraft
Arweiniodd “arbrawf” tebyg ar weinydd gydag Intel® Xeon® Gold 6240 at gwymp TPS difrifol a llwyth CPU o 80% yn ystod yr amser tanio bloc cyfan. Felly, os yw unrhyw chwaraewr yn gallu gwneud hyn, yna bydd y broblem perfformiad yn effeithio ar yr holl chwaraewyr ar y gweinydd.

Opsiwn anoddach fyth - Grisialau Ymyl. Serch hynny, os yw TNT yn ffrwydro'n ddilyniannol, yna mae'r Edge Crystals yn tanio i gyd ar yr un pryd, a all mewn theori atal gweithrediad y cymhwysiad gweinydd yn llwyr.

Dim ond trwy wahardd y defnydd o'r blociau hyn ym myd y gêm yn llwyr y gellir osgoi'r senario hwn. Er enghraifft, defnyddio'r ategyn WorldGuard. Sylwch nad yw'r ategyn hwn ynddo'i hun yn gweithio heb ategyn arall WorldEdit. Felly gosodwch WorldEdit yn gyntaf, ac yna WorldGuard.

Casgliad

Nid yw rheoli gweinydd gêm yn gywir yn dasg hawdd. Bydd anawsterau a llai o berfformiad yn aros amdanoch bob tro, yn enwedig os na fyddwch yn ystyried y mecaneg gêm eu hunain. Mae'n amhosibl rhagweld popeth, oherwydd weithiau gall chwaraewyr fod yn greadigol iawn wrth geisio gorfodi'r gweinydd i wneud rhywbeth nad oedd wedi'i fwriadu ar ei gyfer. Dim ond cydbwysedd rhesymol rhwng risgiau a chyfyngiadau sefydledig fydd yn caniatáu i'r gweinydd weithredu'n barhaus a pheidio â lleihau ei berfformiad i werthoedd critigol.

Yn ystod cwarantîn, collodd rhai o'n gweithwyr eu hoff swyddfeydd a phenderfynwyd eu hail-greu y tu mewn i Minecraft. Mae gennych hefyd gyfle i ddod i'n gweld heb beryglu'ch iechyd na gwastraffu amser ar y ffordd.

I wneud hyn, rydym yn gwahodd pawb i'n gweinydd minecraft.selectel.ru (fersiwn cleient 1.15.2), lle cafodd y canolfannau data Tsvetochnaya-1 a Tsvetochnaya-2 eu hail-greu. Peidiwch ag anghofio cytuno i lawrlwytho adnoddau ychwanegol, maent yn angenrheidiol ar gyfer arddangos rhai lleoliadau yn gywir.

Mae quests, codau hyrwyddo, wyau Pasg a chyfathrebu dymunol yn aros amdanoch chi.

Ffynhonnell: hab.com

Ychwanegu sylw