Většina lidí se o šířku pásma bojí a pak využije zlomek procenta toho, co by kdy byl problém. Herní server s dvaceti hráči je stálý pramínek měřený v jednotkách megabitů. Malá webová aplikace servíruje většinu bajtů jako cachované soubory, které se tvého procesu ani nedotknou. Ani jedno není blízko žádnému limitu, o kterém by stálo za to mluvit. Provoz ve skutečnosti vytváří úplně jiný seznam - stahování souborů, offsite zálohy, video a útoky - a než začneš porovnávat přenosové limity mezi hostingy, stojí za to vědět, na kterém seznamu jsi.
Tento článek ti dává čísla: kolik stojí hráč, jak převést kilobajty za sekundu na měsíční objem, které zátěže opravdu přenášejí terabajty, jak změřit svoji vlastní a co znamená „unmetered“, když někdo musí zaplatit uplink.
Kolik šířky pásma hráč skutečně stojí#
Důležité číslo je odchozí provoz ze serveru, protože právě tím směrem se stav hry rozesílá všem najednou. Příchozí je mnohem menší: klient posílá stisky kláves a pohyb myši, nanejvýš pár kilobajtů za sekundu.
| Zátěž | Na hráče, odchozí ze serveru | Co číslo ovlivňuje |
|---|---|---|
| Minecraft (Java) | 5-20 KB/s ustáleně | view-distance, počet entit, jak rychle se lidé pohybují |
| Valheim | 50-150 KB/s | hustota zóny, počet postavených dílů poblíž |
| Source engine při 64 tick | 30-60 KB/s | tick rate a klientský convar rate |
| Survival sandboxy (Project Zomboid, 7 Days to Die, DayZ) | 30-150 KB/s | entity a hráči v dohledu |
| Rozsáhlé simulace (Arma 3) | 50-250 KB/s | jednotky AI, vozidla, MaxBandwidth v basic.cfg |
| Discord bot | pod 1 KB/s | heartbeaty gateway a události, které odebíráš |
| Cachovaná webová stránka | nic mezi požadavky | celková váha stránky krát návštěvníci |
Tři věci tato čísla zkreslují a stojí za to o nich vědět:
- Připojení jsou nárazy, ne pramínky. Klient Minecraftu, který se připojí do nové oblasti, stahuje data chunků tak rychle, jak připojení dovolí - několik megabajtů za pár sekund, což je daleko nad ustálenou rychlostí. Dvacet lidí připojujících se najednou po restartu vypadá jako špička a je to naprosto normální.
- Hry na Source enginu se omezují samy. Provoz ke každému klientovi je omezen klientským convarem
ratea serverovýmisv_minrateasv_maxrate. Convary pro aktualizace jednotlivých klientů, které existovaly v CS:GO, byly v CS2 změněny nebo odstraněny, takže zjisti, které tvoje hra ještě respektuje, a nekopíruj konfiguraci z roku 2018. - Arma 3 je explicitně konfigurovatelná.
MaxBandwidth,MinBandwidth,MaxMsgSendaMaxSizeGuaranteedvbasic.cfgjsou ovladače a špatně nastavenýMaxBandwidthje klasická příčina desyncu na serveru, který má spoustu rezervy.
Z kilobajtů za sekundu na gigabajty za měsíc#
Jednu konverzi stojí za to si zapamatovat, protože na ni se redukuje každý spor o šířku pásma:
1 Mbit/s sustained for 30 days = 324 GB1 MB/s sustained for 30 days = 2.59 TBTo je všechno. Odtud vynásob hráče jejich rychlostí na hráče, převeď a použij vytížení v čase, protože skoro žádný server není plný čtyřiadvacet hodin denně. Komunitní server, který je šest hodin za večer vytížený, je zhruba na čtvrtině svého teoretického maxima.
| Server | Špička odchozího | Kdyby běžel naplno celý měsíc | Reálný měsíc |
|---|---|---|---|
| Minecraft pro 20 hráčů při 15 KB/s | 2,4 Mbit/s | 778 GB | kolem 200 GB |
| Valheim pro 10 hráčů při 100 KB/s | 8 Mbit/s | 2,6 TB | kolem 650 GB |
| Source server o 24 slotech při 45 KB/s | 8,6 Mbit/s | 2,8 TB | kolem 700 GB |
| Discord bot na 200 serverech | pod 0,1 Mbit/s | pár GB | pár GB |
| Blog s 50 000 návštěvami a stránkami po 1,5 MB | nárazový | 75 GB váhy stránek | 20-30 GB po cachování |
Z té tabulky plynou dva závěry. První je, že běžný herní server je zátěž v řádu jednotek megabitů a jakýkoli přenosový limit uváděný v terabajtech je pro něj irelevantní. Druhý je, že špička je důležitější než součet: 8 Mbit/s ustáleně není nic, ale 8 Mbit/s přicházejících jako dvouminutový nárazový provoz 200 Mbit/s je jiná řeč a právě tento tvar hostingy opravdu zajímá.
Zátěže, které skutečně přenášejí provoz#
Tady je seznam, který dává skutečná čísla. Pokud na něm nejsi, přestaň myslet na šířku pásma a podívej se raději na CPU nebo RAM, což je téměř jistě tvoje skutečné omezení.
Rozdávání souborů hráčům. To je velká věc pro komunity na Source enginu. Servery Garry's Mod, Counter-Strike a Team Fortress 2 distribuují mapy a obsah každému novému hráči, buď pomalým přenosem přímo ve hře, nebo přes HTTP pomocí sv_downloadurl. Obsahový balík o 350 MB servírovaný 200 nováčkům denně je 70 GB denně, tedy trochu přes 2 TB měsíčně, z herního serveru, který jinak spotřebuje 8 Mbit/s. Jak to dělat, aniž bys všechno držel na herním stroji, popisuje Workshop a FastDL.
Resource packy a modpacky. Klíč resource-pack v server.properties v Minecraftu je URL a soubor servíruje to, co je na té adrese. Nasměruj ho na vlastní server a 60MB balík stažený 500 lidmi je 30 GB, které jsi zaplatil. Nasměruj ho na objektové úložiště nebo CDN a je to problém někoho jiného. Totéž platí pro distribuci modpacků pro launcher. Klíče a požadavek na SHA-1 najdeš v článku MOTD, ikony a resource packy.
Offsite zálohy. Server o 40 GB kopírovaný celý mimo stroj každou noc je 1,2 TB odchozího provozu měsíčně, což bude největší jednotlivá položka v tvém provozu a nevytváří nic, co by kdokoli viděl. Deduplikační nástroje jako restic nebo borg pošlou první kopii celou a pak jen změněné bloky, což typicky srazí noční běh na pár gigabajtů. Zálohy, které se opravdu obnoví jsou o druhé polovině toho problému.
Video a audio. Jediná zátěž, kde je šířka pásma primárním zdrojem. Jeden stream 1080p o 5 Mbit/s krát dvacet současných diváků je 100 Mbit/s, což je víc než všechny herní servery v tomto článku dohromady. Pokud to plánuješ, řekni to před nákupem, ne po něm.
Procházení roboty. Web s velkým katalogem produktů a bez omezení počtu požadavků může servírovat víc bajtů scraperům a AI crawlerům než lidem. Než usoudíš, že je provoz skutečný, zkontroluj access log podle user agentu. Rozumnou obranu popisuje rate limity a zneužití.
Unmetered, unlimited a fair use, řečeno srozumitelně#
Unmetered znamená, že ti neúčtujeme za gigabajty. Neznamená to, že jeden server smí donekonečna zahlcovat sdílený uplink, protože uplink je sdílený a na jeho druhém konci je něčí Valheim svět. To je celá politika a stojí za to ji říct celou, protože obor to obvykle nedělá.
Co to znamená v praxi:
- Herní server, aplikace, bot nebo web, které dělají běžnou práci, se nikdy nepřiblíží ke konverzaci o provozu. Plán podle šířky pásma nevybírej.
- Pokud chceš ve velkém distribuovat velké soubory, provozovat mediální službu nebo každou hodinu posílat plné zálohy mimo, řekni to nejdřív. Obvykle existuje místo, kde to nikoho neovlivní, a domluvit to před začátkem je pětiminutový rozhovor, ne ticket o tom, že je tvůj server pomalý.
- Všimne se ustálené saturace, ne měsíční součet. Deset terabajtů rozložených přes měsíc je neviditelných. Dva terabajty za jedno odpoledne na plnou rychlost linky ne.
Porovnej to s alternativním zněním, které uvidíš jinde. „Unlimited bandwidth“ se klauzulí o „přijatelném užívání“ obvykle znamená totéž a říká o tom méně. Od hostingu chceš číslo nebo větu, ne přídavné jméno. Při porovnávání se ptej na dvě věci: účtuje se za gigabajt a co se stane, když budu den držet vysokou rychlost. Zbytek kontrolního seznamu najdeš v článku jak vybrat hosting herního serveru.
Provoz útoku je šířka pásma, o kterou jsi nežádal#
Největší událost šířky pásma, jakou většina serverů kdy uvidí, nezpůsobí majitel. Volumetrická záplava je provoz adresovaný tobě, generovaný někým jiným, který přichází, ať chceš, nebo ne. Zevnitř stroje ho vypnout nelze a jakékoli počítání „tvého“ využití ho nezahrnuje.
Co je na filtrování skutečné: upstream filtrování zahodí zjevné volumetrické záplavy, reflexní a poškozený provoz dřív, než se dostanou k hardwaru. Co skutečné není, je náznak ve většině marketingu hostingů, že tím jsou útoky vyřešený problém. Útoky, které vypadají jako skuteční hráči, se nefiltrují, protože na síťové vrstvě je nelze od nich odlišit, aniž by se zahodili i skuteční hráči. Hosting, který slibuje žádný výpadek při jakémkoli útoku, prodává větu, ne službu. Mechanismy popisují co skutečně děláme proti útokům a DDoS útoky na herní servery vysvětlené.
Jednu věc ovlivnit můžeš: jestli se tvůj vlastní server nestane zdrojem cizí záplavy. Query porty, které na malý požadavek odpovídají mnohem větší odpovědí, jde zneužít jako reflektory, a proto query protokol serveru na Source enginu získal krok s výzvou. Pokud query port generuje odchozí provoz zcela nepřiměřený počtu hráčů online, děje se právě tohle. Drž serverový software aktuální a nevystavuj query ani RCON port šířeji, než je nutné - RCON bezpečně je krátké a stojí za přečtení.
Měření toho, co skutečně využíváš#
Hádat není třeba. Na stroji, který ovládáš, je vnstat nejmenší námaha pro nejužitečnější odpověď, protože uchovává historii:
$ apt install vnstat$ vnstat -i eth0 -d # by day$ vnstat -i eth0 -m # by month$ vnstat -i eth0 -l # livePro živý pohled na to, kdo ji právě teď spotřebovává:
$ iftop -i eth0 -B # per-connection, in bytes$ nload eth0 # a simple in/out graph$ ip -s link show eth0 # cumulative counters since bootU webové aplikace je poctivé číslo v access logu, ne v čítači rozhraní, protože nezahrnuje všechno, co reverzní proxy obsloužila z cache. Přidej počet bajtů do formátu logu a sečti je:
log_format bytes '$remote_addr $status $body_bytes_sent "$request"';access_log /var/log/nginx/access.log bytes;$ awk '{ sum += $3 } END { print sum/1024/1024/1024, "GB" }' \ /var/log/nginx/access.logNa hostingu s panelem graf šířky pásma nenajdeš, protože konzole vykresluje paměť, CPU a disk proti limitům, ne provoz. To je skutečná mezera a stojí za to to říct: pokud potřebuješ měsíční objemy provozu, měř je uvnitř serveru pomocí vnstat nebo z logů aplikace. Co ti říkají grafy, které dostaneš, vysvětluje čtení grafu zátěže serveru.
Snížení provozu bez omezení funkcí#
Pokud opravdu přenášíš hodně bajtů, opravy jsou levné a žádná z nich nevyžaduje větší plán.
- Přesuň stahování pryč z herního serveru. Dej obsah FastDL, resource packy a modpacky na objektové úložiště nebo za CDN. Herní server pak servíruje URL místo souboru a provoz přestane být tvůj. To je největší jednotlivá výhra dostupná komunitě na Source enginu.
- Komprimuj, co servíruješ. Gzip nebo Brotli u textových odpovědí typicky zmenší HTML, CSS a JavaScript o 70-80 procent. Je to jedna direktiva a vztahuje se na každého návštěvníka.
- Cachuj s dlouhou platností hashované soubory.
Cache-Control: public, max-age=31536000, immutableu souboru, jehož název obsahuje hash obsahu, znamená, že se vracející se návštěvník stáhne soubor jednou provždy. Celou sadu, včetně toho, proč špatně nastavenýETagmůže všechno zrušit, pokrývá HTTP cachovací hlavičky vysvětlené. - Používej deduplikační zálohy. První běh je plný, každý další je jen delta. Běžně to sníží noční zálohu z desítek gigabajtů na stovky megabajtů.
- Vylaď vlastní síťová nastavení hry.
network-compression-thresholdvserver.propertiesv Minecraftu má výchozí hodnotu256bajtů, což je rozumný kompromis CPU za šířku pásma; jeho zvýšení pošle víc bajtů a spotřebuje méně CPU, a-1kompresi úplně vypne a dává smysl jen v LAN.view-distanceasimulation-distancesnižují CPU i šířku pásma najednou. - Obrázky servíruj ve velikosti, v jaké se zobrazují. Nejčastější příčinou těžké stránky je fotografie o 3000 pixelech v místě o 400 pixelech.
Šířka pásma není latence, kromě případů, kdy je#
Nejčastější záměna v celém tomto tématu: přidání šířky pásma ping nesníží. Gigabitová linka a stomegabitová linka ke stejnému cíli mají stejné zpoždění šíření a hře, která potřebuje 15 KB/s na hráče, nepomůže desetinásobná rezerva oproti tomu, co spotřebuje. Pokud si hráči stěžují na lag, odpověď téměř nikdy není šířka pásma. Je to vzdálenost, špatná trasa, jitter, ztráta paketů nebo server omezený CPU. Jak je od sebe rozlišit, říká článek latence, jitter a ztráta paketů.
Výjimka je reálná a stojí za to ji znát. Když je linka skutečně nasycená, pakety čekají ve frontě a čekání ve frontě je latence. Server, na kterém běží plná záloha přes stejné rozhraní, jaké používají hráči, ukáže po dobu jejího trvání vyšší ping, ne proto, že je šířka pásma malá, ale protože je fronta před rozhraním plná. Proto patří zálohy na čtvrtou ráno a proto je někdy omezení rychlosti odchozí kopírovací úlohy laskavější než nechat ji doběhnout rychleji:
$ rsync -a --bwlimit=10000 /srv/worlds/ backup@198.51.100.5:/srv/worlds/--bwlimit je v kilobajtech za sekundu, takže 10000 omezí ten přenos zhruba na 80 Mbit/s a zbytek roury nechá těm, kdo hrají.
FAQ#
Kolik šířky pásma spotřebuje Minecraft server na hráče?
Zhruba 5-20 KB/s ustáleně, což je asi 2 Mbit/s pro vytížený server s dvaceti hráči. Připojení a teleporty na pár sekund vyskočí mnohem výš, zatímco se streamují chunky. Větší view-distance zvyšuje ustálenou rychlost i nárazy.
Je unmetered šířka pásma opravdu neomezená?
Znamená to, že se neúčtuje za gigabajt. Neznamená to, že jeden server smí dny zahlcovat sdílený uplink. V praxi se k té hranici nikdy nepřiblíží nic, co vypadá jako herní server, bot, API nebo web, a zátěže, které ano - hromadná distribuce souborů, streamování médií - stojí za rozhovor dřív, než začneš.
Dá mi větší plán víc šířky pásma?
Ne smysluplně, a téměř nikdy to není to, co jsi potřeboval. Plány se prodávají podle paměti, disku a podílu CPU. Pokud je server pomalý, omezením je skoro vždy jedna z těch tří věcí nebo síťová cesta mezi hráčem a strojem, ne objem dat, který smíš přenést.
Jak zjistím, kolik provozu jsem spotřeboval?
Změř to uvnitř serveru: vnstat -m pro měsíční součet na stroji, který ovládáš, nebo sečti $body_bytes_sent z access logu webového serveru u aplikace. Grafy v panelu ukazují paměť, CPU a disk, ne provoz, takže na tohle neodpoví.
Počítá se DDoS útok do mého využití?
Ne, a byl by to podivný způsob provozu služby, kdyby ano. Provoz útoku generuje někdo jiný a je adresovaný tobě. Upstream filtrování zahodí zjevný volumetrický typ dřív, než se dostane ke stroji; záplavy napodobující provoz skutečných hráčů jsou těžší problém a poctivé hostingy to říkají.
Jaký je nejlevnější způsob, jak distribuovat modpack o 500 MB?
Ne z herního serveru. Dej ho na objektové úložiště nebo za CDN a hráčům dej URL. Opakovaný terabajt se tím změní na cizí účet za šířku pásma, obvykle za pár dolarů, a pro hráče se to navíc stahuje rychleji.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.