Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-02-05 14:03:55

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Witam, od tygodni sporam się z wielkim problemem wydajności na moim serwerze.
Stawiam na nim serwery CS 1.6 (HLDS). I problem polega na tym że przy większej ilości graczy CPU waha się w granicach 80-90 CPU..

13:43:32 stats
13:46:32
CPU   In    Out   Uptime  Users   FPS    Players
38.00 73.24 122.14    1169   877  271.22      12

13:46:19
CPU   In    Out   Uptime  Users   FPS    Players
92.00 137.38 178.71     567   515   39.75      21

FPS'y to już w ogóle latają od 60 do 450 (sys_ticrate 500)

Serwer to HP ProLiant DL 580 G2

Kod:

Procesor: 4x Intel(R) Xeon(TM) MP CPU 3.00GHz (4mb l3 cache)
Pamięć: 8 GB DDR ECC
Dysk:  4 x 72,8 GB SCSI ULTRA 3, 10k RPM (W RAID 0)
Kontroler HP Smart Array 642 U320 192MB PC-X
2 x PS/2, VGA, COM, 2 x USB, 2 x LAN,
Zasilacz : 2 x  zasilacz HotSwap

cpuinfo

Kod:

processor       : 7
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Xeon(TM) MP CPU 3.00GHz
stepping        : 6
cpu MHz         : 2994.646
cache size      : 4096 KB
physical id     : 3
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 7
initial apicid  : 7
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips        : 5986.77
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 32 bits virtual

Ostatnio nawet ze znajomym kompilowaliśmy kernel z patchem RT.. niestety nie pomogło.

2.6.33.7-rt29 #1 SMP PREEMPT RT Tue Jan 24 00:00:59 CET 2012 i686

Kod:

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_BIGSMP=y
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_MRST is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_32_NON_STANDARD is not set
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
# CONFIG_XEN is not set
CONFIG_VMI=y
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_LGUEST_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_SPINLOCKS is not set
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_MATOM is not set
# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=7
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
# CONFIG_X86_DS is not set
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_IOMMU_API is not set
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
# CONFIG_X86_MCE_AMD is not set
# CONFIG_X86_ANCIENT_MCE is not set
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_VM86=y
CONFIG_TOSHIBA=m
CONFIG_I8K=m
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=3
CONFIG_HAVE_ARCH_BOOTMEM=y
CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_HAVE_ARCH_ALLOC_REMAP=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_HIGHPTE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW_64K=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set

Offline

 

#2  2012-02-05 14:15:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

na tym że przy większej ilości graczy CPU waha się w granicach 80-90 CPU.

A co się kryje pod hasłem "większa ilość graczy"?

Poza tym radzilbym pytać na forum ovh - tam trochę ludzi ma podobne serwery, albo na jakimś forum CS.

Kernel RT zmienia priorytety procesów, ale nie dodaje dodatkowego procka.
Radziłbym potestować z autogroup (jest w jaju od wersji 2.6.37) lub  CKO, ewentualnie.

Poza tym Debian jest bezpieczny i łatwy w administrowaniu, ale jak dobrze znasz temat, to zarówno z Gentoo  jak i z FreeBSD można wyciągnać zauważalny wzrost wydajności.

Pod warunkiem, że zaczynasz od kompilatora.

Ostatnio edytowany przez Jacekalex (2012-02-05 14:27:58)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2012-02-05 14:26:09

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Na forum CS cała ta wiedza co do wydajności jest chyba jedną wielką tajemnicą..
Co do ilości graczy, to przy 20+ jest już słabo, obciążenie jest w granicy 70-80CPU i przez to już rośnie ping graczom, a serwer HLDS potrafi obsłużyć 32 graczy, a wczoraj gdy zapełniłem serwer do 28 to zżerało 96CPU 30-40FPS i ping każdy w okolicach 100 ;)

Jak będzie trzeba to będę szukał pomocy wszędzie, aż ktoś mnie na coś konkretnego nakieruje :)

Offline

 

#4  2012-02-05 14:32:40

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Spróbuj nowsze jajo, między 2.6.33 a 3.2 to jest prawie epoka, sporo poprawek dotyczylo rozmaitych optymalizacji, wydajności, itp.

Co do kernela, ja bym spróbował łatkę cko, i zobaczył, co generuje największe  obciązenie, 20-40 graczy,to trochę mało żeby zajechać taką maszynę, o ile wszystko chodzi prawidłowo.

Zapotrzebowanie powinno się zmieścić na poziomie około 50Mhz/pacjent.

Jak instalowałeś tego CSa?

Ostatnio edytowany przez Jacekalex (2012-02-05 14:43:00)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2012-02-05 14:34:51

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

http://hlds.pl/Sprz%C4%99t

tutaj pisze
Średnio powinno wyliczać się jakieś 50 MHz na jednego gracza (slot).
tylko czy ten serwer cs potrafi wykorzystać kilka procesorów?

sam próbowałem ostatnio postawić taki serwer (jak ktoś przyjdzie na piwko by sobię pograć) ale przez to, że wymaga instrukcji SSE pentium2 okazało się niewystarczające :(

Ostatnio edytowany przez dominbik (2012-02-05 14:36:00)


http://img34.imageshack.us/img34/5092/zw9m.png http://img29.imageshack.us/img29/219/pibw.png

Offline

 

#6  2012-02-05 14:38:19

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

No właśnie maszyna to jest pershing, dlatego dziwie się dlaczego taka mała wydajność, dzięki za wypowiedz, na pewno skorzystam :)
Ktoś ma jeszcze jakieś pomysły?

Nie, HLDS korzysta tylko z jednego rdzenia, nie rozdziela obciążenia, a szkoda :D

Ostatnio edytowany przez gokaj (2012-02-05 14:43:00)

Offline

 

#7  2012-02-05 14:45:59

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

http://hlds.pl/Sprz%C4%99t napisał(-a):

Gentoo - Nieeeeeeeee polecam, chyba że masz mnóstwo czasu na rekompilacje.

Pocieszny tekst.

Co do optymalizacji na poziomie systemu, radzilbym zobaczyć, czy da się odpalić kilka procesów tego serwera, wtedy pójdzie na kilku rdzeniach.

Poza tym przejrzeć, co jest na serwerze niezbędne, Debian czy CentOS potrafią w serwerowych wrersjach zaciągać jakieś śmieci w stylu avahi, gpm, zeroconf, i podobne bzdury, które potem wiszą w ramie bez pożytku.

ALe jeśli gra chodzi na jednym jaju, a jajek masz na serwerze kilka, to raczej gdybanie, niż konkretny zysk.

Poza tym  popatrz dokładnie w htopie, co tam tak przymula, bo obciążenie normalne nie jest.

mogą się zdarzac wycieki pamięci, czy  jakieś pętle nieskończone (błąd programistyczny, konflikt z taką czy inną biblioteką),
i podobne bzdury, powodujące puste przebiegi procka, i czasami kosmiczne obciążenie nie wiadomo skąd.

Pod tym kątem też radziłbym poszukać.

Ostatnio edytowany przez Jacekalex (2012-02-05 16:29:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2012-02-05 14:52:31

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Jacekalex napisał(-a):

Jak instalowałeś tego CSa?

http://board.counter-strike.pl/viewtopic.php?t=1472

a potem odpalam je skryptem

Kod:

#!/bin/sh
sleep 1
cd /home/servers/hlds_27015/
/usr/bin/nice -n -20 /usr/bin/taskset -c 6 ./hlds_run -console -game cstrike -port 27015 +map de_dust2 +maxplayers 32 +other

Offline

 

#9  2012-02-05 15:04:47

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Ja bym spróbował puścić kilka procesów na różnych rdzeniach i portach, a potem kombinowal, jak pokierowac pacjentow na poszczególne procesy/porty.

Jak masz kilka adresów IP, to może się udać.

Poza tym bezpieczeństwo:
Żeby odalić program z priorytetem ujemnym, potrzebujesz uprawnień roota.
Ten skrypt nie zrzuca uprawnień po ustaleniu priorytetu, czy sam hlds zrzuca uprawnienia?
Bo jeśli nie, to cały bajzel idzie z prawami roota, i nie trzeba Anonimowych, wystarczy pierwszy lepszy skrypciarz, żeby "zaopiekować" się takim serwerem.

Ewentualnie, jak masz kilka rdzeni, a darmowa wersja chodzi na jednym to czy nie mają wersji, która zapierdala na kilku wątkach, jak każdy normalny demon sieciowy?

Ostatnio edytowany przez Jacekalex (2012-02-05 15:16:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2012-02-05 15:19:52

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

wydaje mi się ze uprawnienia idą na sam proces a nie na cały serwer, a co do HLDS to aplikacja jest niestety jednowątkowa :/
zresztą kombinuje już z tymi priorytetami, jaki proponujesz dać?

Offline

 

#11  2012-02-05 15:27:18

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Z uprawnieniami jakiego usera chodzi proces HLDS?

Bo jeśli root, to prędzej czy później możesz mieć przypał.

Jeśli jakiś user z powłoką /bin/false i minimalnymi uprawnieniami, to ok.
Co do priorytetu to - może być, ale lepiej ustaw to dla niższego usera od roota w /etc/security/limits.conf, albo dorzuć do tego polecenia

Kod:

/usr/bin/nice -n -20 /usr/bin/taskset -c 6 sudo -u user ./hlds.......

- gdzie user będzie odpowiednio skonfigurowany.

Poza tym, masz tam jeden adres IP na serwerze, czy kilka?

Bo własnie zainstalowałem sobie z ciekawości na moim Gentoo
paczkę games-server/halflife-steam, i w konfigu /etc/conf.d/hlds widzę co następuje:

Kod:

HLDS_SERVER1="-game cstrike -port 27015 +map de_dust2"
#HLDS_SERVER2="-game cstrike +ip a.b.c.d -port 27015 +map de_aztec15"
#HLDS_SERVER3="-game cstrike +ip a.b.c.d -port 27016"

A to oznacza, że można go odpalić na kilku jajkach, jak się dobrze pokombinuje.

Sznurek: http://www.gentoo-wiki.info/Half-Life_Dedicated_Server

Ostatnio edytowany przez Jacekalex (2012-02-05 16:07:19)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2012-02-05 16:23:04

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

jeden adres IP mam, ale dowolna ilość portów ofc, a co mi da jak odpalę 1 serwer na X jajku i 2 serwer na Y jajku :>?+

może dla każdego serwera zrobię osobny ftp i właśnie z tego użytkownika będę go odpalał?

Zobacz.. masakra

16:24:53
CPU   In    Out   Uptime  Users   FPS    Players
81.33 104.01 146.01     138   138  124.01      15

;(

Chyba wywale go w cholere i kupie jakis i7..

Ostatnio edytowany przez gokaj (2012-02-05 16:25:33)

Offline

 

#13  2012-02-05 16:37:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Tyle Ci da, że każde fizyczne jajko to jakby jeden procesor jednordzeniowy.

Jak demon wisi na jednym rdzeniu (z czterech), a trzy pozostałe nie mają nic do roboty, to wykorzystujesz 25% mocy serwera.
Jak odpalisz 3 procesy - to masz wykorzystane 3 rdzenie, i co za tym idze 3/4 serwera.

Jak na jednym rdzeniu ten obecny ciągnie 20 pacjentów, to na 3 rdzeniach pociagnie około 55-60 pacjentów, bez żadnych specjalnych kombinacji z softem.

I żaden procek 6 czy 8 rdzeniowy na jednym rdzeniu  nie da Ci takiego kopa z wydajnością, jak wykorzystanie kilku rdzeni.

Jak ja płaciłbym parę stów za serwer, żeby wykorzystać na nim 25% mocy obliczeniowej, to raczej wolałbym zobaczyć, czy nie można za jakieś sensowne pieniądze kupić licencji na wielordzeniową wersję tego CS'a.

Bo procków 1*12Ghz nie robią, za to 4*3,2 Ghz robią, i to działające.

Ostatnio edytowany przez Jacekalex (2012-02-05 16:39:42)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2012-02-05 16:37:25

  pasqdnik - Pijak ;-P

pasqdnik
Pijak ;-P
Skąd: Wrocław
Zarejestrowany: 2006-03-06

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

gokaj napisał(-a):

jeden adres IP mam, ale dowolna ilość portów ofc, a co mi da jak odpalę 1 serwer na X jajku i 2 serwer na Y jajku :>?+

może dla każdego serwera zrobię osobny ftp i właśnie z tego użytkownika będę go odpalał?

Zobacz.. masakra

16:24:53
CPU   In    Out   Uptime  Users   FPS    Players
81.33 104.01 146.01     138   138  124.01      15

;(

Chyba wywale go w cholere i kupie jakis i7..

Nie wywalaj! Oddaj mi ;-)


Dum spiro - spero ...
pozdrawiam, pasqdnik

Offline

 

#15  2012-02-05 17:19:32

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Po co RT? Jesli cos nie jest napisane z mysla o RT to nie ma sensu. Po drugie po co dajesz tak wysoki priorytet nie wystarczy 0? Jestes pewny że ten deamon prwidłowo działa z sztywo przynanym CPU?

Offline

 

#16  2012-02-05 17:54:50

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

qluk napisał(-a):

Po co RT? Jesli cos nie jest napisane z mysla o RT to nie ma sensu. Po drugie po co dajesz tak wysoki priorytet nie wystarczy 0? Jestes pewny że ten deamon prwidłowo działa z sztywo przynanym CPU?

tutaj było o tym, i tak na spróbowanie wgraliśmy patcha RT

http://wiki.fragaholics.de/index.php/EN:Linux_Kerne … and_the_patch

miałem priorytet 0 , +5 +10 itp, i efekt taki sam, a nawet przy priorytecie większym niż +10 to ścinało grę co jakieś ~3 minuty na 2-3 sekundy ..

Offline

 

#17  2012-02-05 18:10:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

gokaj napisał(-a):

jeden adres IP mam, ale dowolna ilość portów ofc, a co mi da jak odpalę 1 serwer na X jajku i 2 serwer na Y jajku :>?+

może dla każdego serwera zrobię osobny ftp i właśnie z tego użytkownika będę go odpalał?

Zobacz.. masakra

gokaj napisał(-a):

tutaj było o tym, i tak na spróbowanie wgraliśmy patcha RT

http://wiki.fragaholics.de/index.php/EN:Linux_Kerne … and_the_patch

miałem priorytet 0 , +5 +10 itp, i efekt taki sam, a nawet przy priorytecie większym niż +10 to ścinało grę co jakieś ~3 minuty na 2-3 sekundy ..

wiki.fragaholics.de napisał(-a):

* On some systems (especially on quad core like Q6600), running one idler per core might be necessary, like:

Kod:

nice -n +19 taskset -c 0 screen -AmdS idler1 ./idler
nice -n +19 taskset -c 1 screen -AmdS idler2 ./idler
nice -n +19 taskset -c 2 screen -AmdS idler3 ./idler
nice -n +19 taskset -c 3 screen -AmdS idler4 ./idler

I recommend testing both running a single idler and one idler per core, as there is no way to tell what is better without testing!

    * Also usually on quad cores it can be better to run each server on a different core, like:

Kod:

taskset -c 0 screen -AmdS cs-server ./hlds_run put your options here
taskset -c 1 screen -AmdS cs-server ./hlds_run put your options here
taskset -c 2 screen -AmdS cs-server ./hlds_run put your options here

Czego dotyczy ten cytat z wiki?

Dokumentację na wiki czyta się po to żeby ją przeczytać i zrozumieć, czy w innym celu? :xD

Szkoda, że na dugu nie mamy nagród złotego i platynowego pegaza ;)

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-02-05 18:15:34)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#18  2012-02-05 18:23:48

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

To jak ma wtedy wyglądać ta linia..
Możesz mi pomóc na priv :D?

Ostatnio edytowany przez gokaj (2012-02-05 18:25:54)

Offline

 

#19  2012-02-05 18:42:07

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Linię w skrypcie masz gotową, tam tylko bym dodał po taskset sudo -u user - zeby zrzucić uprawnienia z roota - będzie bezpieczniej.
Dowcip polega na tym, że odpalasz nie jeden proces serwera, tylko tyle procesów, ile masz rdzeni, kierując każdy proces na inny rdzeń tasksetem.
A to oznacza tyle linii lub oddzielnych skryptów, ile będzie trzeba.

Tutaj jedna wątpliwość - w przykładzie na wiki.fragaholics.de nie ma nic o portach i adresach IP.
A dwa hldsy na jednym porcie wisieć chyba nie mogą, więc albo każdy na innym porcie, albo adresy IP failover - na ovh mają coś takiego, w innych serwerowniach pewnie też, i każdy na innym IP.

A potem przy pomocy iptables lub binda wyczaić, jak rozdzielić pacjentów, żeby zajęli proporcjonalnie wszystkie rdzenie.

To już musisz potestować u siebie na serwerze, ja takim serwerem nie administruję, i detali dotyczących Cs'a nie znam.
Poza tym ewentualnie miauczenie pacjentów, kiedy trafią nie do tej gry, co kolega.
W każdym razie trza by to tak ustawić, żeby miało ręce i nogi.

W każdym razie na 6 jajowym Xeonie możesz w ten sposób uciągnąć lekko 100 pacjentów, a nie 20.

Co nie zmienia faktu, że jeśli 20 pacjentów pożera 1 rdzeń Xeona, to coś tam nie gra między hldsem a systemem, ale tego mozesz się dowiedzieć przez strace,lub gdb, badając backtrace hlds'a.

Tu masz opis, jak się to robi:
http://www.gentoo.org/proj/pl/qa/backtraces.xml
Ale jak do kodu hlds'a zajrzeć i czegoś poprawić nie można, to i tak niewielki będzie rezultat, chyba, żeby kombinować w stylu nvbodzio.
Ale w debugowaniu hlds raczej pomóc zbyt wiele nie mogę, co najwyzej doradzić conieco.

Pozdro
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#20  2012-02-05 18:51:15

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

no i przed chwilą serwer zapełnił się do 20 graczy, i po chwili się zaciął..
proces zaznaczony na screenie ofc

http://csiks.pl/scina.png

Offline

 

#21  2012-02-05 19:15:40

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

no dobrze, wcześniejsze posty chyba sugerują by odpalić na kilku rdzeniach? ;>

Ostatnio edytowany przez dominbik (2012-02-05 19:16:28)


http://img34.imageshack.us/img34/5092/zw9m.png http://img29.imageshack.us/img29/219/pibw.png

Offline

 

#22  2012-02-05 19:17:38

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

dominbik napisał(-a):

no dobrze, wcześniejsze posty chyba sugerują by odpalić na kilku rdzeniach? ;>

każdy serwer jest odpalony na innym rdzeniu..

Offline

 

#23  2012-02-05 19:19:05

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Prawdopodobnie przeszedł w tryb zombie.
Gdyby był puszczony z poziomu zwykłego usera, a serwer był chroniony przez Selinux lub Grsecurity, to taki proces na 95% by zginął śmiercią tragiczną, ale serwerowi nic by się nie stało.

Nie zdziwiłbym się, gdyby ten serwer ubijał skrypciarz od konkurecji.
Bo wystawianie programu ściągnietego jako zewnętrzna binarka,
  jako root na internet, to jest po prostu proszenie się o kłopoty.

Żadne aktualizacje bezpieczeństwa nie aktualizują tego hldsa w razie problemów, a przez niego można położyć serwer, to czego można się spodziewać?
Czy jakiś Developer Debiana sprawdził ten kod hldsa?
Albo inny specjalista od bezpieczeństwa?

Edyta:
Masz teraz odpalonego hldsa na wszystkich rdzeniach, i dalej 20 graczy, tak, jak na jednym rdzeniu?

Jeśli tak, to znaczy, że masz jakiś hardcorowy błąd w hlds, w kodzie albo konfiguracji.

Ostatnio edytowany przez Jacekalex (2012-02-05 19:24:13)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#24  2012-02-05 20:13:30

  gokaj - Użytkownik

gokaj
Użytkownik
Zarejestrowany: 2012-02-05

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

20:12:32
CPU   In    Out   Uptime  Users   FPS    Players
95.75 178.87 229.90      88   125   32.25      32

Przy pelnym serwerze, nie rozumiem zbytnio tego idler na czym polega, do kazdego procesu z serwerem sie go dodaje?

Offline

 

#25  2012-02-06 08:19:00

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Mala wydajnosc serwera (optymalizacja kernela pod serwery gier HLDS)

Kod:

aptitude install htop
htop

Poza tym wywal to jajo rt, i daj zwykle, CFS albo skompiluj jajo z łatką CK - optymalizacja serwer, albo BFQ. Możesz też spróbować BFS, choć to rozwiązanie strickte na desktopy, podobnie jak większość funkcji CK.

Co do priorytetów (polecenie nice), nie rozwiążą problemu, bo po protu nie są od tego.

Potestuj, które rozwiązanie lepiej się sprawdzi.
Jeżeli na priorytetach -5, -10, -20 jest ten sam problem i ta sama wydajność - to masz dowód, ze nie tutaj tkwi problem, to puść na priorytecie zero - domyślnym.

W ogóle to wiki.fragaholics.de  pisał jakiś idiota, który o Linuxie pojęcia nie ma.

Łata RT jest do dżwięku i obrazu, i szeroko rozumianych multimediów.
Dlatego kernelel RT pracują np w większości nowoczesnych telewizorow fullHD.
Do serwera, który musi rozkładać moc na XX żądań od pacjentów RT jest przekleństwem.

Radziłbym też aktualizację tego CSa, bo najprawdopodobniej ma jakieś błędy, które powodują takie obciążenie.
O ile w ogóle nie ma on jakichś celowych (zabezpieczeń marketingowych), zeby nie szedł z więcej niż 20 pacjentami.
Producent jest po to, zeby zarabiać, a nie dawać najwyższą jakość za darmo.

I aktualizację jajak do jakiejś bardziej współczesnej wersji, Squeeze bez problemu pracuje z 3.2 - po aktualizacji do wydania 6.0.4 .
Od 2.6.32/33 sporo się zmienilo w kierunku większej wydajności.

Poszkaj też, albo popytaj na forach, jakie obciązenie wychodzi na innych serwerach, przy podobnej liczbie pacjentów, i pytajać o wersję CSa (nie glołną, tylko jakiś kolejny numerek wersji określający np datę aktualizacji) i jaki system.
Bo coś mi się zdaje, ze ten twój CS kiepsko sobie radzi na tym Debianie, i pytanie jest takie, na jakim systemie wyciągnie lepszy wynik.
Nowszym czy starszym, czy co innego.
I ule oczywiście ta wersja CSa nie jest walnięta, to może ( choć nie musi) załatwić aktualizacja  CSa..

Błędy w programach się zdarzaly, zdarzają i zdarzać będą.
To jest pewne.

W każdym razie musisz pokombinować conieco, i zapomnieć o idiotwiki, na której znalazleś tą radę z kernelem rt.

Mam nadzieję, ze to nie jest jedyna dokumentacja CSa dostępna na necie.

każdy serwer jest odpalony na innym rdzeniu..

Jak rozdzielielś to na rdzenie, osobnymi skryptami?
Pokaż polecenia odpalające na poszczególnych rdzeniach.

Ostatnio edytowany przez Jacekalex (2012-02-06 08:29:18)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)