Steam Support Wiki
 
 

Optimizing a Dedicated Server

 
 

Ezt az oldalt a Steam Támogatás és a Steam felhasználók is moderálják - minden, az oldalon kívüli hivatkozást óvatosan kell kezelni.

A Steam Támogatás soha nem fog a Steam fiókod és jelszavad után kérdezősködni, és arra sem fognak megkérni, hogy a Steam jelszavadat megadd bármilyen weblapon.

Dedikált szerver optimalizálása

HLDS és SRCDS szerver rate finomhangolás

A Half-Life és Source játékoknál három szervertípus létezik:

  • Figyelő szerver (Listen Server)
    • Figyelő szervert a játszani kívánt játékból lehet indítani.
    • Minimális vezérlőpanelje van.
    • Figyelő szervernél futnia kell a Steam kliensnek és a játéknak is.
    • Az összes gyári játéktartalom egyetlen háttérfájlban található.
  • Kliens HLDS szerver (Client HLDS Server)
    A HLDS szerver a Tools menüből érhető el.
    • A játékosoknak LAN-on vagy interneten keresztül kell csatlakozniuk. (Nem tudsz arról a gépről játszani, amelyiken a szerver fut.)
    • A HLDS szerver a Steam kliens folyamatos futását igényli.
    • Teljes szerver-vezérlőpanellel rendelkezik.
    • Az összes gyári játéktartalom egyetlen háttérfájlban található.
  • Egyedülálló HLDS_1120 szerver vagy Source dedikált szerver (Stand-Alone HLDS_1120 Server or Source Dedicated Server)
    • Az egyedülálló szerverek függetlenek a Steamtől.
    • Nem igényli a Steam kliens futását.
    • A játékosoknak LAN-on vagy interneten keresztül kell csatlakozniuk. (Nem tudsz arról a gépről játszani, amelyiken a szerver fut.)
    • Nincsenek háttérfájlok, az összes játéktartalom és erőforrás ki van csomagolva.
    • A Source szervereket a HLDS szerverektől eltérő könyvtárba kell telepíteni.


Szerver-prioritás optimalizálása

Mikor Win32 alatt futtatsz szervert, annak alapértelmezett beállítása a Normál prioritás.

A prioritás beállítással lényegében azt adod meg az operációs rendszernek, hogy melyik feladatokat szolgálja ki előbb, és mennyi időt fordítson rájuk. A szerverek valós idejű alkalmazások, a játékosok pedig nagyon érzékenyek a késleltetésre. Ha normál prioritáson futtatod a szerveredet, az kellemetlen lagot eredményezhet. A megoldás a szerver Magas prioritáson való futtatása.

A Windows XP a PC-den futó összes program és folyamat számára megad egy prioritást, ami meghatározza, hogy a többi programhoz viszonyítva mennyi processzoridőt kap. Az XP számos beállítást biztosít: Valós idejű, Magas, Normál feletti, Normál, Normál alatti és Alacsony.

Figyelem A Valós idejű beállítás nem javasolt, mivel versengést eredményez az eszköz-illesztőprogramokkal, ami instabilitáshoz vezethet.

A legtöbb program Normál prioritást kap, de a Feladatkezelővel bármelyik folyamat vagy program prioritása megváltoztatható.

Útmutatás

Egy futó program vagy folyamat prioritásának kézi átállításához:

  1. Indítsd el a Feladatkezelőt a Ctrl-Alt-Delete megnyomásával, majd a FEladatkezelő gomb megnyomásával.
  2. Kattints a Folyamatok fülre.
  3. Kattints jobb gombbal a programra vagy folyamatra, aminek a prioritását változtatni akarod, mutass a Prioritás beállítása menüpontra, és válaszd ki a prioritást a program számára.

Megjegyzés: Mikor új prioritást adsz egy folyamatnak vagy programnak, az csak addig lesz érvényes, amíg a program vagy folyamat fut. Mikor legközelebb elindítod a programot, az vissza fog térni a Windows által kiosztott prioritáshoz.

Ha a HLDS-t minden alkalommal magas prioritáson akarod indítani, batch fájlt kell használnod.

Steam_HLDS.bat

Az alábbi .bat fájl Half-Life Deathmatch szervert futtat.

Steam_HLDS.bat

A fájl bellről így néz ki:

c: cd c:\HLServer start /high c:\HLServer\hlds.exe -game valve -port 27015 +maxplayers 9

A parancsok részletes ismertetése:

cd c:\HLServer - Átváltja az aktuális könyvtárt arra, ahová a szerver telepítve van.

-game valve - Megadja a játékot, jelen esetben a Half-Life Deathmatch-et.

-port 27015 - Beállítja a portot, amin keresztül a szerver fogadja a kapcsolatokat (ha nincs port megadva, az alapértelmezett 27015-ös portot használja).

+maxplayers 9 - Kilencre állítja a szerver által maximálisan elfogadott játékosok számát.

Megjegyzés: A Source dedikált szervereket (SRCDS.EXE) Magas helyett Normál feletti prioritással kell futtatni.

Példa

c: cd c:\HL2Server start /high c:\HL2Server\srcds.exe -game hl2dm -port 27015 -ip xxxx.xxxx.xxxx.xxxx +maxplayers 9

A megfelelő maximális játékosszám meghatározása

A maxplayers értéket a feltöltési sebességedhez kell beállítani. Ha nem vagy biztos a feltöltési sebességedben, látogass el a www.dslreports.com oldalra, és végezd el az ingyenes sebességtesztet.

Két értéket fogsz látni, a letöltési (download) és feltöltési (upload vagy uplink) sebességet.

A letöltés azt jelzi, hogy milyen gyorsan juthat az adat a szerveredhez. A feltöltés azt, hogy milyen gyorsan tud a szervered adatot küldeni a játékosoknak.

Internetkapcsolatnál lényegében a következőkkel lehet számolni (bit/másodperc):

  • 128K feltöltés = 4 játékos (2 játékos srcds-en)
  • 256k feltöltés = 7 játékos (4 játékos srcds-en)
  • 320k feltöltés = 9 játékos (6 játékos srcds-en)
  • 512k feltöltés = 14 játékos (9 játékos srcds-en)
  • 768k feltöltés = 21 játékos (14 játékos srcds-en)
  • 1024k feltöltés = 28 játékos (19 játékos srcds-en - HL2DM-nél 16 a maximális játékos-szám)
  • 1140k feltöltés = 32 játékos (HLDS-nél a maximum) (21 játékos CS:S-ben)
  • 1708k feltöltés = 32 játékos CS:S-ben (maximum)

Természetesen a vonalad nem feltétlenül lehet elég stabil az itt megadott játékosszám kiszolgálásához. A LAN-on helyben játszó játékosok nincsenek beleszámolva az értékekbe.

HLDS-nél jó ökölszabály a játékosonként 35.6Kbit/másodperc sávszélesség.

SRCDS-nél (Source játékok) jó ökölszabály a játékosonként 53.4Kbit/másodperc sávszélesség (a HLDM kb. másfélszeresére).

Egyes pályák és modok nagyobb feltöltési sávszélességet igényelhetnek.

A fenti maxplayer beállítások azzal a feltételezéssel igazak, hogy az alábbi rate korlátokkal futtatod a szervert (a server.cfg-ben):

//minimális megengedett rate
// SRCDS szerverekhez 5000-et használj
sv_minrate 3500

// csak LAN esetén nincs maxrate korlát, normál szerverhez 7500-at használj
// ez szabályozza, milyen gyorsan tölthetnek le pályát a kliensek
//sv_maxrate 0 = korlátozatlan
// SRCDS szerverekhez 9999-et használj
sv_maxrate 7500

// ez a minimális játszható updaterate, hagyd 13-on
sv_minupdaterate 13

// 60-as updaterate CSAK LAN-HOZ HASZNÁLHATÓ, internethez 13-at használj
// 20 az alapértelmezett, de ez megfelezi a maximálisan kiszolgálható játékosszámot
// SRCDS szerverekhez használj 30-at, esetleg 20 is elég lehet
// sv_maxupdaterate 60
sv_maxupdaterate 13

Szerver rate tesztelése

Az alábbi alias-paraméterkészletet a szerver gyorstesztelésére használhatod. Másold be a server.cfg fájlodba:

//echo "*** Szerver RATE aliasok hozzáadása ***"
alias "dslow" "sv_minrate 2500;sv_maxrate 2500;sv_minupdaterate 5;sv_maxupdaterate 5;echo döglött"
alias "vslow" "sv_minrate 3500;sv_maxrate 3500;sv_minupdaterate 13;sv_maxupdaterate 13;echo nagyon lassú"
alias "slow" "sv_minrate 3500;sv_maxrate 5000;sv_minupdaterate 14;sv_maxupdaterate 14;echo lassú"
alias "norm" "sv_minrate 3500;sv_maxrate 7500;sv_minupdaterate 15;sv_maxupdaterate 15;echo normál"
alias "fast" "sv_minrate 3500;sv_maxrate 9999;sv_minupdaterate 20;sv_maxupdaterate 20;echo gyors"
alias "vfast" "sv_minrate 3500;sv_maxrate 20080;sv_minupdaterate 20;sv_maxupdaterate 60;echo LAN sebességű"

// a jelenlegi összes beállítás gyors megjelenítése
alias "rates" "sv_minrate;sv_maxrate;sv_minupdaterate;sv_maxupdaterate"

Server.cfg fájl példák

Általános server.cfg fájl CS:S szerverekhez

cs_server_cfg_file.cfg letöltése (a használathoz át kell nevezni server.cfg-re)

Általános server.cfg fájl HL2DM szerverekhez

hl2dm_server_cfg_file.cfg letöltése (a használathoz át kell nevezni server.cfg-re)

A server.cfg fájlokat SRCDS-hez minden egyes játéktípus CFG mappájába kell tenni.

Szerver FPS szabályzás

A HLDS szerverek a klienstől függetlenül renderelik a frame-eket.

A HLDS szerverek a sys_ticrate CVAR-al szabályozzák a másodpercenként renderelt frame-ek számát.

Az SRCDS szerverek az fps_max CVAR-al szabályozzák a másodpercenként renderelt frame-ek számát.

Miért kell ezt szabályozni?

Két fő oka van annak, miért kell állítani a szerver FPS-ét. Az első ok a szerver CPU-terhelése; minél magasabb az FPS, annál nagyobb a terhelés. Ha a jelenlegi FPS beállítás mellett 50%-nál nagyobb CPU használatot látsz, akkor vagy túl sok a játékosod, vagy túl magasra állítottad az FPS-t.

A HLDS szerverek 60 FPS alapértelmezett beállítással indulnak, és akár 1000 FPS-el is könnyedén képesek futni (sys_ticrate 1000).

Az SRCDS szerverek 300 FPS alapbeállítással indulnak, és szintén 1000 FPS-ig képesek futni, de ennek eléréséhez lényegesen nagyobb teljesítményű CPU-ra van szükség.

A Win32 szervereket Win2k / XP Pro platformon, HLDS esetén 1.8 GHz-es CPU-n és minimum 512 MB memóriával, SRCDS esetén pedig 2.2GHz-es CPU-n és minimum 512 MB memóriával javasolt futtatni.

FPS-növelés

Sajnos a fenti szerverek egyike sem fogja elérni ezeket az FPS beállításokat Win32-es platformon egy trükk nélkül. Ahhoz, hogy a szervert az operációs rendszer ki tudja szolgálni, egy nagyfelbontású időzítő futtatására van szükség. Alapesetben az operációs rendszer egy kisfelbontású időzítőt futtat, ami legfeljebb 100 FPS körüli értékhez lehet elég.

A médialejátszó futtatása (nem kell vele fájlt megjeleníteni, csak legyen megnyitva) egy nagyfelbontású időzítő használatára kényszeríti az operációs rendszert, ami képessé teszi a szerveredet az 1000 FPS elérésére is. A médialejátszó használaton kívül nagyjából 5MB memóriát igényel, ami nem olyan veszélyes. Futtathatsz helyette egy Macromedia SWF fájlt is az Internet Explorerben, ami ugyanezt fogja eredményezni.

Intel vagy AMD CPU

Ha a sys_ticrate (HLDS) vagy fps_max (SRCDS) értéket 1000-re állítod, a legtöbb Intel chipsettel meghajtott Intel CPU képes lesz a teljes 1000 FPS-t elérni (plusz-mínusz néhány pont). Az AMD CPU-k, vagy Intel CPU-k nem Intel alaplapi chipsettel viszont esetleg csak 500 FPS-el tudnak futni 1000-es beállítással.

Ennek így nem sok értelme van, és a konkrét platformtól függően másképp is előfordulhat, de egyszerűen így működik az alaplap és az operációs rendszer.

Miért kell a magasabb FPS?

A magasabb FPS használatának fő oka a renderelési idő. 1000 FPS-nél a szerver egy frame-et egy milliszekundum (ms) alatt renderel. Ez azt jelenti, hogy a játékosok pingje legrosszabb esetben 1 ms-mal nő, vagyis a játékosok pontosabb adatokat kapnak, és gyakrabban kapják meg azokat.

300 FPS-nél ez az érték 3 ms, ami tökéletesen elfogadható, de 100 FPS-nél már 10 ms, ami már összemérhető egy 100-as pinggel (a 10%-a). Egy 100-as pingű játékos így valójában 110 ms-os válaszidőt kap a szervertől. Sok AMD rendszer az FPS-növelés nélkül csak 60 FPS-en fut, ami már 17 ms-ot jelent.

Ez még mindig nem túl jelentős, de megváltoztathatja a szervered válaszidejét, és hogy a játékosok mennyire érzik meg azt.

Az FPS-növelés nélkül a szervered jelentősen kisebb mértékben használja a CPU-t, de ennek a pontosság láthatja kárát.

 
 
  link: Valve Software MediaWiki Logo