RE:NODE

Hosting serveru Garry's Mod: na co se zaměřit, než zaplatíš

Text: Tým RE:NODE
16 min čtení


Dobrý hosting Garry's Mod je hlavně o jednom jádru procesoru. Server spouští Lua kód všech addonů i fyziku všech propů na jediném hlavním vlákně, takže rychlé jádro s jasně uvedeným a vynucovaným podílem znamená víc než kterýkoli jiný řádek v ceníku. Potom následuje paměť dimenzovaná podle tvé sbírky addonů, ne podle počtu slotů, plný přístup k souborům, abys mohl upravit Lua kód a odstranit addon, databáze MySQL ve stejné síti, pokud provozuješ DarkRP nebo sdílený admin mod, lokalita blízko hráčů a upřímný popis toho, co se stane při útoku. „128 tick“, „neomezené sloty“ a dlouhý seznam regionů jsou většinou jen výzdoba.

Tenhle článek je o posuzování nabídky. Instalace serveru, spouštěcí řádek a server.cfg jsou v článku Nastavení serveru Garry's Mod, dostání addonů na počítače hráčů v článku Workshop addony a FastDL, samotný DarkRP v článku Průvodce serverem DarkRP a hledání addonu, který server zpomaluje, v článku Lagy serveru Garry's Mod a chyby v Lua. Tady se z těchto poznatků stávají otázky, které si položit před platbou.

Co Garry's Mod server žádá od hostingu#

Server Garry's Mod je srcds spuštěný s herním adresářem garrysmod (Steam app id 4020), s módem a hromadou addonů navrch. Engine je starý a nenáročný, skoro všechno, co stojí zdroje, je obsah, který napsal někdo jiný. To určuje, co musí hosting poskytnout:

  • Jedno rychlé jádro pro hlavní vlákno, na kterém postupně běží Lua hooky, časovače, think funkce entit i fyzika.
  • Paměť podle seznamu addonů. Modely, materiály a Lua kód každého připojeného addonu drží server v paměti, ať je připojen jeden hráč, nebo čtyřicet.
  • Disk pro základní instalaci (několik gigabajtů), cache Workshopu, která roste s tvou sbírkou, a logy a datové soubory, které zapisují addony.
  • Jeden dostupný port: 27015 UDP přenáší herní provoz i dotazy serverového prohlížeče. RCON přes TCP a SourceTV jsou navíc.
  • Databázi pro DarkRP na více serverech, pro admin módy sdílející hodnosti mezi servery a pro řadu addonů na logování, inventář a ekonomiku, které MySQL očekávají.
  • Tvoji kontrolu nad soubory. Oprava serveru Garry's Mod většinou znamená upravit Lua soubor, odstranit složku addonu nebo přečíst log. Cokoli mezi tebou a souborovým systémem zpomaluje každou opravu.

Šířka pásma při hře je malá. Hráči si všimnou prvního připojení: obsah z Workshopu jde ze Steamu, ale cokoli posílané přes FastDL jde odtud, kam to umístíš. To je otázka obsahu, ne hostingu, a je rozebrána níže.

CPU: rychlost jednoho vlákna a poctivý podíl#

Tady se hosting Garry's Mod vyhrává nebo prohrává. Server musí dokončit každý tick v rámci svého rozpočtu - asi 15 ms při 66 ticích, 30 ms při 33 - a všechno na hlavním vlákně se na něj počítá. Pokud addon stráví 10 ms na tick v hooku Think, jsou to dvě třetiny rozpočtu při 66 ticích pryč a žádný počet dalších jader je nevrátí. Další jádra pomáhají při načítání, síťovém provozu a operačním systému kolem procesu, ale to vlákno nezrychlí.

Otázky tedy míří na jedno jádro:

  1. Jak rychlé je jedno jádro? Moderní desktopový procesor nebo serverový čip s vysokým taktem znatelně zkracuje čas ticku. Starší serverový procesor s mnoha jádry a nízkým taktem může na papíře vypadat skvěle a Lua stejně spouštět pomalu. Pokud hosting uvádí procesor, vyhledej si výkon jednoho vlákna, ne počet jader.
  2. Kolik z něj je tvého? „2 vCPU“ může znamenat dvě zaručená jádra, dvě vlákna sdílená s davem sousedů, nebo podíl, který se ve špičce zmenšuje. Zeptej se, jak je limit vynucován. Skromný pevný limit, který vidíš v grafu, je lepší než štědré číslo bez záruky - sdílené CPU a hluční sousedé vysvětlují, proč nezaručená varianta selhává přesně tehdy, když je server plný.
  3. Vidíš ho? Graf CPU proti limitu tarifu spolu s příkazem stats ve hře ti řekne, jestli serveru CPU chybí, nebo jím plýtvá.

Graf má jednu past. Server vytížený na 100 % jednoho jádra na tarifu se 2 vCPU ukazuje celkově 50 % a vypadá pohodově. Čtení vytížení CPU herního serveru ukazuje, jak poznat jedno přetížené vlákno za klidným součtem. V Garry's Mod je rychlejší kontrola stats v konzoli serveru: když sloupec fps klesne pod tvůj tick rate, hlavní vlákno nestíhá.

Na RE:NODE je CPU procento jednoho jádra - 150 je 1,5 vCPU - vynucované jako pevné omezení na podíl, který sis koupil, s jedním kontejnerem na server. Server na limitu je pomalý, nikdy kvůli tomu není pozastaven. Tarify Garry's Mod jdou od 0,75 vCPU na nejmenším stupni po 2,5 na největším.

RAM podle módu a počtu addonů#

Paměť je hlavní číslo na každém tarifu Garry's Mod a počet slotů je špatné vodítko k tomu, kolik jí potřebuješ. Lepší je velikost sbírky. Realistická tabulka:

ServerRAMvCPU
Sandbox, přátelé, méně než 30 addonů1-2 GB0.75-1
TTT, Murder nebo Prop Hunt, 16-24 hráčů2-3 GB1-1.5
Sandbox se 100+ addony3-4 GB1.5-2
DarkRP, 32-40 hráčů4-6 GB2-2.5
Libovolný mód, sbírka s 200+ položkami4-6 GB2+

Kde v rozmezí skončíš, ovlivňuje několik věcí:

  • Počet a typ addonů. Balíky propů, vozidel a obsah map stojí paměť jednou, při načtení. Addony s hodně Lua kódu - inventáře, HUDy se serverovou logikou, systémy NPC - stojí paměť i CPU nepřetržitě.
  • Mód. Kolové módy jako TTT pravidelně resetují mapu, což maže entity a drží paměť stabilní. Servery DarkRP a sandbox hromadí entity, propy a data až do dalšího restartu, takže rozhoduje hodnota těsně před nočním restartem, ne po startu. Průvodce serverem TTT podrobně popisuje, co tento mód potřebuje.
  • Mapy. Velká RP mapa s hustými propy používá znatelně víc než gm_flatgrass. Některé mapy pro TTT a RP navíc vyžadují připojený obsah Counter-Strike: Source, což zvyšuje nároky na disk i paměť.

Co z toho plyne pro srovnávání nabídek: kupuj na konec dne a zjisti, co se stane na limitu. Některé hostingy nechají server swapovat na disk, čímž se nedostatek paměti změní v celý večer sekání. Jiné proces zastaví. Na RE:NODE se server, který dosáhne limitu paměti, zastaví a čistě restartuje místo swapování, takže problém s pamětí se projeví jako nevysvětlený restart v podobnou denní dobu, ne jako pomalý lag. Tak či tak bys měl vědět, které chování kupuješ.

Strop 32 bitů

Jedna zvláštnost Garry's Mod dělá velké tarify méně užitečné, než vypadají. Standardní větev spouští 32bitový serverový proces, který adresuje zhruba 3-4 GB bez ohledu na to, kolik paměti tarif má. Server s obří sbírkou může spadnout s chybami alokace, zatímco panel ukazuje volné gigabajty. Beta větev x86-64 tento strop odstraňuje za cenu toho, že potřebuješ 64bitové buildy všech binárních modulů v garrysmod/lua/bin/.

Než tedy zaplatíš za tarif s 8 GB pro 32bitový server, zeptej se sám sebe, jestli to server dokáže využít. Hosting, který stojí za výběr, ti dovolí zvolit větev a každý, kdo prodává tarify Garry's Mod nad 4 GB, by měl umět říct, kterou větev jeho instalace používá.

Kolekce Workshopu, FastDL a disk#

Garry's Mod má dva systémy obsahu a hosting je ovlivňuje různě.

Strana serveru - co server načítá - je obvykle kolekce Workshopu připojená při startu:

bash
+host_workshop_collection 123456789 -authkey <steam_web_api_key>

Server kolekci při startu stáhne a uloží do cache. To vyžaduje odchozí přístup ke Steamu, disk pro cache a spouštěcí řádek, který můžeš skutečně upravit. Hosting, který ti dovolí vybírat jen z pevného seznamu addonů nebo přepisuje tvoje spouštěcí parametry, to dělá těžší, než musí být. Cache také zpomaluje start s rostoucí velikostí kolekce, což vadí, když po pádu nebo restartu čekají hráči.

Strana klienta - co si stahují hráči - je práce Steamu pro všechno přidané přes resource.AddWorkshop a práce FastDL pro volné soubory nastavené přes resource.AddFile. FastDL je obyčejný webový server s komprimovanými kopiemi tvých souborů, na který ukazuje sv_downloadurl:

server.cfg
sv_downloadurl "https://fastdl.example.net/garrysmod/"sv_allowdownload 0

FastDL nemusí běžet na herním serveru a obvykle by neměl. Malý webhosting servíruje statické soubory mnohem lépe než srcds a drží stahovací provoz mimo herní proces. Při srovnávání nabídek zkontroluj, jestli herní tarif obsahuje webový server, nebo potřebuješ samostatný - a pokud přecházíš hlavně na obsah z Workshopu, FastDL možná nepotřebuješ vůbec. Workshop addony a FastDL obsahuje celé nastavení včetně komprese .bz2 a struktury složek, na které lidé narážejí.

Na RE:NODE herní tarify webový server neobsahují, ale malý tarif z webhostingu servíruje FastDL s doménou a certifikátem, který se vystavuje a obnovuje automaticky přes jeho proxy slot. Disk na tarifech Garry's Mod je od 10 GB do 40 GB na NVMe, což pohodlně pojme velkou sbírku i její cache.

MySQL pro DarkRP, admin módy a logy#

Jeden server Garry's Mod klidně běží na SQLite. DarkRP ukládá peníze a vlastněné dveře ve výchozím stavu do garrysmod/sv.db, ULX drží skupiny a bany v datových souborech a mnoho addonů zapisuje do stejného lokálního sv.db. Pro jeden server je to v pořádku a databáze v ceně tarifu není důvod ho vybrat.

MySQL chceš, když:

  • Provozuješ více serverů a chceš mezi nimi sdílet peníze, hodnosti nebo bany.
  • Addon to očekává. Spousta addonů na logování, inventář, ekonomiku a administraci nabízí ukládání do MySQL a některé větší jsou na něm postavené. SAM umí ukládat data do MySQL; ULX na to potřebuje samostatný addon.
  • Chceš dotazovat nebo opravovat data za běhu serveru, z phpMyAdmin nebo klienta, místo zastavování serveru kvůli otevření sv.db.

Garry's Mod se k MySQL dostává přes binární modul - obvykle mysqloo - umístěný do garrysmod/lua/bin/. Modul musí odpovídat platformě a větvi serveru: gmsv_mysqloo_linux.dll pro 32bitový linuxový server, gmsv_mysqloo_linux64.dll pro x86-64. Přípona .dll na Linuxu je správně a všechny mate. Hosting, který ti nedovolí nahrávat soubory do lua/bin nebo provozuje jinou větev, než čekáš, to tiše rozbije: DarkRP se vrátí k SQLite a peníze se zdánlivě resetují.

Tři otázky pro každou nabídku:

  1. Je databáze v ceně, nebo se platí zvlášť? To mění srovnání dvou podobně vypadajících tarifů.
  2. Kde běží? Addony posílají mnoho malých dotazů. Databáze ve stejné síti odpoví za méně než milisekundu, zdarma poskytovaná vzdálená na jiném kontinentu přidá k každému dotazu desítky milisekund, což se mění v záseky, když na ni hlavní vlákno čeká.
  3. Zálohuje se a dostaneš z ní data ven? Databáze, kterou nemůžeš vyexportovat, je databáze, kterou nemůžeš přestěhovat.

Každý tarif Garry's Mod na RE:NODE obsahuje jeden slot databáze, vytvářený z panelu s vygenerovaným hostem, uživatelem a heslem, a tlačítko „Open in phpMyAdmin“, které tě přihlásí jednorázovým tokenem. Pokud chceš databázi na vlastních zdrojích, MySQL 8.4 LTS se prodává i samostatně v rámci hostingu databází. Administrace - skupiny, oprávnění a výběr mezi nimi - je v článku ULX a SAM admin.

Tick rate a co znamenají nabídky „vysokého ticku“#

Tick rate se nastavuje přes -tickrate na spouštěcím řádku. Servery Garry's Mod obvykle běží na 33 nebo 66. Jeho zvýšení zhruba zdvojnásobí náklady CPU na tick a nic nezmění na serveru, který už nestíhá.

MódRozumný tick rateProč
Sandbox, DarkRP, roleplay33Mnoho entit, míření tolik nehraje roli
TTT, Murder, Prop Hunt33-66Střední počet entit, trochu střelby
Bojově zaměřené módy66Záleží na registraci zásahů

Proto je „128tick hosting Garry's Mod“ zvláštní věc k inzerování. Každý hosting ti nechá napsat -tickrate 128; otázka je, jestli jedno jádro dokáže dokončit tick pod 8 ms s tvými načtenými addony, a u serveru DarkRP skoro jistě ne. Tarif prodávaný podle tick rate prodává spouštěcí parametr. Ty chceš svobodu nastavit hodnotu sám a CPU dost rychlé, aby ji udrželo. Co tick rate doopravdy znamená obsahuje delší výklad.

Lokalita, latence a DDoS#

Vyber lokalitu podle toho, kde jsou tvoji hráči. Source interpoluje pohyb ostatních hráčů, takže střední latenci dobře skryje, ale nad zhruba 100 ms začnou přestřelky v TTT působit nespravedlivě a propy v sandboxu zaostávají za hráčem, který je nese. Většina komunit Garry's Mod je regionální; umísti server doprostřed míst, kde bydlí štamgasti, a před platbou požádej několik z nich, ať večer pingnou testovací adresu hostingu. Latence, jitter a ztráta paketů vysvětluje, na co se dívat kromě průměru.

RE:NODE běží na jednom místě, v Německu, na hardwaru, který provozujeme sami. To vyhovuje hráčům v Evropě a okolí a je to špatná volba pro komunitu v Severní Americe nebo Asii.

Útoky jsou druhá polovina otázky sítě. Servery Source jsou už dlouho cílem záplav dotazů a reflexních útoků a komunity DarkRP přitahují zášť. Filtrování před serverem dobře zahazuje objemové záplavy, reflexní provoz a poškozené pakety. Špatně rozpozná útok, který vypadá jako skuteční klienti, od skutečných klientů. Když čteš tvrzení hostingu, hledej, co se filtruje, popsané jasnými slovy, co se stane, když filtrování nestačí (některé hostingy při velkém útoku zablokují adresu, čímž je server offline), a žádný slib nulového výpadku. Hosting, který slibuje žádný výpadek při jakémkoli útoku, ti prodává větu, ne službu. DDoS útoky na herní servery vysvětleně projde jednotlivé kategorie.

Na RE:NODE je formulace přesně tahle: filtrování před serverem, které zahazuje zjevné objemové záplavy, plus reflexní a poškozený provoz. Útoky, které vypadají jako skuteční hráči, se nefiltrují.

Část ochrany je na tobě. Drž rcon_password dlouhé nebo nenastavené a neotvírej TCP 27015, pokud RCON nepotřebuješ - RCON bezpečně vysvětluje proč. Mnoho „útoků“ na malé servery se ukáže být addonem s zadními vrátky nebo zneužitelnou net zprávou, což žádný síťový filtr nezachytí.

Funkce panelu, na kterých skutečně záleží#

Většina hostingových panelů vypadá na screenshotech stejně. Tyhle funkce budeš používat každý týden:

  • Nefiltrovaná konzole s historií. Chyby Lua se v ní ohlásí s cestou k souboru addonu, který je vyhodil. Konzole, která výstup skrývá nebo zkracuje, skrývá tvoje problémy.
  • Plný přístup k souborům včetně SFTP. Odstranění addonu je smazání složky, oprava je úprava Lua souboru. Nahrávat balík map přes formulář v prohlížeči je utrpení, přes SFTP je to rutina. SFTP a správce souborů obsahuje podrobnosti.
  • Upravitelný spouštěcí řádek. ID kolekce, mód, mapa, tick rate, maximum hráčů i větev jsou všechno tam. Panel, který ho generuje z krátkého formuláře a zahodí vše, co nezná, je problém.
  • Plánované restarty. Servery sandbox a DarkRP těží z nočního restartu. Plán, který umí poslat varovnou zprávu, počkat a pak restartovat, má větší cenu než jakékoli políčko „automatický restart při pádu“ - restartovací plány, které pomáhají se věnují načasování.
  • Zálohy mimo stroj, které můžeš obnovit sám, zahrnující garrysmod/data, sv.db a tvoji konfiguraci. Záloha uložená vedle toho, co chrání, nechrání před ztrátou serveru.
  • Subusery. Servery Garry's Mod provozují týmy správců. Vývojář potřebuje soubory, moderátorovi může stačit konzole. Rozdávání hesla k účtu je způsob, jak se servery ztrácejí.

Na RE:NODE má každý tarif stejný panel: živou konzoli s historií, správce souborů s editorem v prohlížeči, SFTP s přihlašovacími údaji pro každý server, záložku Schedules, která spouští příkazy konzole, zálohy a akce napájení v pořadí, sloty záloh uložené mimo stroj a subusery s přístupem jen ke konzoli nebo jen k souborům. Módy a addony instaluješ sám, přes správce souborů, SFTP nebo Workshop - neexistuje seznam povolených addonů ani instalátor addonů na jedno kliknutí.

Varovné signály v nabídkách hostingu Garry's Mod#

Některé nabídky jsou prostě drahé. Jiné ti řeknou, jak hosting funguje.

  • „Neomezené sloty.“ Garry's Mod omezuje -maxplayers na 128 a skutečným limitem je hlavní vlákno dávno předtím. „Neomezené“ znamená, že to nikdo neověřil.
  • „Prémiové addony zdarma“ nebo „v ceně kompletní balík DarkRP“. Placené addony pro Garry's Mod se prodávají na kupujícího, obvykle přes tržiště Garry's Mod s kontrolou licence. Bezplatný balík takových addonů je téměř vždy uniklý a uniklé addony jsou známou cestou pro zadní vrátka, která dávají někomu jinému kontrolu nad serverem na úrovni RCON. Co dělat, když je server hacknutý je stránka, kterou nechceš potřebovat.
  • Údaj o vCPU bez vysvětlení. „Až 4 jádra“ bez slova o vynucování obvykle znamená to, co zbyde.
  • Velké tarify bez slova o větvi. 8 GB na 32bitovém serveru je 4 GB, které nemůžeš využít.
  • Žádná možnost nahrát binární moduly nebo upravit spouštěcí řádek. Přijdeš o MySQL, 64bitovou větev i polovinu užitečných addonů.
  • Žádná databáze, nebo databáze na jiném kontinentu. Náklad, který zjistíš po týdnu záseků.
  • Žádné zálohy, nebo zálohy na stejném disku. Viz zálohy, které opravdu obnovíš.
  • Sliby DDoS bez výpadků a 100% SLA. Nikdo je nesplňuje, takže přemýšlíš, co dalšího na stránce je jen dekorace.

Nic z toho nedokazuje, že je hosting nepoctivý. Několik z toho jsou znaky produktu postaveného pro jiného zákazníka. Ale komunita na prvním hostingu běží měsíce a pozdější stěhování znamená víkend kopírování datových složek a přesměrování hráčů.

Kontrolní seznam před platbou#

V pořadí, v jakém se vyplatí kontrolovat:

  1. Lokalita blízko většiny hráčů, potvrzená pingem od několika z nich.
  2. CPU: uvedený podíl rychlého jádra, vynucovaný a viditelný v grafu.
  3. Paměť pro tvoji sbírku addonů na konci dne, se známým chováním na limitu a známou větví.
  4. Spouštěcí řádek a soubory plně upravitelné, dostupné SFTP, zapisovatelný lua/bin.
  5. Databáze ve stejné síti, pokud ji potřebuješ, v ceně nebo započítaná do srovnání.
  6. FastDL naplánované: jen Workshop, nebo malý webhosting vedle herního serveru.
  7. Zálohy mimo stroj, obnovitelné tebou.
  8. Upřímný popis DDoS a cesta k podpoře, kterou sis vyzkoušel.

K částem, které platí pro každou hru, viz jak vybrat hosting herních serverů a požadavky herních serverů na CPU.

FAQ#

Kolik RAM potřebuje server Garry's Mod?

1-2 GB pro sandbox nebo TTT server se skromnou sbírkou, 3-4 GB po překročení zhruba sta addonů a 4-6 GB pro vytížený server DarkRP. Měř těsně před nočním restartem, ne po startu, a pamatuj, že výchozí 32bitový server nevyužije o moc víc než asi 4 GB.

Je server DarkRP náročnější než TTT?

Obvykle ano. TTT resetuje mapu každé kolo, což drží počty entit i paměť na uzdě. DarkRP hromadí propy, tiskárny a data hráčů celou session a jeho addony bývají náročné na Lua, takže při stejném počtu hráčů potřebuje víc paměti i rychlejší hlavní vlákno.

Potřebuji MySQL pro server Garry's Mod?

Pro jeden server ne. SQLite v sv.db zvládá DarkRP i většinu addonů dobře. MySQL se vyplatí, když více serverů sdílí peníze, hodnosti nebo bany, nebo když addon, který chceš, je na něm postavený.

Zlepší vyšší tick rate plynulost serveru?

Jen pokud ho CPU udrží. Server, který už ve stats padá pod svůj tick rate, bude s vyšším horší. Nejdřív oprav náročné addony, pak případně zvyš hodnotu, pokud je rezerva.

Můžu hostovat FastDL na stejném serveru?

Můžeš, ale malý samostatný webový server to zvládne lépe a drží stahovací provoz mimo herní proces. Mnoho serverů dnes používá jen obsah z Workshopu a FastDL nepotřebuje vůbec.

Můžu server Garry's Mod později přestěhovat k jinému hostingu?

Ano. Zkopíruj garrysmod/addons, garrysmod/data, garrysmod/cfg, sv.db a všechny binární moduly, vyexportuj a naimportuj databázi MySQL, pokud ji používáš, zkontroluj shodu větve a nasměruj hráče na novou adresu. Stěhování serveru bez ztráty hráčů pokrývá zbytek.