Skocz do zawartości
Szukaj w
  • Więcej opcji...
Znajdź wyniki, które...
Szukaj wyników w...
franca

Poradnik o sys_ticrate oraz ogólnej wydajności serwera

Brak odpowiedzi w tym temacie

Rekomendowane odpowiedzi

Ten poradnik jest 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.

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ę).

5. Mam mało FPS na serwerze! Co zrobić?

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 serwery

Duż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.

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).

8. 1000 FPS! Jak?!

W tym punkcie mam wiele informacji do przekazania, rozbijając serwery na AMD / Intel.

 

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

Kod:

09:15:03 CPU In Out Uptime Users FPS Players

99.90 192.00 361.39 52 189 959.37 30

oraz z innego serwera

Kod:

09:16:04 CPU   In    Out   Uptime  Users   FPS    Players
         20.00 37.86 57.31    2213  6206  982.59       6
Można by sobie pomyśleć "pewnie serwer nie da rady tyle wyciągnąć". Więc kolejny przykład

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
100 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).

 

Procesory AMD. Tutaj natomiast da się osiągnąć dokładną wartość FPS bez większego problemu.

 

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
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: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
Natomiast na procesorach 4 rdzeniowych (Phenom, Opteron) problemu nie ma

Kod:

CPU   In    Out   Uptime  Users   FPS    Players
 0.33  0.00  0.00      68     3 1000.00       0
lecz nie jest one już tak stabilne.

 

Oczywiście da się na Intelu osiągnąć 1000 FPS

Kod:

00:59:59 CPU   In    Out   Uptime  Users   FPS    Players
         61.40 204.13 338.86     791  9454  1000.01      31
lecz jest to wartość tylko chwilowa, która nie ma szans aby utrzymać się dłużej.

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ć.

 

PS. Ogólnie w amxmodx jest fajny forward o nazwie server_frame() - jest on wykonywany co klatkę serwera.

 

PS2. Po długim czasie... test nie brał pod uwagę sys_ticrate wyższego niż 1000.

źródło

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×