Hoppa till innehållet
NORDGUILD
Prestanda och drift

Prestanda och drift

Prestandaskyddet håller entitetsantalet nere genom att blockera nya djur i chunkar som redan är fulla. Det dödar aldrig något som redan finns, kör aldrig periodiska världsskanningar och rör aldrig databasen. /prestanda visar hur servern mår, vilka chunkar som är värst och var gränserna går – spelare får bokvyer, konsolen får samma innehåll som text. Själva driften – att starta, stoppa, följa loggen och skicka kommandon till servern – sköts på VPS:en med hjälpkommandot sudo mc, som numera styr Pterodactyl.

Se hur servern mår

Två kommandon räcker för en snabb bild.

  1. Serverhälsa i spelet

    Bokvy med TPS för 1, 5 och 15 minuter, MSPT, minne, laddade chunkar, entiteter totalt och blockerade spawns sedan start. Sida 2 visar entiteter och chunkar per värld, sida 3 de tio värsta chunkarna med koordinater och dominerande typ.

    /prestanda
  2. Systemhälsa

    Databaspingen, senaste migreringen, TPS, MSPT, minne, upptid, cache-storlekar och alla schemalagda jobb.

    /nordguild hälsa
  3. Var är entiteterna

    Antal per typ i en värld, sorterat fallande. Utan argument används världen du står i. Konsolen får första världen.

    /prestanda entiteter [värld]
  4. Står du i en full chunk?

    Alla entiteter per typ i chunken du står i, mot gränsen. En full chunk visas i rött.

    /prestanda chunk

Starta och stoppa servern

Hjälpkommandot sudo mc körs på VPS:en och tar en del som argument: paper (huvudservern), vantrum (väntrummet), velocity (proxyn) eller alla. Kör sudo mc utan argument för hjälptexten.

  1. Se vad som kör

    Visar körstatus för alla tre delarna.

    sudo mc status alla
  2. Starta om huvudservern

    Spelarna hamnar i kön under omstarten och släpps in igen så fort servern svarar.

    sudo mc restart paper
  3. Följ loggen

    Underkommandot heter logg, inte logs, och det FÖLJER loggen löpande. Avsluta med Ctrl+C. Vill du bara kasta ett öga läser du logs/latest.log i serverns volym direkt i stället.

    sudo mc logg paper
  4. Skicka ett kommando till serverkonsolen

    Skriv kommandot utan inledande snedstreck, inom citattecken. Så här körs alla konsolkommandon, till exempel uppsättningen av spawnzonen.

    sudo mc cmd paper "zon lista"
  5. Ta en backup direkt

    Kör backupen nu i stället för att vänta på nattkörningen 03:15.

    sudo mc backup

Kommandon

/prestandaAdminKonsol
  • Bokvy med TPS för 1, 5 och 15 minuter, MSPT, minne, laddade chunkar, entiteter totalt och blockerade spawns sedan start. Sida 2: entiteter och chunkar per värld. Sida 3: de tio värsta chunkarna med koordinater och dominerande typ. Knappar leder till de övriga vyerna. Konsolen får samma innehåll som text.

alias: /perfnordguild.admin.prestanda

/prestanda chunkAdmin
  • Alla entiteter per typ i chunken du står i, mot gränsen. En full chunk visas i rött.

nordguild.admin.prestanda

/prestanda gränserAdminKonsol
  • Hela gränslistan, typ för typ, samt om tama och namngivna djur räknas med.

alias: gransernordguild.admin.prestanda

/prestanda entiteterAdminKonsol
  • /prestanda entiteter [värld]

    Antal per typ i en värld, sorterat fallande. Utan argument används världen du står i; konsolen får den första världen.

nordguild.admin.prestanda

/prestanda larmAdminKonsol
  • De senaste prestandalarmen sedan serverstart, med tid och text.

nordguild.admin.prestanda

/prestanda hjälpAdminKonsol
  • Kommandolistan i chatten. Det du också får om du skriver ett okänt underkommando.

alias: hjalpnordguild.admin.prestanda

Driftkommandot sudo mc

UnderkommandoVad det gör
sudo mc start [del]Startar servern.
sudo mc stop [del]Stoppar servern ordentligt, så världen och databasen hinner skrivas klart.
sudo mc restart [del]Startar om servern.
sudo mc kill [del]Tvångsstoppar processen. Bara när stop inte biter – världen kan förlora det som inte hunnit sparas.
sudo mc status [del]Visar om servern kör.
sudo mc logg [del]FÖLJER loggen löpande (heter logg, inte logs). Avslutas med Ctrl+C.
sudo mc cmd <del> "<kommando>"Skickar ett kommando till serverkonsolen. Skriv kommandot utan inledande snedstreck.
sudo mc backup [del]Kör backupen direkt.
sudo mc panel [del]Genväg till Pterodactyl-panelen.

Delar som sudo mc kan riktas mot

DelVad det ärPort
paperHuvudservern med hela spelet och NordGuild.jar.25566, endast lokalt
vantrumVäntrummet för köade spelare, NordGuildVantrum.jar.25567, endast lokalt
velocityProxyn som tar emot spelarna och kör kösystemet NordGuildKo.25565, publik
allaAlla tre på en gång.

Entitetsgränser per chunk (prestanda.entitetsgranser)

EntitetstypMax per chunk
CHICKEN20
COW20
SHEEP20
PIG20
VILLAGER20
HORSE10
DONKEY10
MULE10
BEE15
RABBIT15
LLAMA12
GOAT15
AXOLOTL15
CAT10
WOLF10
PARROT10
IRON_GOLEM8
SNOW_GOLEM8

Övriga inställningar under prestanda: i config.yml

NyckelVad den styrStandard
entitetsgranser_aktivaOm skyddet är på alls. false stänger av allt.true
entitetsgranserMax per chunk och typ. Namnen är Bukkits egna entitetsnamn och du får lägga till egna rader fritt, till exempel FOX: 10 eller PANDA: 8. 0 eller ett negativt tal betyder ingen gräns för den typen.Se tabellen ovan
anledningarVilka spawn-anledningar som kontrolleras. Okända namn hoppas över med en varning i konsolen.BREEDING, EGG, DISPENSE_EGG, SPAWNER_EGG, BUILD_IRONGOLEM, BUILD_SNOWMAN, BUILD_COPPERGOLEM, CURED, OCELOT_BABY, DUPLICATION
rakna_tamaRäknas tama djur (häst, varg, katt, papegoja med ägare) mot gränsen?true
rakna_namngivnaRäknas djur med namnbricka mot gränsen?true
cache_millisekunderHur länge en räkning per chunk och typ återanvänds. Skyddar mot dispenser-spam.2000
meddelande_cooldown_sekunderMax ett blockeringsmeddelande per spelare så här ofta.3
skanning_chunks_per_tickHur många chunkar /prestanda skannar per tick.250
skanning_cache_sekunderHur länge ett skanningsresultat återanvänds när flera adminer tittar samtidigt.20
overvakning.aktivOm serverhälsan mäts och larmar.true
overvakning.intervall_sekunderHur ofta TPS, MSPT, minne, chunkar och entiteter mäts.60
overvakning.tps_larmLarma när 1-minuters-TPS understiger detta.17
overvakning.entiteter_larmLarma när en värld har fler entiteter än så här.8000
overvakning.larm_cooldown_minuterSamma larmtyp upprepas tidigast efter så här många minuter.10

Var loggarna finns

VarVad
sudo mc logg paperHuvudserverns konsol i realtid.
logs/latest.log i serverns volymHuvudserverns logg. Äldre loggar ligger som logs/*.log.gz bredvid.
Proxyns logs/latest.logAnslutningar och kö.
/revision i speletRevisionsloggen i databasen: ekonomi, företag, samhällen, claims, kontrakt, jobb, butiker, marknad, admin och säkerhet.
/nordguild hälsaDatabasping, senaste migrering, TPS, MSPT, minne, upptid, cache-storlekar och schemalagda jobb.

Bra att veta

Varning: Underkommandot heter logg och det följer loggen

sudo mc logg paper öppnar en löpande vy som inte tar slut av sig själv – avsluta med Ctrl+C. Vill du bara kasta ett snabbt öga läser du logs/latest.log i serverns volym direkt i stället.

Varning: Stoppa alltid ordentligt

Använd stop, inte kill, så att världen och databasen hinner skrivas klart. kill finns för när servern har hängt sig och stop inte biter.

Bara ett par saker blockeras – med flit

Skyddet stoppar bara sådant en spelare kan upprepa i det oändliga: avel, kastade ägg, dispenserägg, spawnägg, handbyggda järnvarelser, snögubbar och koppargolem, botade bybor, ocelotungar och duplicering. Naturliga spawns, spawners, chunkgenerering, portaler och förvandlingar rörs aldrig. Avel avbryts så att ingen unge skapas, och kastade ägg kläcks helt enkelt inte.

Varning: Järnfarmar omfattas inte som standard

Järnvarelser som byn själv bygger har spawn-anledningen VILLAGE_DEFENSE, inte BUILD_IRONGOLEM. Gränsen IRON_GOLEM: 8 gäller därför i praktiken bara golem som en spelare staplar ihop för hand. Lägg till VILLAGE_DEFENSE i prestanda.anledningar om järnfarmar ska omfattas – det är ett spelbalansbeslut, inte en teknisk detalj.

Hinkutsläpp är utelämnat med flit

BUCKET (axolotl, fisk, grodyngel som hälls ut) står inte i listan. Hinken är redan tömd när händelsen når pluginet, så en blockering skulle förstöra spelarens fångade djur. Gränsen AXOLOTL: 15 gäller alltså inte hinkutsläpp.

Spelaren får alltid veta varför

När en spelares egen handling stoppas kommer en kort text i actionbaren, till exempel Här finns redan 20 hönor i den här chunken, strypt till högst en per spelare var meddelande_cooldown_sekunder. Vid avel och kastat ägg går meddelandet till spelaren i händelsen, vid spawnägg och golembyggen till närmaste spelare inom sex block. Fodret respektive ägget är redan förbrukat när händelsen når pluginet – därför tas föräldrarna samtidigt ur parningsläge, annars hade servern försökt para dem igen varje tick i upp till 30 sekunder. Spawns utan någon som väntar på svar, som dispenserägg och botade bybor, blockeras tyst.

Undantagen gäller bara räkningen

prestanda.rakna_tama: false och prestanda.rakna_namngivna: false gör att tama respektive namngivna djur inte räknas mot gränsen. Befintliga djur rörs aldrig och kan alltid flyttas dit ägaren vill, oavsett hur många som redan står i chunken.

Så larmar övervakningen

prestanda.overvakning mäter TPS, MSPT, minne, laddade chunkar och entiteter per värld var intervall_sekunder (standard 60) och larmar i konsolen, till online-adminer med nordguild.admin.prestanda och som revisionspost under kategorin ADMIN när 1-minuters-TPS understiger tps_larm (17) eller en värld har fler entiteter än entiteter_larm (8000). Samma larmtyp upprepas tidigast efter larm_cooldown_minuter. Modulen har inga ekonomiska flöden alls.

/prestanda är helt läsande

Kommandot ändrar aldrig världen, tar aldrig bort entiteter och rör varken ekonomin eller databasen. Skanningen körs med budget – prestanda.skanning_chunks_per_tick chunkar per tick – och resultatet återanvänds i prestanda.skanning_cache_sekunder sekunder, så flera samtidiga adminer ger bara en skanning.

Varning: Uppdatera pluginet

Ta backup först. Byt sedan jaren och starta om. Migrationerna körs automatiskt vid start, före modulerna – loggraden Databas ansluten (N migrationer kördes) visar hur många som var nya. Bara EN NordGuild-jar får ligga i plugins/, annars laddas den gamla eller båda. Ändringar i config.yml och sv.yml kräver ingen omstart, bara /nordguild reload, och nya nycklar fylls automatiskt på från jaren; databasinställningar och nya migrationer kräver full omstart. Kö-pluginen uppdateras på samma sätt, NordGuildKo på proxyn och NordGuildVantrum på väntrummet, och kön kan laddas om med /köadmin ladda. Rulla bara tillbaka till en äldre jar om inga nya migrationer kördes – har schemat ändrats måste databasen återställas från dumpen som togs före uppdateringen.

Startordning efter en omstart av hela maskinen

PostgreSQL först, sedan huvudservern och väntrummet, sist proxyn. Proxyn klarar att huvudservern är nere – kön går då i sondläge – men pluginet stänger av sig om databasen saknas.

Varning: Backup varje natt 03:15

Rutinen tar världarna och en pg_dump och sparar fjorton dagars historik. Snabba ögonblicksbilder inifrån spelet får du med /nordguild backup db och /nordguild export allt. Testa återställningen minst en gång – en backup du aldrig läst tillbaka är en förhoppning, inte en backup. Återställ alltid världarna och databasen från samma tidpunkt, annars kommer föremål i kistor och pengar i databasen i otakt.

Pluginets egna loggrader

De börjar med [NordGuild]. Ett modulfel vid start ser ut så här: Modul <namn> kunde inte aktiveras – stänger av pluginet. Det FÖRSTA felet i loggen är orsaken.