Pisząc ten poradnik opieram się tylko i wyłącznie na własnych doświadczeniach - bez żadnego pustego bełkotu jaki można spotkać w innych poradnikach, których autorzy najczęściej mają niewielkie doświadczenie ze serwerami HLDS.
1. sys_ticrate - co to jest ?sys_ticrate to nic innego jak maksymalna ilość FPS jaką może wyciągnąć serwer. Często jest mylona z komendą fps_max, która tak na prawdę jest tylko komendą dla gracza - co prawda w HLDS istnieje, lecz nie robi kompletnie nic.2. Co daje duże FPS serwera ?Ogólnie sprawa wygląda tak, że im więcej FPS serwera, tym niższe pingi. Serwer mając większą ilość klatek na sekundę szybciej przetwarza pakiety, przez co opóźnienie w ich wysyłaniu jest o wiele mniejsze. Domyślnie sys_ticrate jest na 60 - mało. Dlatego często pingi po protokole ICMP są niskie, a na serwerze są podwyższone o nawet 30ms - admin serwera nie zwiększył wartości bądź po porostu serwer więcej nie osiąga.3. Czy aby na pewno będzie tyle FPS ile ustawię?sys_ticrate to jest wartość maksymalna jaką można osiągnąć. Ilość klatek serwera zależy od różnych czynników - zaczynając od sprzętu na jakim jest serwer uruchomiony, poprzez obciążenie aż do systemu oraz jego konfiguracji. Ustawiając sys_ticrate nie masz pewności że będziesz mieć tyle.4. Jaka jest preferowana wartość? Jak sprawdzić wydajność mojego serwera, na ile ustawić ?Osobiście uważam iż 200-250 FPS serwera jest najlepszym wyborem. Czemu? Przy takiej wartości serwer obrabia pakiety już przy naprawdę zadowalającej prędkości, nie wykorzystując nadmiernie użycia procesora.5. Mam mało FPS na serwerze! Co zrobić?
Wpisz sys_ticrate 250 przez RCON (gdy na serwerze są gracze - na pustym nie ma co się bawić), a następnie wykonaj kilka razy (4-5) komendę stats (co 2-3 sekundy). Jeżeli FPS serwera oscyluje się w granicach 180-240 FPS to wszystko jest jak w najlepszym porządku. Proponuję Ci wpisanie tej komendy do server.cfg. Jeżeli natomiast serwer ma mniej, koło 100 (lub jeszcze mniej) to znaczy że raczej nic więcej z tego serwera nie osiągniesz. Owszem, zdarzy się pewnie iż wpisując 10 razy co sekundę komendę stats FPS podskoczy, lecz tutaj to nie ma znaczenia. Wpisz do pliku konfiguracyjnego sys_ticrate 100 (bądź 110 lepiej), nie ma sensu ustawiać na więcej gdyż zaobserwujesz skoki pingów na serwerze. Ustawiając tą wartość na tyle, ile serwer osiąga otrzymasz w miarę stabilne opóźnienia (oczywiście jeżeli skoki nie są winą kiepskiego łącza). Ustawiając kosmiczną wartość pingi będą mocno skakać - gdy serwer osiągnie więcej FPS, ping się zmniejszy, i vice versa (zauważ że opóźnienie w grze na scoreboard jest odświeżane co sekundę).Skoro czytasz ten poradnik, z miejsca zakładam iż jesteś userem który wykupił serwer w firmie hostingowej (czyli masz możliwości konfigurowania tylko HLDS, zmiany w systemie / sprzęcie odpadają). Sprawdź jaką masz wersję metamoda na serwerze - jeżeli 1.19, zmień ją na 1.19p32, która jest lżejsza dla CPU. Zerknij teraz na pluginy amxmodx. Jeżeli masz ich dużo (bądź obszerne modyfikacje), skutkują one obniżeniem wydajności serwera (aczkolwiek nie musi być ich dużo, wystarczy że są źle napisane, np. w funkcji która wykonuje się bardzo często obszerny, niepotrzebny kod). Przejrzyj swoje pluginy i zostaw tylko te naprawdę potrzebne, a powinieneś odczuć różnicę w wydajności.6. FPS serwera a dużo-slotowe serweryDużo slotowe serwery (powiedzmy od 20 slotów w górę) często cierpią na skaczące FPS serwera. Z tym niestety nic się nie da zrobić, HLDS nie jest zoptymalizowany, prawdę mówiąc jest topornie napisaną aplikacją. Ilość klatek serwera będzie w miarę wysoka gdy nic nie będzie się na serwerze dziać, przykładowo większość graczy jest nieżywych, natomiast drastycznie spadnie podczas dużej, dynamicznej akcji. Nie przejmuj sie, to normalne i z tym nic nie da się zrobić.7. A jednak mam dostęp do konfiguracji systemu / sprzętu. Co zrobić?Windows - nad tym systemem nie będę się zbytnio rozwodzić. Zainstaluj boostera oraz wyłącz w nim opcje lite.8. 1000 FPS! Jak?!
Linux - jeżeli chodzi o system, to zainwestuj w nowego kernela z włączoną opcją tickless. Jeżeli chodzi o sprzęt - tutaj nie ma uniwersalnej rady, wszystko zależy od tego co obecnie masz. Jedyne mogę powiedzieć że Athlony x2 (mimo że to zwykłe, PCtowe CPU) dobrze radzą sobie z serwerami, natomiast stanowczo odradzam starsze Xeony (mowa jedno i dwurdzeniowych).W tym punkcie mam wiele informacji do przekazania, rozbijając serwery na AMD / Intel.PS. Ogólnie w amxmodx jest fajny forward o nazwie server_frame() - jest on wykonywany co klatkę serwera. Któregoś dnia napiszę plugin AMXX liczący FPS serwera - sprawdzimy jak te wyniki pokryją się z wynikami komendy stats.
Na procesorach Intel (testowane na różnych modelach, zaczynając od PentiumIII kończąc na Quad Core), serwery osiągają wartości bliskie 1000FPS, lecz nigdy równy tysiąc! Ogólnie rzecz biorąc, serwer nigdy nie osiąga dokładnie tyle ile ma dane. Oto przykłady
oraz z innego serweraKod:09:15:03 CPU In Out Uptime Users FPS Players 99.90 192.00 361.39 52 189 959.37 30Można by sobie pomyśleć "pewnie serwer nie da rady tyle wyciągnąć". Więc kolejny przykładKod:09:16:04 CPU In Out Uptime Users FPS Players 20.00 37.86 57.31 2213 6206 982.59 6100 FPS też nie da rady wyciągnąć, skoro przed chwilą wyciągał ponad 900? Wniosek jest taki, że na procesorach Intel serwer wyciąga troszkę mniej niż ma ustawione, dlatego zawsze ustaw sys_ticrate na te 30-40 więcej niż docelowo chcesz osiągnąć. Można by też pomyśleć "wystarczy ustawić na ponad 1000" - nic bardziej błędnego! Maksymalną wartością sys_ticrate jest właśnie 1000, a wszystkie stwierdzenia o ustawieniu na 10000 są po prostu zwykłym mitem (bo i tak jest ustawione na 1000).Kod:09:16:58 sys_ticrate 100 09:16:59 stats 09:16:59 CPU In Out Uptime Users FPS Players 17.40 23.34 31.92 2214 6206 94.06 5
Procesory AMD. Tutaj natomiast da się osiągnąć dokładną wartość FPS bez większego problemu.
lecz tutaj marzenia o 1000 FPS też muszę rozwiać. Na serwerach opartych o jednostki AMD jedno/dwurdzeniowe da się osiągnąć maksymalnie 500 FPS. Czemu? Najlepiej zapytać o to VALVE.Kod:09:22:57 sys_ticrate 100 09:23:00 CPU In Out Uptime Users FPS Players 1.25 27.23 37.57 28175 23982 100.01 7
Natomiast na procesorach 4 rdzeniowych (Phenom, Opteron) problemu nie maKod:09:24:28 sys_ticrate 1000 09:24:30 CPU In Out Uptime Users FPS Players 1.00 25.10 28.61 28176 23982 500.50 7
lecz nie jest one już tak stabilne.Kod:CPU In Out Uptime Users FPS Players 0.33 0.00 0.00 68 3 1000.00 0
Oczywiście da się na Intelu osiągnąć 1000 FPS
lecz jest to wartość tylko chwilowa, która nie ma szans aby utrzymać się dłużej.Kod:00:59:59 CPU In Out Uptime Users FPS Players 61.40 204.13 338.86 791 9454 1000.01 31
Reasumując, jak dla mnie, mit 1000FPS jest dla mnie bajką. Widziałem kiedyś screena jak FPS 1000, właściwie to równe 1000.0 za każdym wykonaniem komendy stats, lecz jakoś mi się nie chce w to wierzyć. Stałego 1000FPS nie da się otrzymać.
PS2. Taki art pisany z natchnienia ;)
PS3. Dodane trochę tekstu, bo niektórzy nie rozumieją prostych słów.
PS4. Po długim czasie... test nie brał pod uwagę sys_ticrate wyższego niż 1000.















