#1 2009-05-23 08:44:16

swider

Administrator

Zarejestrowany: 2009-05-23
Posty: 16
Punktów :   

HLDS - podstawowe informacje, porady & optymalizacja serwera dla domow

HLDS - podstawowe informacje, porady & optymalizacja serwera dla domowych użytkowników (by dRill)

Niniejszy poradnik piszę głównie dla użytkowników, którzy uruchamiają serwery z własnych maszyn. Oczywiście z niektórych porad mogą skorzystać posiadacze serwerów na hostingach/serwerach dedykowanych/kontach shell. Wszystkie opisane tu porady stanowią syntezę materiałów spoza i z forum. Oprócz tego wykorzystałem własne doświadczenia z serwerami po Windowsie. Myślę, że ten miks okaże się przydatny. Zapraszam do lektury...

NA POCZĄTEK...
Na początku może wymagania sprzętowe HLDS-a. Wiem że w dzisiejszych czasach praktycznie każdy komputer je spełnia, ale niektórzy posiadacze dwóch komputerów w domu chcą wykorzystać swoje czasem zbyt mocno archiwalne maszynki do postawienia serwera i dziwią się, czemu serwer sypie się lub nie startuje. Nie radzę w tym wypadku sugerować się zbyt mocno wymaganiami podanymi na stronie STEAMPOWERED.COM bo start serwera na maszynie o specyfikacji podanej tam to po prostu lotto - wystartuje lub nie.

Cytat:-Procesor 500 MHz
-RAM 128 MB
-OS: Windows (Najlepiej NT/2000/2003 lub XP + SP2. Windowsy95/98/Me oparte na DOS-ie to już przeżytek i do tego często okazują się niestabilne)
Linux - jeśli mowa o tym, to tylko wtedy jeśli mamy dwa komputery w domu. Wtedy na jednym instalujesz Debiana,RedHat'a albo Free *BSD (w tym ostatnim trzeba włączyć emulację Linuxa), ściągasz wersję HLDS-a pod Linuxa STĄD, instalujesz ją i odpalasz serwer (po wcześniejszym zainstalowaniu dodatków w postaci AMX Mod X i tak dalej, ale nie musisz tego robić. Na kompie stojącym lekko powyżej dopuszczalnej granicy lepiej posiadać "czysty" serwer bez dodatków). Z drugiego kompa o lepszych bebechach będziesz grać. Ale jeśli posiadasz tylko jedną maszynkę w domu, to o ile Linux na serwer jest dobry, o tyle do grania jest koszmarny. Gra uzyskuje niską ilość fps nawet w rozdzielczości 640x480.
-Grafika: jakakolwiek
-HDD: 1 GB. Szybkość dysku nie ma znaczenia. Im szybszy, to tylko wczytuje szybciej mapę. I nic poza tym.

Oczywiście to wszystko dotyczy HLDS-a na oddzielnej maszynie, z której tylko stawiamy serwer. Komputer z którego stawiamy serwer i gramy jednocześnie musi być zdecydowanie lepszy. W takim wypadku minimum to:

Cytat:-Procesor 1.2 GHz (Jakiś Pentium III albo AMD Athlon XP. Celerony o takich częstotliwościach kiepsko sprawują się w pykaniu.
-RAM 256 MB(+) (na działanie serwera i procesów systemowych to absolutne minimum. Typ pamięci też jest ważny. Dziś np. już mało osób posiada wolne kości pamięci typu SDR. Na DDR i DDR2 serwer działa dużo lepiej)
-System: Najlepiej Windows XP + SP2/SP3 albo Vista, choć lepiej wygląda to na XP.
-Grafika: minimum to jakiś GeForce2 MX/Radeon 9000 Pro z 64 MB pamięci.
-HDD: 1 GB

Oczywiście dzisiaj większość posiada komputery z prockami dwurdzeniowymi minimum 2 GB RAM-u i kartami graficznymi z pamięciami po 1 GB i nie musi się niczym się martwić. Ale oprócz tej większości istnieją także "ewenementy" posiadające pięcio-sześcioletnie maszyny (ja się do nich zaliczam) którzy odpalają z nich swoje serwery i grają z nich nie zważając na astronomiczną liczbę 25.0 fps w grze

DODATKOWE INFORMACJE, KTÓRE POWINIENEŚ ZNAĆ
To piszę głównie do młodszych użytkowników i do tych osób, które z HLDS-em mają do czynienia dopiero od niedawna i np. na łączu o uploadzie 64 kbps uruchamiają serwer na 24 sloty i dziwią się, że mają lagi. Oczywiście starym wyjadaczom nie trzeba takich rzeczy tłumaczyć, bo wiedzą gdzie szukać

Rada 1: Nigdy nie ustawiaj zbyt dużo slotów na serwerze, jeśli nie znasz możliwości swojego łącza. To główna przyczyna lagów na serwerze. Aby tego uniknąć, poniżej
rozpisałem, ile slotów maksymalnie można uzyskać na łączu o danym uploadzie. Oczywiście wartości niżej podane można uzyskać na takich ustawieniach, na których jeszcze da się pograć (takie, przy których modele postaci jeszcze nie przeskakują etc.) Pierwsza wartość z lewej to oczywiście upload kilobitach na sekundę. Środkowa wartość to przelicznik, ile kilobity na sekundę wynoszą w kilobajtach na sekundę. Trzecia wartość to oczywiście ilość slotów, jakie maksymalnie możemy uzyskać na danym uploadzie.

Cytat:UPLOAD: SLOTY
64kbps 8KBps 3 - 4 sloty
128kbps 16KBps 4 - 6 slotów max. 8 (jeśli łącze to ADSL 512 kbps)
256kbps 32KBps 10 - 12 slotów
512kbps 64KBps 12 - 14 slotów
1024kbps 128KBps 16 - 20 slotów
2048kbps 256KBps 22 - 26 slotów
4096kbps 512KBps 32 sloty (wyżej się nie da)

*jeśli nie wiecie jaki macie upload - INTERNET SPEED TEST, Check your dsl speed, internet and voip connection test - ta strona przetestuje wasze łącze z odchyleniem 5 ~ 10 kbps. Im bliżej danej wartości, tym bardziej będziecie wiedzieć ile maksymalnie wyciśniecie na swoim łączu.

Oczywiście wartości tych wcale nie musimy uzyskiwać, gdyż nie tylko dobre łącze to gwarancja, że uzyskamy tyle slotów, ile w tabeli. Do tego jest potrzebny jeszcze dobry sprzęt. Dlatego o tym mówi następna rada...

Rada 2: Jeśli chcesz mieć domowy serwer wysokoslotowy (biorąc pod uwagę specyfikację domowych łącz w Polsce mowa tu o 15 slotach i więcej) powinieneś wiedzieć, ile twój procesor udźwignie (czy się nie będzie grzał etc). Posiadacze procków dwurdzeniowych raczej mogą być spokojni, choć też muszą mieć na uwadze to, aby komputer pracował stabilnie, kiedy serwer będzie odpalony w tle i do tego będzie działać gra. Przeciętnie przelicznik wygląda tak:
Cytat:1 gracz na serwerze ~ 50MHz z mocy procka

Czyli jeśli domowy serwer mamy ustawiony na 11 slotów, to 550 MHz z jego mocy jest używane przez serwer, ale to skala zaproponowana przez portal HLDS.PL. Należy dlatego tak ustawiać ilość slotów, aby serwer i system mogły pracować stabilnie (nie ustawiajcie np. 18 slotów na komputerze z procesorem 400 MHz) Czynniki obciążenia zależą także od ustawień serwera, ilości wgranych dodatków itd. Ale i tak oczywiście najważniejsza jest stabilność...

Rada 3: ...dlatego mocny zasilacz w komputerze to podstawa. Jeśli serwer i gra powodują restart peceta po czasie stosunkowo niedługim, np. 45 minut, to sygnał, że albo należy zaopatrzyć się w nowy zasilacz, albo zjechać w dół z ilością slotów na serwerze, najlepiej na początek o dwa i sprawdzić jak serwer pracuje. Oczywiście należy jak najczęściej unikać sytuacji, kiedy to komputer nam się restartuje z tej przyczyny, gdyż może to spowodować awarię zasilacza, uszkodzenie procesora (w skutek przegrzania) lub płyty głównej (z tego samego powodu). Dlatego należy kontrolować też temperaturę procesora różnymi programami, np. SpeedFanem.

Rada 4: "Goły" serwer (tj. taki odpalony od razu, bez żadnych dodatków typu METAMOD, AMX Mod X czy tam inne) pożera około 64 MB pamięci, podczas gdy serwer z AMXX-em moze pożerać nawet ponad 100 MB pamięci. To ważne, kiedy chcemy przygotować np. tani serwer na LAN na jakiejś starej maszynie.

Rada 5: Niezłym rozwiązaniem jest też ściągnięcie HLDSUPDATETOOL.EXE (z tego poradnika wykonujemy tylko kroki od 1. do 4. no chyba że od razu chcemy znonstimować serwer, wtedy wykonujemy dalsze kroki) i działanie na takim, świeżym, niemodyfikowanym pakiecie.

WŁAŚCIWA OPTYMALIZACJA SERWERA

Na początek mała uwaga. Optymalizacja czegoś, to nie zawsze to samo co wydajność. Optymalizacja czegoś ma na celu ustabilizowanie podczas gdy wydajność oznacza z reguły maksymalne wyciśnięcie możliwości nierzadko kosztem stabilnej pracy. W tuningowanie na maksa możliwości serwera lepiej bawić się na hostingu. Domowy serwer najlepiej jest optymalizować. Jeśli masz już serwer z AMXX i nie wiesz co zrobić, aby serwer działał lepiej na początek zajrzyj TUTAJ jeśli jesteś obeznanym użytkownikiem i zrób wszystko od kroku 2. do 8. Jeśli jednak nie wiesz za bardzo, o co chodzi, to czytaj dalej bieżący artykuł.

POZBYWAMY SIĘ LAGÓW
Tą kwestię zebrałem do kupy, bo tak wyjdzie lepiej. Niejednokrotnie po zapoznaniu się z wynikami naszego łącza jesteśmy niemal pewni, że tyle slotów pójdzie nam bezproblemowo - błąd. Wina leży po stronie źle ustawionych na serwerze komend RATE - odpowiedzialnych za przesył danych między serwerem a klientem (co poszczególne komendy oznaczają, macie przedstawione poniżej)

Cytat:sv_maxrate - ustawia maksymalną częstotliwość wymiany danych z klientem na serwerze
sv_minrate - ustawia minimalną częstotliwość wymiany danych z klientem na serwerze
sv_maxupdaterate - maksymalna wartość danych, jaką klient będzie otrzymywał z serwera.
sv_minupdaterate - minimalna wartość danych, jaką klient będzie otrzymywał z serwera.
fps_max - ile fps powinien mieć średnio serwer.
sys_ticrate - ile fps serwer powinien wyciągać maksymalnie (o tej komendzie jeszcze później napiszę)

Fabrycznie są one ustawione tak, że pingi zawsze bedą skakać, bo łącze nie wyrobi. Dlatego jeśli jesteśmy dobrze obeznani, to możemy je sobie sami odpowiednio ustawić. Jeśli nie umiemy, to możemy skorzystać z KALKULATORA generującego wartości dla pierwszych czterech komend. Jak już to zrobimy, to wklejamy te komendy do pliku SERVER.CFG, który znajduje się w katalogu cstrike i zapisujemy zmiany. Jak ktoś nie wie czym otworzyć ten plik. Kliknąć prawym przyciskiem myszy na tym pliku, wybrać "Otwórz za pomocą..." i wybrać "Notatnik".

Kolejnym zabiegiem zmniejszającym skoki pingów na serwerze jest wysoki priorytet dla aplikacji hlds.exe. Po wystartowaniu serwera wystarczy wcisnąć Alt+Ctrl+Del po czym w menedżerze zadań przejść do zakładki "Procesy". Odszukać proces "hlds.exe", kliknąć na nim prawym przyciskiem myszy po czym wybrać "Ustaw Priorytet" --> "Wysoki". Kliknąć na "Tak" i zamknąć menedżera zadań. Oczywiście u niektórych może wywołać to spadek fps w grze, dlatego wtedy radzę zrobić coś innego. Zostawić normalny priorytet, i zjechać z ilością slotów na serwerze.

SYS_TICRATE
O komendzie sys_ticrate nie będę za bardzo się rozpisywał, bo to zrobił już seba w swoim poradniku, który radzę przeczytać. CZYTAJ O SYS_TICRATE. Najprościej rzecz biorąc sys_ticrate odpowiada za szybkość przetwarzania pakietów na drodze klient ~ serwer, ilość fps na serwerze a tym samym za obciążenie peceta i za pingi. Posłużę się tutaj przelicznikiem LANowym, jaki ping powinna dawać określona ilość fps na serwerze.

Cytat:ILOŚĆ FPS PING
50.0 20ms
100.0 10ms
200.0 5ms
300.0 3ms
500.0 2ms
1000.0 1ms

Rekomendowane ustawienia komendy sys_ticrate na domowy serwer oscylują wokół wartości 110 ~ 260 w zależności od posiadanego sprzętu, gdyż jak wiadomo, im więcej ustawimy, tym większe będzie obciążenie, a to z kolei ma wpływ na ilość klatek na sekundę w grze. Jeśli ustawimy zbyt dużą wartość, to wtedy fps-y w grze mogą polecieć na łeb na szyję nawet na sprzęcie o dość dobrej konfiguracji. Jeśli macie dość starą kartę graficzną i nawet na standardowym ustawieniu sys_ticrate między 100 a 110 macie spore spadki klatek na sekundę w grze i ogólnie ich niską ilość, to sygnał, że z wartością tej komendy należy zjechać jeszcze w dół, np. do 70. Do tego należy skołować jeszcze jakiś CONFIG NA WIĘCEJ FPS (jeśli jesteś maniakiem poprawiania płynności gry, poczytaj Kompendium wiedzy o zwiększaniu ilości FPS w grze ) Dodatkowo należy wówczas minimalnie podnieść wartość komendy sv_maxupdaterate ( o 1 - 2 w górę). Dlaczego?? Bo czego nie da się nadrobić sprzętem, trzeba nadrobić łączem... Aha i jeszcze jedno: jeśli macie serwer na łączu z Wi-Fi z którego macie spory dystans do punktu dostępowego, ustawiajcie wyższą wartość sys_ticrate (dlatego użytkownicy łącz "po kablu" z reguły mają lepiej).

Uwaga!!! Na serwerach działających z procesorami AMD Athlon często uzyskuje się dużo niższą ilość fps, niż się ustawiło. Dlatego trzeba zastosować TĘ SZTUCZKĘ, dzięki niej ilość fps powinna być wyższa.

SERWER W KONSOLI BEZ GRAFICZNEGO INTERFEJSU
Młodsi użytkownicy pewnie nie wiedzą o co chodzi, ale starsi pamiętający jeszcze czasy CS-a 1.5, kiedy wszystko działało na WON-ie a nie na Steamie na pewno kumają o co biega. Obecny HLDS pod Windows można uruchomić w dwóch wyglądach. Z tym, ładnym, pięknym, cudownym i żrącym pamięć zielonym interfejsem, który jest dobry dla początkujących i konsolowym, na widok którego niejednemu starszemu graczowi łezka w oku będzie się kręcić Serwer wtedy oczywiście wygląda tak, jak dawniej:
[imghttp://img269.imageshack.us/img269/3485/hlds.jpg[/img]
Ma to swoje zalety. Nie zżera tyle RAM-u i cykli procesora na generowanie tych głupich statystyk oraz serwer startuje szybciej, działa lepiej, bez zbędnych przestojów (większa stabilność fps, mniejszy ping niż na serwerze odpalonym w normalnym wyglądzie etc.)
Jak zrobić, żeby wyglądał właśnie tak?? Do Linii parametrów startowych w skrócie do hlds.exe należy dopisać
Cytat:-console <reszta parametrów>

i serwer powinien odpalać się właśnie w takiej konsolce. Oczywiście ta "reszta parametrów" to cała reszta rzeczy, jaka była dopisana przed przestawieniem HLDS-a z normalnego wyglądu to wyglądu konsoli. Część rzeczy należy dodatkowo skonfigurować, bo konsola przyjmuje zmienne w postaci komend, podczas gdy na normalnym wyglądzie wszystko ustawiamy ręcznie (nie musimy komend znać). Całkowita poprawna linia komend powinna zawierać dokładnie, jaki mod powinien być załadowany, ilość maksymalną graczy, mapę, czy serwer powinien być zabezpieczony antycheatem czy też nie i czy powinien być po LAN-ie czy po internecie. Jeśli tego nie określimy, serwer odpali nam domyślnie "Half-Life". Poniżej przykładowa poprawna linia komend. Komendy oznaczone "+" przed nimi oznaczają, że możemy je także dopisać w pliku server.cfg w katalogu cstrike.

Cytat:hlds.exe -console -game cstrike -insecure +maxplayers 10 +map de_dust2 +sv_password "" +port 27015

Oczywiście co dokładne parametry oznaczają możecie poczytać TUTAJ. Komendy do konfiguracji serwera wklepujecie oczywiście w server.cfg, lub w linię startową. NA TEJ STRONIE są podane chyba wszystkie komendy potrzebne do konfiguracji serwera, a Z KOLEI NA TEJ STRONIE możecie poczytać, co poszczególne oznaczają. Polecam także poczytać ARTYKUŁ SERWER NA USLUDZE WINDOWS + PRIORYTET. Oczywiście nie musimy się bawić bez potrzeby w ten serwer na usłudze Windowsa, wystarczy, że stworzymy sam plik start.bat (download w artykule nie działa), wkleimy te zmienne z rubryki Jak uruchomić hlds w trybie konsolowym i z większym priorytetem ? i zapiszemy jako właśnie "Start.bat" w katalogu z serwerem. Potem tylko zrobimy skrót na pulpicie i powinno działać.

WYŁĄCZAMY ZBĘDNE PLUGINY AMX MOD-a i METAMODA
Najpierw zajmiemy się AMX Modem. Wchodzimy w katalog serwera, następnie w folder "cstrike", potem w "addons", teraz kolejno w "amxmodx", "configs" i otwieramy w notatniku plik "plugins.ini". Na samym dole pod rubryką
Cytat:; Custom - Add 3rd party plugins here

znajdują się z reguły pluginy, które można wyłączyć. Aby wyłączyć dany plugin, przed jego nazwą wystarczy wstawić
Cytat:;

i tak na przykład jeśli chcemy wyłączyć plugin scrollmsg.amxx to przed jego nazwę wstawiamy właśnie ten średnik tak, aby wyglądał on tak:
Cytat:;scrollmsg.amxx

Po czym zamykamy plik zapisując zmiany. Jeśli chcecie sprawdzić, które pluginy można wyłączyć, użyjcie googli. Im więcej wyłączymy, tym serwer będzie mniej obciążony i tym mniej informacji będzie miał do przetworzenia. A tym samym będzie działał wydajniej.... Teraz przechodzimy do metamoda. Wchodzimy w katalog serwera, wybieramy znów folder "cstrike" --> "addons" --> "metamod" i otwieramy plik "plugins.ini". Tutaj proces wyłączania pluginów wygląda tak samo, jak w przypadku pluginów AMX Mod-a, tyle że przed ścieżką do pluginu metamoda wpisujemy
Cytat:;

. I tak np. jeśli mamy sXe Injected na serwerze i ścieżka wygląda do niego wygląda tak:
Cytat:win32 addons/sxei/dlls/sxei_mm.dll

a chcemy go wyłączyć, dopisujemy
Cytat:;

Tak, aby wyglądała ona tak:
Cytat:;win32 addons/sxei/dlls/sxei_mm.dll

. Następnie zamykamy plik zapisujac zmiany, ale to jeszcze nie koniec. Jeśli serwer działa to wpisujemy w konsolę
Cytat:meta list

i po wywołaniu tego polecenia powinna pojawić się lista wewnętrznych pluginów metamoda. Oto przykładowa lista:
Cytat:Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] AMX Mod X RUN - amxmodx_mm.dll v1.8.0.3 ini Start ANY
[ 2] Fun RUN - fun_amxx.dll v1.8.0.3 pl1 ANY ANY
[ 3] CStrike RUN - cstrike_amxx.dll v1.8.0.3 pl1 ANY ANY
[ 4] CSX RUN - csx_amxx.dll v1.8.0.3 pl1 ANY ANY
4 plugins, 4 running

Aby wyłączyć dany plugin, wystarczy wpisać
Cytat:meta unload <numer pluginu>

Przykładowo chcemy wyłączyć CSX, wtedy wpisujemy w konsolę meta unload 4. Żeby nie tracić czasu na wklepywanie komend w konsolę, możemy wpisać je do pliku server.cfg.

Po zastosowaniu powyższych rzeczy serwer powinien działać nieco lepiej, bo ma mniej rzeczy do przetworzenia. Aby nie gmatwać się zbytnio z tym, odradzam także z góry instalowanie jakichś serverpacków na domowy HLDS, bo z reguły jest tam nawalone dużo pluginów, które na słabszym sprzęcie powodować będą ściny. Najlepiej już instalować czysty AMX Mod X, na który będziemy dopiero instalować poszczególne pluginy.

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.otfix.pun.pl www.blackwatermalbork.pun.pl www.niedladebili.pun.pl www.grupa9.pun.pl www.yourninjaway.pun.pl