V sekci STYGION Keystone
Co tvůj modpack stojí
Zátěžový test na tvém vlastním stroji: kolik lidí to unese, co povolí první a do kterého modu ten čas jde.
Aktualizováno
„Kolik lidí ten server unese?" má každý majitel serveru a většina se to dozví ten večer, kdy na tom záleží. Tohle na to odpoví v úterý.
/keystone test 20
Půl minuty měří server prázdný, pak staví testovací hráče po skupinách, počká, až se to usadí, a skončí větou, kterou jde přečíst nahlas:
this machine held all 20 players (20.0 TPS at the end, 47.11 ms at the 95th);
every ten players cost about 8.55 ms a tick; at 20 it was using 47.11 ms
of the 50 a tick allows, leaving 2.89
/keystone test stop ho ukončí dřív; testovací hráči se uklidí tak jako tak.
Co se měří a proč zrovna takhle
Nejdřív prázdný server. „Tick trval 34 ms" samo o sobě neznamená nic — každé číslo v reportu je rozdíl proti tomuhle stroji, tomuhle packu, tomuhle světu, dneska.
Testovací hráči stojí daleko od sebe. Tohle je ta část, kvůli které to funguje. Server tiká svět jen kolem hráčů, do vzdálenosti, kterou má v simulation-distance — a dvacet lidí na jedné hromádce drží tolik světa co jeden. Skuteční hráči jsou rozesetí po mapě a každý si do ticku táhne svůj kus. Poloměr kruhu se proto dopočítá z toho, jak daleko tvůj server doopravdy tiká, aby se dvě oblasti nedotýkaly.
Naměřeno na jednom 401modovém serveru v den, kdy se to spravilo: 10 block entities předtím, 29 815 potom. Ten samý pack, ten samý stroj — jen hráči stáli tam, kde by stáli doopravdy.
Příchod a stání jsou dvě různá čísla. Připojený hráč nutí server načíst svět kolem sebe; stojící hráč ho nutí tikat to, co je načtené. Report je nemíchá, protože „unese šedesát" by jinak schovalo, že každý příchod je půlvteřinové zaseknutí — a to je to, co lidi cítí, a úplně jiná vada k opravě.
Co povolilo první
Věta na konci pojmenuje, co došlo: procesor, paměť, garbage collector, nebo načítání chunků. Jsou to čtyři různé problémy se čtyřmi různými odpověďmi a vědět který je většina té práce. Za pomalým tickem se schovají všechny čtyři.
Do kterého modu ten čas šel
Profil vzorkuje serverové vlákno a každý vzorek připíše modu, kterému patří třída na vrcholu zásobníku — takže z „tvůj tick trvá 20 ms" je „z toho 12 % je tenhle mod".
Dvě čísla, protože jsou to dvě otázky:
- Podíl na ticku — co ten mod stojí, když je všechno v pořádku. To je odpověď na „co mi žere výkon".
- Podíl na pozdním čase — čí kód běžel, když server přetáhl rozpočet. Prázdný na každém zdravém serveru, což je většina, a proto to není to hlavní číslo.
Když to chceš sdílet
Po běhu se zeptá. Když řekneš ano, jde ven tohle a nic jiného: co bylo načtené, co je to za stroj a co se stalo. Žádné jméno serveru, žádná adresa, žádný hráč, žádné id — ani náhodné. Dostaneš zpátky adresu, kde to na stygion.eu/performance přistálo.
Proč to stojí za to: nikdo neví, co modpacky stojí. Doporučení „na tenhle pack dej 8 GB" se opisují po fórech a nikdo je nikdy neměřil. Když těch běhů bude dost, ta stránka odpoví na „unese moje mašina tenhle pack a dvacet lidí" měřením, ne odhadem — a taky na to, které flagy JVM doopravdy drží kolektor zkrátka.
Jednou denně k tomu jde pětiminutový vzorek běžného provozu. Umělá zátěž nikdy nenapodobí, co si v tom packu hráči postavili; tohle ano. Vypíná to:
/keystone set bench.share-live false
A vyprázdněné bench.send-to zastaví i běh, který bys zveřejnil ručně.
Na co si dát pozor
- Nepouštěj to hned po startu. Server ještě dojíždí a test to změří jako svou odpověď.
- Testovací hráči se na konci vždycky uklidí, ať běh skončí jakkoliv — i když ho zastavíš, i když se do toho vypne server.
- Nic z toho, co udělají, se nezapisuje do světa.
- Dva běhy jsou porovnatelné, jen když je změřila stejná generace měření. Číslo generace jde s každým během a veřejná čísla je nikdy nemíchají — když se měření zlepší, staré běhy se nezahazují, jen se počítají zvlášť.
Pomohla vám tahle stránka?
Otevře panel zpětné vazby s touhle stránkou v příloze. Přistane do jedné fronty se vším ostatním.