PDA

Voir la version complète : Serveur de jeu 1000fps (hl1 hl2 orangebox)


madrippeur
02/07/2009, 15h04
Coucou !
Comme promis je vais tenter de vous expliquer comment obtenir un serveur stable (hl1, hl2, et orange box) même plein avec 1000fps.
Ces modifications ont été testées avec des serveurs pleins (20 slots) et un tickrate 110 (orangebox).


ATTENTION !!!!!!
Nous allons utiliser des fichiers faisant grimper le cpu du serveur à 100%. C'est à vous de voir si votre serveur chauffe trop et de l'entretenir le cas échéant!
Je ne suis pas responsable des dégâts qui éventuellement pourraient apparaître, c'est à vous de savoir ce que vous faites !
Je ne veux pas être responsable de quoi que ce soit, et je propose simplement une méthode qui peut vous aider, mais qui est loin d'être parfaite.




Pour preuve du bon fonctionnement, voyez ce graph :
Graph fragaholics (http://fpsmeter.org/p,view;6784.html)

Je ne peux pas vous promettre que vous aurez le même résultat, mais pour moi cela a été la seule solution viable que j'ai trouvé !

Commençons !

Configuration du dédié :
Installez le kernel ovh real time par votre netboot: 2.6.29.3-rt12

Configuration du serveur de jeu :
Dans le serveur.cfg modifiez ces valeurs :
fps_max 0
sv_maxupdaterate 110
sv_minupdaterate 75
sv_maxcmdrate 500
sv_mincmdrate 75
sv_maxrate 1048576
sv_minrate 15000

Ces valeurs sont celles d'un serveur orangebox. Pour le fps_max d'un serveur hl1, il me semble qu'il faut le mettre à la ligne de lancement du serveur de jeu.

Le tickrate est important, et pour moi les meilleurs résultats ont été obtenus avec un tickrate configuré de cette manière :
Serveur hl1 : 1110
Serveur hl2 : 110
Serveur orangebox : 110

Le real time :
Une fois les opérations faites, nous allons modifier le comportement des priorités. Nous allons faire passer nos serveurs en real time, et tous les autres processus seront en priorité moindre.

Pour se faire, nous allons utiliser le script de fragaholics que j'ai à peine modifié :
PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done

PIDS=`pidof srcds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof srcds_i486`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof srcds_amd`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof hlds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done


PIDS=`pidof SCREEN`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done



nice -n 19 renice 19 -u root
nice -n 19 renice 19 -u bind
nice -n 19 renice 19 -u www-data

Ce script vous allez le placer dans : /root et vous l'appelez realtime.sh ; rendez le exécutable en lui donnant les droits : 0744

Les 3 dernières lignes de code de ce scripts correspondent à des utilisateurs à qui nous allons donner une priorité encore moindre avec nice. A vous de les trouver en faisant par exemple un htop et de les répercuter dans ce script. Je vous conseille de laisser root de la façon dont il est noté dans le script car cela nous servira pour la suite.


A ce script, on va rajouter une petite modification. Nous avons actuellement nos serveurs en realtime si nous exécutons ce script, mais nous allons leur attribuer un nice maximum.
Pour ce faire, trouvez l'utilisateur qui fait tourner votre serveur de jeu. A titre d'exemple, mon utilisateur va s'appeler dods.
Donc à la fin de ce script, je rajoute ceci :
nice -n 19 renice -20 -u dods

Faites cette opération pour CHAQUE utilisateur qui lance un serveur si vous en avez plusieurs.

Une fois ceci fait, nous allons executer ce script toutes les minutes pour forcer chaque commande à être non prioritaire.
crontab -e
Et rajoutez un ligne avec ceci :
#SERVEURS EN REAL TIME
*/1 * * * * /root/realtime.sh > /dev/null 2>&1

Voila nous avons donc une priorité maximum sur les serveurs de jeu et vraiment le strict minimum sur le reste.

Maintenant nous allons nous occuper des idler. Ce sont des petits scripts qui vont forcer le processeur à monter à 100% de charge tout le temps, mais qui ne ralentiront pas vos serveurs car ils seront en priorité minimum.

Création du fichier idler :
Créez un fichier dans /root nommé : idler.c et contenant ceci
int main() {
while(1);
}


Pensez à laisser une ligne vide à la fin du fichier pour éviter une erreur de compilation !
Puis compilez le :
gcc idler.c -o idler


Nous allons maintenant créer un script qui sera lancé au démarrage du dédié qui permettra de lancer ce idler.

Ce fichier sera différent si vous avez un simple coeur, un double coeur , un triple coeur ou un quadri coeur.

Créez un fichier idler.sh dans /etc/init.d/
Rajoutez dedans :
Simple coeur :
#!/bin/sh


start() {
nice -n +19 screen -AmdS idler1 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac
Double coeur :
#!/bin/sh


start() {
nice -n +19 taskset -c 0 screen -AmdS idler1 /root/idler
nice -n +19 taskset -c 1 screen -AmdS idler2 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac
Triple coeur :
#!/bin/sh


start() {
nice -n +19 taskset -c 0 screen -AmdS idler1 /root/idler
nice -n +19 taskset -c 1 screen -AmdS idler2 /root/idler
nice -n +19 taskset -c 2 screen -AmdS idler3 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac
Quad coeur :
#!/bin/sh


start() {
nice -n +19 taskset -c 0 screen -AmdS idler1 /root/idler
nice -n +19 taskset -c 1 screen -AmdS idler2 /root/idler
nice -n +19 taskset -c 2 screen -AmdS idler3 /root/idler
nice -n +19 taskset -c 3 screen -AmdS idler4 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac

Double quadcoeur :
#!/bin/sh


start() {
nice -n +19 taskset -c 0 screen -AmdS idler1 /root/idler
nice -n +19 taskset -c 1 screen -AmdS idler2 /root/idler
nice -n +19 taskset -c 2 screen -AmdS idler3 /root/idler
nice -n +19 taskset -c 3 screen -AmdS idler4 /root/idler
nice -n +19 taskset -c 4 screen -AmdS idler5 /root/idler
nice -n +19 taskset -c 5 screen -AmdS idler6 /root/idler
nice -n +19 taskset -c 6 screen -AmdS idler7 /root/idler
nice -n +19 taskset -c 7 screen -AmdS idler8 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac

Rendez le executable puis activons le démarrage automatique lors du boot :
chmod 0744 /etc/init.d/idler.sh && cd /etc/init.d && update-rc.d idler.sh defaults 99

Logiquement je n'ai rien oublié :)
J'espère que cela fonctionnera aussi bien pour vous que pour moi !
Comme vous l'avez vu, je n'ai rien inventé, j'ai simplement recherché des méthodes qui donneraient des résultats, je n'ai pas la prétention de l'inventeur de cette méthode, j'ai simplement fais des recherches.

Bon jeu à tous ;)

Furious13
02/07/2009, 17h14
Oh super merci !

Petites questions :

le kernel est-il en 1000hz ?
peut-on l'installer sur la machine et booter du hdd ?

Pour le idler ? le i7920 (8xl), c'est un 8 coeurs, ou je le considere comme un 4 coeurs x2 ?

Merci bcp !! Je test ça rapidement !

cr0k72
02/07/2009, 17h43
La même chose on est obligé de booter en netboot ou on peu booter sur le hd ?
Sinon ta pas testé avec le 2.6.26.8 compilé comme le disent fragaholic ?

SekYo
02/07/2009, 17h52
Je pense que sa marche avec n'importe quel kernel RT.
Avec un kernel custom : http://fpsmeter.org/p,view;6797.html

Je gagne effectivement quelques fps grace a ses changements de prio.

Par contre encore une fois, attention aux plugins ! Meme a vide, zBlock ( qui est, a priori, un programme plutôt "léger" ), me causait parfois des drops de 50-80 fps.

cr0k72
02/07/2009, 17h58
Je vais tester avec mon 2.6.26.8-rt16 compilé à la fragoholic pour voir, verdict dans 20 minutes.

EDIT: Tu as testé sur hl1 avec un pingboost 2-3 ou sans ?

Bobel
02/07/2009, 18h43
Le kernel peut être installer sur hd ils sont disponible ici ftp://ftp.ovh.net/made-in-ovh/bzImage/ mais que vous lancez en netboot c'est pareil le kernel ce charge intégralement en ram dans les deux cas.

Madripeur tu peut vérifier si chez toi le process sirq-hrtimer passe en 99 car chez moi après lancement du script il reste toujours a la même priorité avec ce kernel ?

madrippeur
02/07/2009, 19h34
Il passe bien à 99 ;)
Pour un serveur hl1, j'ai testé en pingboost 3

cr0k72
02/07/2009, 19h38
Et sur qu'elle machine as tu fais tes tests ?

madrippeur
03/07/2009, 07h58
Sur un quad core 4xl, l'ancienne version avec 8giga de ram.

bot_fr4gueur
03/07/2009, 09h20
Merci pour ce tuto vraiment cool j'en connais peu qui aurait partagé.
Pour le 8 xl c'est comme sa je suppose :
#!/bin/sh


start() {
nice -n +19 taskset -c 0 screen -AmdS idler1 /root/idler
nice -n +19 taskset -c 1 screen -AmdS idler2 /root/idler
nice -n +19 taskset -c 2 screen -AmdS idler3 /root/idler
nice -n +19 taskset -c 3 screen -AmdS idler4 /root/idler
nice -n +19 taskset -c 4 screen -AmdS idler5 /root/idler
nice -n +19 taskset -c 5 screen -AmdS idler6 /root/idler
nice -n +19 taskset -c 6 screen -AmdS idler7 /root/idler
nice -n +19 taskset -c 7 screen -AmdS idler8 /root/idler
}
stop() {
killall -9 /root/idler
exit 0
}
case $1 in
stop)
stop
;;
start)
start
;;
*)
echo "Usage: {start|stop}" >&2
exit 3
;;
esac
Quand je lance la commande gcc idler.c -o idler
Voila ce que j'ai est ce normal ?gcc idler.c -o idler

idler.c:3:2: warning: no newline at end of file

Et il n'y a aucun core qui monte à 99 % pour le 8xl ....

Furious13
03/07/2009, 09h33
je n'arrive pas à grand chose de concluant.

Machine : 2XL - P4 DualCore @ 2Ghz + 2Go DDR1/2

Distribution : Debian Etch 64 bits

Kernel : OVH bzImage-2.6.28.4-xxxx-std-ipv4-64-hz1000 (j'ai testé avec le kernel du tuto et celui de daryl, c'est celui-ci qui me donne le meilleur graphique, pourtant ce n'est pas un RT)

Lancement (j'ai testé tick 100 et 110, même resultat):
taskset -c 0 ./srcds_run -game cstrike +ip 94.23.21.5 -port 27015 +maxplayers 11 +map de_dust2 -tickrate 120 -autoupdate +mp_dynamicpricing 0 +tv_port 28015


Config :
fps_max "0"
sv_minrate "20000"
sv_maxrate "0"
sv_minupdaterate "66"
sv_maxupdaterate "110"
sv_mincmdrate "66"
sv_maxcmdrate "110"



Screen console : http://img193.imageshack.us/img193/9283/sanstitre1tac.png


graphique : http://fpsmeter.fragaholics.de/p,view;6954.html

Le début du graphique est stable, map de_dust2, plugin Zblock et aucun joueur.

La suite ce complique dès le chargement de la sourcetv sur la map de_inferno.

Le graphique s'améliore quand même, avant les pics descendaient à 0, maintenant à 300.

Si quelqu'un voit d'ou vient le problème ?
Help ! :confused: :o :( :rolleyes:

madrippeur
03/07/2009, 09h49
Par rapport à ton top, je vois des processus root qui sont en RT.
Cela ne devrai pas arriver avec mes modifications.
Tu lances bien ton script realtime toutes les minutes ?
As tu modifié le script realtime, si oui fais voir ^^

Furious13
03/07/2009, 10h01
non j'ai copié collé le script sans rien touché, ni modifié les 3 dernières lignes.
Par contre en 4 eme derniere ligne j'ai rajouté (mais avec admin au lieu de dods) comme tu le précises dans le fichier realtime.sh :
nice -n 19 renice -20 -u admin

realtime.sh

PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done

PIDS=`pidof srcds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof srcds_i486`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof hlds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done


PIDS=`pidof SCREEN`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done



nice -n 19 renice 19 -u root
nice -n 19 renice 19 -u bind
nice -n 19 renice 19 -u www-data

nice -n 19 renice -20 -u admin

Ensuite j'ai utilisé le fichier double coeur pour le idler.

Par contre quand j'edite via winscp le fichier crontab, la ligne suivante n'apparait pas :
*/1 * * * * /root/realtime.sh > /dev/null 2>&1

Mais en tapant en root "crontab -e" dans putty, la elle apparait bien

Fichier crontab via winscp:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

edit : y a t'il une commande a lancer pour prendre en compte les modifications crontab ou realtime ?

madrippeur
03/07/2009, 10h14
La différence entre le fichier crontab et le crontab -e est logique.
Donc apparemment tu as fais ce qu'il faut :s
Lorsque tu regarde ton htop pendant 2 ou 3 minutes, est ce que les pid lancés par root changent de priorité ?
Si elles ne changent pas lance à la main ton realtime.sh avec une commande du genre : sh realtime.sh et vois si il te donne des erreurs.

Tiens nous au courant :)

Furious13
03/07/2009, 10h19
aucune erreur quand je lance en manuel le realtime.sh

0: old priority 19, new priority 19
103: old priority 19, new priority 19
33: old priority 19, new priority 19
renice: 1000: getpriority: Aucun processus de ce type


Et quand je lance top, tous les PID root sont en PR 39 et NI 19, sauf ceux en RT qu'on peut voir sur le screen :(

Est ce que ca ne viendrait simplement pas du fait qu'un P4 n'est pas assez puissant ?

madrippeur
03/07/2009, 10h32
renice: 1000: getpriority: Aucun processus de ce type
Ce truc la ça m'intrigue :s
Tu peux vérifier l'existence chez toi de ces utilisateurs ?
bind
www-data
Peut être que l'un de ceux la n'existe pas chez toi (ça dépend de ce que tu as d'installer sur le serveur).
Sinon la pour le moment je ne vois pas, je réfléchis ^^

Je ne pense pas que cela vienne de ton proco pas assez puissant, la c'est plutôt un soucis dans la mise en place des priorités.

Bobel
03/07/2009, 10h34
Furious13 tu peut pas comparer ton graf avec celui de madrippeur si tu ne met pas un kernel RT même si certain process sur linux sont en rt (comme dans tous les kernel) il y en a d'autre qui doive avoir des priorités spécifique voir rt ce n'est pas le cas de ton kernel pour répondre a un kernel RT.

Met le kernel RT et refait le graph car ton P4 est suffisamment puissant pour tourner a vide avec une source tv :)

Furious13
03/07/2009, 10h34
les serveurs counter n'étaient pas lancé a ce moment la, je refait

madrippeur
03/07/2009, 10h39
MOUARF EDIT.
DSL je n'ai rien dit :)

Furious13
03/07/2009, 10h49
okay je lance un test avec :

kernel : bzImage-2.6.29.3-xxxx-rt12-ipv6-64

je ne sais pas si il est en 1000hz :(

j'ai lancé les serveurs counter, et la manip sh realtime.sh me donne ça à présent :
0: old priority 19, new priority 19
103: old priority 19, new priority 19
33: old priority 19, new priority 19
1000: old priority -20, new priority -20


je lance le graph et vous envoi le résultat !

En tout cas vraiment merci pour tout !

bot_fr4gueur
03/07/2009, 10h49
Pouvez vous regarder le message que j'ai écris en page 1 car la je galére un peu lorsque je lance le script real time : sh realtime.sh
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 13: chrt: command not found
nice: chrt: Aucun fichier ou répertoire de ce type
0: old priority -20, new priority 19
102: old priority 0, new priority 19
33: old priority 0, new priority 19

Donc il doit y avoir un petit problème pourtant j'ai fait un copié collé donc il y a un petit problème

Furious13
03/07/2009, 11h10
http://fpsmeter.fragaholics.de/p,view;6974.html

début du graph : map de_dust2, zblock, aucun joueur

Sitôt que je lance la sourcetv avec la map inferno, les pics recommencent.

Bon ca s'améliore quand meme mais c'est loin d'être stable.

screen htop : http://img14.imageshack.us/img14/2881/sanstitre1zji.png

Bobel
03/07/2009, 11h39
bot_fr4geur tu es sous debian ? il ce peut que le chrt soie un commande différente pour les autes linux

Furious13 oui le kernel RT est en 1000hz, quand tu lances la source tv ton core est en moyenne a combien % ? peut tu mettes aussi la config de ta source tv

cr0k72
03/07/2009, 11h40
Bon voila j'ai un 2XL comme toi Furious, je penses que ça viens du cpu, pour moi c'est très stable jusqu'a 10 players après yoyo time, voici un graph avec 20 players -> http://fpsmeter.fragaholics.de/p,view;6979.html alors imaginez avec 32 players server full :p
Conclusion je passerais en 4XL le mois prochain.

bot_fr4gueur
03/07/2009, 12h01
bot_fr4geur tu es sous debian ? il ce peut que le chrt soie un commande différente pour les autes linux

Furious13 oui le kernel RT est en 1000hz, quand tu lances la source tv ton core est en moyenne a combien % ? peut tu mettes aussi la config de ta source tv

Je suis sous une debien etch 4.0

Furious13
03/07/2009, 12h09
Dans le htop, voici la ligne de commande du serveur :
3225 admin -99 -20 240m 152m 12m S 14 7.7 9:13.83 srcds_i686


Donc mon cpu (core0) tourne à 14% avec 0 joueur, zblock et sourcetv.

La config de la srctv (config ESL je peux pas trop y toucher):

tv_enable "1"
tv_delay "120"
tv_autorecord "1"
tv_maxclients "0"
tv_name "Souriez on vous filme"


Par contre pourquoi certains PID root ont des PR à 39, d'autres en RT et d'autres en -52 ou -52 ?

madrippeur
03/07/2009, 12h21
Teste sans zblock tu devrais voir une différence.

Furious13
03/07/2009, 12h25
oui mais je suis obligé d'avoir zblock (ligue ESL).

Mais avec zblock ca tourne vraiment niquel (http://fpsmeter.fragaholics.de/p,view;6991.html)

C'est vraiment la sourcetv qui m'embête ... et la aussi je suis obligé de l'avoir :(

Je vais tester dans l'aprem en rajoutant des joueurs, car mettre des bots je ne pense pas que ca soit équivalent.

A quoi correspond TIME RMS ? et les différentes valeurs du graph s'il vous plait ?

Furious13
03/07/2009, 12h40
bot_fr4gueur j'ai eu le meme problème pour compiler le fichier idler.c, avant de me rendre compte de ma bêtise lol

En fait tu dois tout simplement ajouter un retour à la ligne (touche entrée) à la fin du fichier. (c'est un problème de compilation C++ ça ;) )

Donc a mon avis tu as sauté cette étape, et c'est pour cela que ca ne fonctionne pas.

Furious13
03/07/2009, 13h10
Bon meme à trois joueurs il bronche pas du tout alors qu'avant c'était pire que les hautes alpes meme à 2! Donc ca vient uniquement de la source TV.

N'y a t'il pas moyen de faire calculer toutes les sourcestv du serveur par un core ?

Exemple sur un 4 XL, 2 serveurs jeux par core, sur les core 0,1 et 2 et sur le core n°3, faire tourner les sourcestv ?

Ou simplement de le rendre stable malgré la sourcetv ?

Bobel
03/07/2009, 14h31
A ma connaissance on ne peut pas dissocier la tv du serveur, cela dit il y a une commande tv_snapshotrate pour alléger la source tv mais cette commande capture les mouvements, tir etc.. par seconde en la réduisant la tv ne reflètera plus les même décalage par rapport au serveur qu'il soie tick 66, 100,... mais bon sur esl ont s'en fou de la qualité de la source après tout il y a leur programme anti cheat qui est la pour ca ;)

Furious13
03/07/2009, 15h12
Je suis passé en "tv_snapshotrate 33", la sourcetv sera donc enregistré en tick33. Merci du conseil je ne connaissais pas, et du coup je recherche plein d'infos sur cette "Me***" de sourceTv !

Malheureusement, ca ne règle pas le problème ! toujours autant de variation du à la sourcetv !

Tous ensemble on va y arriver ! c'est une certitude :)

bot_fr4gueur
03/07/2009, 15h17
bon ba moi toujours des problèmes :p
quand je lance manuellement idler.sh voila ce que sa me donne : ./idler.sh start
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type
nice: taskset: Aucun fichier ou répertoire de ce type


Et quand je lance le realtime.sh
sh realtime.sh
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 3: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 8: chrt: command not found
realtime.sh: line 13: chrt: command not found
nice: chrt: Aucun fichier ou répertoire de ce type
0: old priority 19, new priority 19
102: old priority 19, new priority 19
33: old priority 19, new priority 19


Des solutions ? je suis sous debian 4.0 avec un 8xl

Furious13
03/07/2009, 15h19
... :)

bot_fr4gueur j'ai eu le meme problème pour compiler le fichier idler.c, avant de me rendre compte de ma bêtise lol

En fait tu dois tout simplement ajouter un retour à la ligne (touche entrée) à la fin du fichier. (c'est un problème de compilation C++ ça ;) )

Donc a mon avis tu as sauté cette étape, et c'est pour cela que ca ne fonctionne pas.

SekYo
03/07/2009, 15h20
"realtime.sh: line 8: chrt: command not found" => Ca veut dire que chrt n'est pas installé sur ton système, installe le.

Essaye de apt-get un package appelé "schedutils", ou un nom de ce type.

Furious13
03/07/2009, 15h32
Sur le site de fragaholics il recommande tout ça :
* gcc (this is the compiler)
* make, gmake or gnu-make (the gnu-version of the utility make)
* ncurses and ncurses-dev (the develop package for the ncurses library)
* sudo
* chrt (package might be called schedutils)
* zlib1g-dev (need for Debian 5.0/lenny)
* patch (needs to be manually installed for some Debian users)

bot_fr4gueur
03/07/2009, 16h03
c'est bon ca fonctionne mais maintenant comment savoir combien on consomme réellement avec nos serveurs :confused:
Un petit graphique :p http://fpsmeter.fragaholics.de/p,view;7039.html

Furious13
03/07/2009, 16h23
ta source tv est activé sur ce serveur ?

bot_fr4gueur
03/07/2009, 16h53
ta source tv est activé sur ce serveur ?
Non j'ai cssmatch + un plugin pour les failles
Les drops viennent de la ^^

Furious13
03/07/2009, 16h54
okay met la source et dis bonjour à l'horreur lol !

Mon meilleur résultat avec la source : http://fpsmeter.fragaholics.de/p,view;7045.html

bot_fr4gueur
03/07/2009, 17h00
Je test ce soir je pense avec source tv ^^ on verra le résultat

safsaftokass
03/07/2009, 17h25
Salut à tous, j'ai essayer la méthode et à vide j'ai quelque chose de parfaitement stable sachant que j'ai également un 4XL avec débian lenny. Je voulais remercier madrippeur.

J'ai quand même une tite question, tous mes cores sont à 100% et si j'ai bien compris, c'est normal ?

Si j'ajoute un 2ème serveur cs 1.6, ça va pas disjoncter ?

cr0k72
03/07/2009, 17h45
okay met la source et dis bonjour à l'horreur lol !

Mon meilleur résultat avec la source : http://fpsmeter.fragaholics.de/p,view;7045.html

Tu verras avec 10-15 players même sans sourcetv je parie que ça va yoyoter :p
Le 2XL suit pas.

madrippeur
03/07/2009, 17h58
Salut à tous, j'ai essayer la méthode et à vide j'ai quelque chose de parfaitement stable sachant que j'ai également un 4XL avec débian lenny. Je voulais remercier madrippeur.

Cela me fait plaisir ;)

Rat-Thon
03/07/2009, 23h34
Merciiiiiiiiiiiiiiiii madrippeur :)

Ya pas photo, la SourceTV, c'est pas top :

Avec : http://fpsmeter.fragaholics.de/p,view;7094.html

Sans : http://fpsmeter.fragaholics.de/p,view;7111.html

Machine EG BestOF

Serveur testé avec Mani, Metamod, SourceMod, Eventscript.

madrippeur
04/07/2009, 08h09
Humm essayez cette commande, histoire de voir si pour vous cela améliore quelques petites choses s'il vous plait :
echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource

Ne vous inquiétez pas, ce n'est rien de grave, mais cela permet juste de sélectionner le timer. En cas de plantage ou autre ( rien dans mon cas ) rebootez le serveur et il reviendra en timer normal (tsc).

Dites moi si vous gagnez quelques fps s'il vous plait ;)

Rat-Thon
04/07/2009, 09h24
Moi perso, si je regarde les timers dispo :

games:/# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm jiffies
games:/#

J'ai pas le hpet :(

SekYo
04/07/2009, 10h06
Pas de HPET sur mon mini SP non plus, pourtant j'ai bidouillé tout pleins de trucs dans le kernel, rien à faire. Y doit pas etre dispo :/
Sur le 4XL il y est par contre.


Pour la STV, il faudrait deja essayer sans record. Si c'est mieux, ca veut dire que c'est l'enregistrement du fichier sur le disque qui bouffe les perfs et donc là y a peut être moyen de faire quelque chose avec un systeme de RAMDISK ou autre (ie écrire la demo en ram).

Bobel
04/07/2009, 10h21
SekYo même sans record ce n'est pas stable, je ne sais pas si ont pourra faire quelque chose de ce coté la car a peine lancé la source tv (sans record) je passe de 5% a 14% pour le process srcds, c'est que ca bouffe cette cochonnerie qui au final ont ne regarde jamais, bien souvent... :D

Furious13
04/07/2009, 10h44
hpet présent sur le 2xl.

voici le graphique avec le timer en hpet et la sourcetv présente mais sans enregistrment :

http://fpsmeter.fragaholics.de/p,view;7194.html

par contre il y a apparemment le moyen de diffuser la srcetv vers un autre serveur. Je vous mets en dessous toutes les variables existantes pour la soruceTv.
tv_allow_camera_man <0|1> // Auto director allows spectators to become camera man (def. 1)
tv_allow_static_shots <0|1> // Auto director uses fixed level cameras for shots (def. 1)
tv_autorecord <0|1> // Enregistre automatiquement toutes les parties, format: auto-AAAAMMJJ-hhmm-map.dem (def. 0)
tv_autoretry <0|1> // Relay proxies retry connection after network timeout (def. 0)
tv_chatgroupsize <n> // Set chat group size to n spectators. Only spectators in the same chat group can speak to each other. Chat groups are turned off with "tv_chatgroupsize 0" and everybody can speak to everybody. Setting chat groups helps reducing chatter noise and saves some bandwidth. (def. 0)
tv_chattimelimit <seconds> // Limits spectators to chat only every n seconds (def. 3)
tv_clients // Commande : Shows list of connected SourceTV clients.
tv_debug <0|1> // Affiche les messages additionnels de déboguage (def. 0)
tv_delay <seconds> // Décalage de la diffusion SourceTV en secondes, (Conseillé: 60 ou 90) (def. 30)
tv_delaymapchange <0|1> // Delays map change until broadcast is complete (def. 0)
tv_deltacache // Enable delta entity bit stream cache (def. 0)
tv_dispatchmode <0|1|2> // Mode de dispatch client: 0=jamais, 1=si approprié, 2=toujours (def. 1)
tv_enable <0|1> // Active SourceTV sur le serveur de jeu local, nécessite un changement de carte. (def. 1)
tv_maxclients <0..255> // Défini le nombre maximum de clients sur le serveur/relais SourceTV local. (def. 128)
tv_maxrate <bytes> // Défini la bande passante maximale autorisée à chaque client en bytes/seconde (0 = illimté - def. 5000)
tv_msg <text> // Commande : Envoi un HUD message à tout les spectators SourceTV.
tv_name <name> // Défini le nom du serveur SourceTV.
tv_nochat <0|1> // Désactiver le chat des autres spectators (client only).
tv_overridemaster<0|1> // Remplace l'IP maître du diffuseur par une IP locale.
tv_password <password> // Défini le mot de passe requis pour se connecter en tant que spectateur.
tv_port <port> // Host SourceTV port (def. 27020 - chez VeryGames def. 30000 + serverID)
tv_record <filename> // Commande : Démarre l'enregistrement d'une démo SourceTV.
tv_relay <0|1> // Commande : Connect to SourceTV server and relay broadcast.
tv_relaypassword <pass> // Défini le mot de passe requis pour se connecter en tant que proxy-relais.
tv_relayvoice <0|1> // Relay voice data: 0=off, 1=on (def. 1)
tv_retry // Commande : Reconnecte le relais SourceTV à la dernière adresse connue (relay only).
tv_snapshotrate <n> // Defines how many game snapshots per second are broadcasted/recorded by SourceTV (def. 16)
tv_status // Commande : Affiche les informations spécifiques à SourceTV.
tv_stop // Commande : Arrête la diffusion de la partie via SourceTV, le SourceTV se déconnecte.
tv_stoprecord // Commande : Arrête l'enregistrement de la démo SourceTV.
tv_timeout <seconds> // SourceTV connection timeout in seconds. (def. 30)
tv_title <text> // Sets a SourceTV broadcast title shown in the spectator GUI (def. 'SourceTV'>
tv_transmitall <0|1> // Si tv_transmitall est activé, les spectateurs peuvent changer de vue sur n'importe quels joueurs. Cette option consomme plus de bande passante.

Et ici ma config du fichier tv.cg :

tv_enable "1"
tv_delay "120"
tv_maxclients "0"
tv_name "Souriez vous êtes filmé :)"
tv_deltacache "0"
tv_maxclients "0"
tv_maxrate "5000"
tv_password "biatv"
tv_port "28015"
tv_snapshotrate "33"


je vais essayer de jouer avec snapshotrate et deltacache

Quel risque y'a t'il a modifier les timers ? Et lequel était d'origine ?

SekYo
04/07/2009, 11h30
Quel risque y'a t'il a modifier les timers ? Et lequel était d'origine ?
A partir du moment ou ils sont dispo dans /clock_available, aucun (sauf jiffies).

En théorie le "meilleur" timer est le TSC, c'est celui qui est le plus "rapide" à interroger. Après vient l'HPET, mais il n'est pas disponible sur toutes les cartes mères et est nettement plus "lent" que TSC. Pourquoi l'utiliser dans ce cas ? Parce que le TSC a parfois tendance à "sauter" et à renvoyer des valeurs farfelues (on parle de clock skew). Et ce notamment pour les processeurs AMD multicore. Or quand on sait que tout le calcul des fps (et surement les calculs de physiques dans le moteur) se basent sur le temps, on comprend vite qu'avoir des valeurs de temps imprécises est peu souhaitable.

Pour les proc AMD les topics US que j'ai pu voir conseillent tous d'utiliser HPET.

Furious13
04/07/2009, 11h43
Merci je suis repassé en TSC et aucun changement. Comme le 2xl est un P4.

Vous connaissez HQ servers ? il garantisse 1000 fps constant quelquesoit la charge. Auriez-vous un graphique d'un de leur serveurs avec sourcetv on ?

Je vais quand même tester cette méthode sur un 4xl, c'est peut etre le P4 qui a du mal avec la source.

Graphique sur le 4XL, un seul serveur lancé en taskset -c 0, 10 joueurs, srctv + record :
http://fpsmeter.fragaholics.de/p,view;7215.html

C'est tout aussi pourri lol !


Le serveur semble ce stabiliser avec le temps.

Rat-Thon
04/07/2009, 13h12
Sur les cartes DG35EC on peux activer le HPET dans le Bios.

Je vais faire une demande au support pour qu'il me l'active.

/me croise les doigts

Rat-Thon
04/07/2009, 20h12
Bon, niveau fps, c'est stable, par contre, des joueurs se plaignent qu'il y ai du choke.

le fait d'être en TSC pourrai t'il l'expliquer (avec cette tendance a envoyer des valeurs "farfelue") ?

Et cela serai t'il réglé en passant en HPET ?

cr0k72
04/07/2009, 22h16
En mettant le même sv_minrate que sur le tuto tout le monde avait 100 de choke sur le mien essai de mettre comme le maxrate.

sv_maxrate "1048576"
sv_minrate "1048576"

madrippeur
05/07/2009, 07h23
Arf étrange pour le choke, moi j'en ai aucun, même serveur plein. :s

Furious13
05/07/2009, 09h34
il faut augmenter les rates des joueurs pour diminuer le choke. Par augmente tu augmentes en même la demande en bande passante.

Personne n'a des graph d'un serveur hq avec sourcetv ?

Pour ceux qui possède un site, le renice de www-data en -19 au lieu de 19 est presque obligatoire, sinon le site est vraiment trop lent !

SekYo
05/07/2009, 10h03
Rat-Thon si t'as un retour de OVH pour activer le HPET sur ton serv ca m'interesse :)

Rat-Thon
05/07/2009, 10h09
vivi, je vous tient au courant :)

mais ça dépend peut être aussi de la machine que tu as.

Furious13
05/07/2009, 14h52
Bcp parle de kernel 1500 hz ? mais ou peut-on le trouver ? je ne vois que des 1000hz

SekYo
05/07/2009, 18h58
Il faut modifier a la main certains fichiers .h du kernel linux pour rajouter l'option 1500 (voir 2000) Hz.

Ceci étant, je doute que ce soit pertinent, ca va créer beaucoup de "ticks" inutiles. Surtout qu'avec les HR Timer, y a plus besoin des 1000Hz pour atteindre les 996 fps :)

Rat-Thon
06/07/2009, 07h58
Le support OVH, niquel :

04/07/09 - 14h25 : Demande faite au support pour le rajout du HPET dans le bios
05/07/09 - 21h23 : Réponse du support me demandant d'ouvrir un ticket incident
05/07/09 - 22h39 : Ouverture du ticket incident
05/07/09 - 23h18 : Prise en charge de mon ticket
06/07/09 - 07h03 : Message me notifiant que l'intervention sera effectuée d'ici 15 minutes
06/07/09 - 07h23 : Intervention sur le serveur

Bon, avec la SourceTV, on vois pas trop la différence :(

madrippeur
06/07/2009, 09h05
Sur un serveur sans sourcetv tu vois quelques améliorations ?
Quel serveur as tu exactement ?

madrippeur
06/07/2009, 09h06
Il faut modifier a la main certains fichiers .h du kernel linux pour rajouter l'option 1500 (voir 2000) Hz.

Ceci étant, je doute que ce soit pertinent, ca va créer beaucoup de "ticks" inutiles. Surtout qu'avec les HR Timer, y a plus besoin des 1000Hz pour atteindre les 996 fps :)

J'ai trouvé je ne sais plus ou, quelqu'un qui expliquait (en anglais) qu'un kernel 1500hz avec une limitation des fps à 1000 ne provoquait pas de calculs de ticks inutiles car les fps seraient limitées.
A voir donc. Par contre je recherche encore où j'ai lu ça :s

Furious13
06/07/2009, 09h20
Auj je vais tenter de mettre la télé sur un deuxième serveur, je vous tiens au jus !

J'aimerais bien voir un graph d'un serveur hq avec srcetv active :(

madrippeur
06/07/2009, 09h22
Même chose ;)
J'aimerai même voir leur graph sans sourcetv, ils garantissent les 1000fps, mais ça parait quand même chaud :)

Furious13
06/07/2009, 09h35
nous connaissons pas mal de team sur css, je vais voir si une team sympa de chez eux me permettrait de réaliser un graph. (histoire de nous rassurer ^^)

madrippeur
06/07/2009, 10h01
Haaaa !
Merci d'avance ;)

Juste pour infos, j'aimerai récupérer la somme du pourcentage cpu occuper par les commandes idler. Quelqu'un pourrai m'éclairer sur la chose ?
Il me faudrait un résultat simple qui me donne un chiffre (le pourcentage) que je puisse en faire ce que je veux après.
Cela va me permettre de jouer sur les priorités par rapport à l'utilisation du serveur.
Je vous remercie d'avance si vous avez quelques infos à me fournir :)

SekYo
06/07/2009, 10h06
Hum j'ai pas compris la question là.
Le idler c'est une boucle infinie et il bouffe toutes les ressources disponibles du CPU. Sauf si bien sur il est interrompu par un programme de plus haute priorité. Chez moi il est a 99% de CPU. Par contre j'avoue avoir du mal a expliquer pourquoi ca stabilise les FPS. Peut être que ca empêche le core de se mettre dans un "sleeping" state, mais normalement si tu désactives l'ACPI le CPU est pas censé se mettre en économie d'énergie.

Furious13
06/07/2009, 11h01
Ouai j'ai du mal aussi avec la logique du idler, meme si cela permet effectivement de stabiliser les FPS ... ca consomme pas mal qd meme !

Une autre solution serait bienvenue :)

madrippeur
06/07/2009, 12h03
Il n'y en a pas. Le but du idler est de stresser le cpu pour le forcer à travailler.

Furious13
06/07/2009, 14h28
oky ;)

Faire un relay ne sert à rien, tjs le meme graphique. De toute façon la source tourne sur le premier et doit en plus envoyer les infos vers un deuxième serveur.

Me langui d'avoir un retour sur les serveurs HQ ... je crois qu'on va vite déchanter ^^

SekYo
06/07/2009, 15h04
Faudrait voir si la STV est dans le meme thread que la boucle de jeu principale. Si c'est un thread différent, y aura peut être moyen de le dégager sur un autre core ( ceci étant, je doute que ce soit le cas, vu que ca poserai pas mal de problemes de shared memory )

Furious13
06/07/2009, 16h41
même thread :(

Furious13
07/07/2009, 15h06
Graphique de http://www.redline-hosting.net/ avec sourcetv on et 1 joueur connecté :

http://fpsmeter.fragaholics.de/p,view;7693.html

vansfoxy
07/07/2009, 15h53
C'est moche :D

Vive la source TV :p

cr0k72
07/07/2009, 16h41
Je remet ici le graph que apo avait trouvé d'un dédig.... http://fpsmeter.org/p,view;4217.html
zombie tick 33 je sais pas si y'avait la source tv.

Furious13
07/07/2009, 18h15
On peut ce baser sur un serveur avec mod en tick 33. Surtout qu'on ne sait pas comment il est config, combien de slots sur le même coeur etc ...

Mais fpsmax 1000 et tick 33 ? quel intérêt ?

Mais merci ;)

Rat-Thon
09/07/2009, 19h28
Résultat sur du HQServers avec sourcetv et 5/6 joueurs :

http://fpsmeter.org/p,view;8065.html

c'est pas si mal, mais maintenant, faut savoir comment ils font ...

(J'attend un graph Verygames...)

madrippeur
09/07/2009, 19h42
Effectivement pas mal !

Bobel
09/07/2009, 19h49
J'ai un graph d'un dédi game (verygames) en court si tu veut... c'est pas joli joli... on voie le professionnalisme... :D

http://fpsmeter.fragaholics.de/p,view;8084.html

Début avec source tv après sans

Rat-Thon
09/07/2009, 20h01
Je sais pas si ça peux expliquer : http://www.hqservers.com/articles.php#repartition_charge

Furious13
09/07/2009, 21h10
Ils sont marrant chez HQ :
En résumé, vous payez énormément de puissance CPU même lorsque vous n'utlisez pas votre serveur parcequ'elle vous ait réservé. C'est le modèle utilisait par quasiement (si ce n'est tous) les hébergeurs de serveur de jeux. Effectivement, c'est beaucoup plus simple de vous vendre de la puissance CPU plutôt que de travailler à vous fournir le service qui convient le mieux.

Prix d'un serveur 12 slots privé : 35€/mois

Il nous faudrait un graph de chez eux avec srctv, et un graph de chez dedigame pro pour comparer.

Rat-Thon
09/07/2009, 21h13
Résultat sur du HQServers avec sourcetv et 5/6 joueurs :

http://fpsmeter.org/p,view;8065.html

c'est pas si mal, mais maintenant, faut savoir comment ils font ...

(J'attend un graph Verygames...)

c'est avec sourcetv (j'était présent)

Furious13
09/07/2009, 21h17
hmmm on a du boulot alors encore ^^

Bobel
09/07/2009, 21h28
(Le dedi game pro c'est un dedi games moins chère limité en slot il n'a rien d'autre de spécial.)

Furious13
09/07/2009, 23h00
ah non le dedigame pro c'est un server war (16slots) sur un core. et c'est plus cher qu'un dedigame 1 core, il est aussi peut-être mieux config ! Pour ça que je demande un graph ;)

http://www.verygames.net/fr/product/8/Dedigames/Dedigames_Pro

http://www.verygames.net/fr/config/42/packServer

SekYo
10/07/2009, 09h16
Hum interessant le HQ. Ca voudrait dire que les fps drops causés par la TV sont pas irréversibles. Reste à savoir comment ils ont résolus le problème. Une idée de si la TV recordait ou pas ?

Furious13
10/07/2009, 09h53
et le tv_delay ?

Rat-Thon
10/07/2009, 13h17
la source ne recordait pas. pour le tv_delay, je vais me renseigner et je vous dit avant ce soir (normalement)

Bobel
10/07/2009, 14h22
ah non le dedigame pro c'est un server war (16slots) sur un core. et c'est plus cher qu'un dedigame 1 core, il est aussi peut-être mieux config ! Pour ça que je demande un graph ;)

http://www.verygames.net/fr/product/8/Dedigames/Dedigames_Pro

http://www.verygames.net/fr/config/42/packServer

J'espère que c'est pas toi qui gère ta compta furious13 sinon ca sent la faillite... :p

Avec la source tv il est possible de n'avoir aucun pique donc, voila encore une chose a trouvé... :D


ps: SekYo y aurait il moyen de prendre contact avec toi pour s'échanger quelque idée au niveau du real time et des threads ? si oui voila mon steam amis (http://steamcommunity.com/id/Oncle-BOB)

madrippeur
10/07/2009, 15h20
Bon moi de mon côté j'ai beau bricoler des milliards de trucs, je n'arrive pas à faire mieux que ça avec sur un 4xl (4serveurs 20 slots lancés et au total 65 slots occupés) :

http://www.battleroyale.fr/posting.php?mode=post&f=21

C'est énervant !

SekYo
10/07/2009, 15h57
@Bobel : Je t'add quand je rentre du taf.

Ca m'énerve, j'ai fais un coup de strace sur srcds, avec ou sans Source TV et y a quasi les même chiffres. Sur 5 minutes environ :
Sans TV :
System call usage summary for 32 bit mode:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
51.42 14.392053 56 256894 nanosleep
47.80 13.378488 91 146745 6122 futex
0.75 0.210000 70000 3 1 restart_syscall
0.01 0.003754 0 1596438 gettimeofday
0.01 0.001639 0 287822 287822 accept
0.00 0.000926 0 263030 select
0.00 0.000074 0 138677 clock_gettime
0.00 0.000038 0 31230 30937 recvfrom
0.00 0.000000 0 6441 time
0.00 0.000000 0 68 times
0.00 0.000000 0 11 rt_sigaction
0.00 0.000000 0 22 rt_sigprocmask
0.00 0.000000 0 614 stat64
0.00 0.000000 0 318 sendto
------ ----------- ----------- --------- --------- ----------------
100.00 27.986972 2728313 324882 total

Et avec TV :
System call usage summary for 32 bit mode:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
48.68 15.258736 106 143971 6003 futex
48.26 15.125093 61 246109 nanosleep
3.03 0.950000 316667 3 1 restart_syscall
0.01 0.004155 0 1535426 gettimeofday
0.01 0.001976 0 276982 276473 recvfrom
0.01 0.001623 0 276473 276473 accept
0.00 0.000984 0 252136 select
0.00 0.000130 0 134531 clock_gettime
0.00 0.000009 0 6322 time
0.00 0.000000 0 66 times
0.00 0.000000 0 10 rt_sigaction
0.00 0.000000 0 20 rt_sigprocmask
0.00 0.000000 0 602 stat64
0.00 0.000000 0 535 sendto
------ ----------- ----------- --------- --------- ----------------
100.00 31.342706 2873186 558950 total

Bref pas de différence notable. Dommage, si ca avait été un systèm call un peu plus long qui causait les piques de la TV, on aurait sans doutes pu faire qqch en le bidouillant un peu, mais là.

Ce qui m'intrigue d'autant plus pour HQ en fait, je vois pas comment ils ont réussi :D

Furious13
10/07/2009, 16h21
euh t'es sur que c'est moi qui sait pas compter bobel ?

Dedigame pro : 1 serveur 16 slots max : 39.99 €

Dedigame 1 core : serveurs illimités (40 slots max recommandés) : 47.99 €

Rapporte ça pour un slot, et tu verras comment la vraie comptabilité ce fait ;) ^^

une question, que pensez vous de ubuntu serveur pour un serveur de jeu ? il est préférable de rester sur debian 5 ?

Rat-Thon
10/07/2009, 17h28
et le tv_delay ?

120

SekYo
10/07/2009, 17h31
une question, que pensez vous de ubuntu serveur pour un serveur de jeu ? il est préférable de rester sur debian 5 ?
Vu que a la base Ubuntu = Debian utilisable ( :D ), pour un pur serveur de jeu, ou y a pas besoin de 50000 trucs t'es aussi bien sous Debian :)
J'irai plus loin, Gentoo FTW ! :D

Bobel
10/07/2009, 17h56
Tu as raison Furious13 vu sous cette angle ;) mais ca ne va pas te revenir moins chère de prendre un dedigames 1 core pour mettre un serveurs war qui au final auras la même puissance qu'un pro. Enfin soit nous ont s'en fou pour le prix d'un core chez verygames ont en a 4 chez ovh :D ;)

SekYo
10/07/2009, 18h17
Topic interessant. http://forums.srcds.com/viewtopic/9989

Malheureusement tous les liens pour DL cette fameuse librairie sont down, je crains que le type n'ait créé un GSP et utilise cette lib en exclu ;(

Furious13
10/07/2009, 19h41
ca renvoi ici, et c'est assez impressionnant !

http://padgaming.com/faq

snapeuh
18/07/2009, 03h32
Pour les possesseur d'AMD rajoutez ces lignes au code de madrippeur :

PIDS=`pidof srcds_amd`
for p in $PIDS; do
chrt -f -p 98 $p
done

Voilou, chez moi ça à l'air de marcher pas mal, avec un RPS 4 (un Phenom 3X 2.6Ghz), un seul serveur 11 places CSS sur un seul coeur, je tourne à environ 950FPS environ avec de légères baisses (dues à la SourceTV je pense d'après les commentaires que j'ai pu voir, même si elle record pas) et je boot sur le netboot : 2.6.29.3-rt-beta

http://fpsmeter.fragaholics.de/p,view;9450.html

Les baisses au milieu sont apparues quand j'ai remplit le serveur de bots. :D

Autres précision il n'y a pas d'apache sur mon serveur, ni rien d'autre. Juste le serveur CSS.

D'ailleurs est-ce que quelqu'un peut m'indiquer si toutes les manipulations demandées par madrippeur sont bien faites :

http://img119.imageshack.us/img119/5039/cmdtop.jpg (http://img119.imageshack.us/i/cmdtop.jpg/)

Mon fichier realtime modifié :

PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done

PIDS=`pidof srcds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof srcds_amd`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof srcds_i486`
for p in $PIDS; do
chrt -f -p 98 $p
done

PIDS=`pidof hlds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done


PIDS=`pidof SCREEN`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done

nice -n 19 renice 19 -u root

nice -n 19 renice -20 -u jeux

Merci d'avance!

EDIT :

Le même graphique, même serveur, mais sans la SourceTV :

http://fpsmeter.fragaholics.de/p,view;9458.html

Encore une fois, avec le source TV et tickrate à 110 au lieu de 100 :

http://fpsmeter.fragaholics.de/p,view;9461.html

madrippeur
18/07/2009, 07h13
Coucou !
Je viens de modifier mon premier poste pour intégrer le srcds_amd, merci à toi, je l'avais complètement oublié ^^.

A priori toutes les manipulations, tu les a effectuées correctement, on voit le real time, le processus changés de priorité puis les idlers.
Apparemment tout est bon pour toi !

snapeuh
18/07/2009, 12h44
D'accord je te remercie madrippeur!

J'ai une question, sur le site de fragaholics, sur leur wiki ils mettent qu'il faut démarer le idler sur un seul core quand on a un processeur multi-coeur et que c'est apparemment pas obligé de le mettre sur tous les coeurs, alors pourquoi avoir choisi de le mettre sur tous les coeurs ?

Bobel
18/07/2009, 13h47
Non tu trompes dans le tuto il dit de mettre le idler sur tous les core il fait référence a un Q6600

Personnellement je suis pas fan de cette technique avec idler il doit avoir une autre solution... car cela fait ni plus ni moins consommer le cpu a 100% donc consommation électrique élevé qui dit chaleur max constante je ne suis pas sure que soie très bon pour un processeur...

Pour preuve j'utilise un vieux P4 northwood (réputer pour leur chaleur élever) comme machine de teste, faudrait entendre le bruit du ventillo quand les idlers sont actif...


Enfin ce n'est que mon avis, libre a vous de joué avec le feu :D

snapeuh
18/07/2009, 14h44
Je crois que je comprend assez bien l'anglais pour dire que :

Running only one idler even on systems with 2 or more cores should be enough (also if you run multiple game servers).

Ca veut bien dire que de faire tourner le idler.c sur un seul des coeurs des processeurs multi-coeur devrait être suffisant.

Ainsi que :

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

Ca dépend bien de la configuration de chacun, il faudrait peut-être le signaler dans le premier message du topic.

snapeuh
19/07/2009, 16h42
J'ai eu une conversation avec DiSTANT sur IRC et en gros :

<DiSTANT> I also have a new 1000FPS lib ^^
<DiSTANT> trying to get it ready for beta testers

<DiSTANT> well the lib will be free to beta testers, but after awhile... I might charge a small fee
<snapeuh> In how many time will you release it ?
<DiSTANT> not sure. Should be soon... by the end of the week for sure

Franchement, ça dépend un peu de ce qu'il appelle "small fee" mais si c'est 10€, je prends tout de suite!

Furious13
21/07/2009, 17h39
Comment enlever le idler ? Merci

snapeuh
21/07/2009, 18h04
Si tu as suivis le tuto : /etc/init.d/idler.sh stop ?

safsaftokass
22/07/2009, 09h16
Si tu as suivis le tuto : /etc/init.d/idler.sh stop ?

Oui, enfin moi c'est ce que j'ai fait et modifié le idler.sh pour n'avoir l'idler que sur 2 cores (4XL) et éviter un maximum de trop surchargé le CPU.

Furious13
22/07/2009, 10h08
Si tu as suivis le tuto : /etc/init.d/idler.sh stop ?

Merci ! Mais c'est écrit ou ça dans le tuto ?

safsaftokass
22/07/2009, 10h15
C'est pas écrit en clair dans le tuto mais plutôt dans les fichiers idler.sh du tuto. Regardes le contenu de ce fichier et tu verra en gros y'a 2 cas (case), un avec start et l'autre avec stop.

Donc pour stopper l'idler.sh tu tappes :

/etc/init.d/idler.sh stop

Et pour relancer :

/etc/init.d/idler.sh start

Furious13
22/07/2009, 17h27
ah d'accord je comprend mieux ! merci !

janpepu
25/07/2009, 22h57
http://fpsmeter.org/p,view;10999.html

source tv on - no record - no idler

snapeuh
25/07/2009, 23h22
Noooonnn!!

http://fpsmeter.org/p,view;10955.html

:D

Furious13
26/07/2009, 14h07
janpepu on peut avoir plus d'info pour savoir comment tu as fait ?

Sur qu'elle machine est tu, et ce que tu utilises ainsi que les modifications pour avoir un si bon résultat avec la sourcetv ?

snapeuh tu as sourcetv on ?

snapeuh
26/07/2009, 14h46
oui j'ai la sourcetv on :)

phenom x3 2.6ghz, gentoo, 1000hz, avec idler et chrt.

4 fun : http://fpsmeter.fragaholics.de/p,view;11090.html

Bobel
27/07/2009, 10h04
Et quel Kernel ovh ? ou custum avec quoi comme option ? merci de faire partagé :)

Furious13
27/07/2009, 10h24
combien de serveurs tournent sur la machine ?

Peut-on avoir un graphique en "live" pour vérifier la présence de la sourcetv, ce n'est pas que je ne veux pas te croire, mais chaque fois que j'ai demandé ça, comme par enchantement le graphique n'était plus du tout le même. :p :D

Je vois pas l'intérêt d'afficher un graphique, sans partager les infos ... :eek:

janpepu
27/07/2009, 10h35
On a essayé avec la lib de distant, a part ameliorer les graph, je ne resent pas de diff in game.


La lib a bien un tracking et donc pour le moment la distribuer ne sert a rien.

Par contre un bout de code recuperé sur le forum de monk.

osef.c
#include<unistd.h>
#include<sys/time.h>
#include <time.h>

#define BUSY_WAIT 3000

/* We use clock_gettime because it's better than gettimeofday */

unsigned long long int fetch_clock()
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
return (unsigned long long int)ts.tv_nsec + 1000000*ts.tv_sec;
}

int high_pres_usleep_untill(unsigned long long int end)
{
unsigned long long int busywait, start;
int sleep, delay;

start = fetch_clock();
delay = end - start;

sleep = (delay / BUSY_WAIT) - 1;
if(sleep > 0)
if(usleep(sleep*BUSY_WAIT))
return -1;
while(fetch_clock() < end)
;

return 0;
}

makefile
CC = gcc
CFLAGS = -O2 -Wall -shared
LIBS = -lrt
VERSION = 1.0.0

32bit: osef.c
$(CC) $(CFLAGS) -o osef-$(VERSION).so osef.c $(LIBS) -w

64bit: osef.c
$(CC) $(CFLAGS) -m32 -o osef-$(VERSION).so osef.c $(LIBS) -w

clean:
rm -f *~ osef-$(VERSION) *.so *.o


rendre osef-1.0.0.so executable

dans le srcds_run vers la ligne 362
run() {
# Runs the steam update and server
# Loops if RESTART is set
# Debugs if server failure is detected
# Note: if RESTART is not set then
# 1. DEBUG is set then the server is NOT exec'd
# 2. DEBUG is not set the the server is exec'd

if test -n "$RESTART" ; then
echo "Server will auto-restart if there is a crash."

#loop forever
while true
do
# Update if needed
update

# Run the server
ajouter cette ligne LD_PRELOAD=./osef-1.0.0.so $HL_CMD

ajouter un # devant #$HL_CMD
retval=$?

Furious13
27/07/2009, 10h47
cette modification n'est à faire uniquement pour la sourcetv ?
Par contre il faut enlever l'autoupdate en ligne de commande ?

Merci du partage ;)

Ton graph c'est avec la lib de distant ? ou avec la modif du blog de monk ?

janpepu
27/07/2009, 10h54
j'ai la lib de distant.

2 bot+sourcetv -no idler -chrt - rt +1000 hz (dediboite xl 2 ghz)

88.191.224.182:27035

http://fpsmeter.org/p,view;11216.html


tu ne change pas ta ligne de lancement, les modifs sont dans le lanceur.

snapeuh
27/07/2009, 12h17
Janpepu et moi-même on traine depuis quelque jours sur le channel de Distant, on partage des trucs pour voir quelle est la meilleure configuration.

Alors, première chose, évitez les AMD si vous voulez utiliser sa lib. Avec un AMD et sans idler, ça donne n'importe quoi (alors que c'est supposer faire éviter les idlers sa lib) : variations entre 600 et + de 1000 FPS (surement vers les 1200), mais pas des petits trucs, vraiment de gros pics tout le temps, à aucun moment je n'ai une ligne droite.

Après la lib dispose, comme l'a précisé Janpepu, d'un système de tracking, on a donc décidé de ne pas la redistribuer. Sachez que sur un système AMD la lib est tout simplement inutilisable. Essayez la lib récupérée sur le site de Monk vous aurez peut-être des surprises.

Aussi avec la lib on ne sent pas la différence in-game, ça ne sert qu'à rendre les graphiques plus beaux.

SekYo
27/07/2009, 13h46
Cette lib pose une question de fond quand meme.

Prend la version donnée sur le site de Monk (et le principe de base a pas du beaucoup changer), bin le truc c'est qu'iil change la valeur du sleep. En gros si le programme va demander un usleep(10), sa lib va le réveiller au bout de 8us par exemple. En soit c'est pas drama... Sauf si en interne le moteur source utilise cette valeur (10ms) pour les calculs (de trajectoire par exemple).

snapeuh
27/07/2009, 13h59
Je crois (et je suis même presque sur) que ces libs fonctionnent comme une injection de DLL. En gros elles remplacent des fonctions qui existent déjà dans le moteur source par de nouvelles censées être mieux optimisées. Donc la fonction qui était là avant a laisser sa place à la fonction de la lib.

Bobel
27/07/2009, 14h25
snapeuh comme tu dit in-game tu voies pas trop différence comparer sans lib mais peut être il ne faut pas s'attendre a ce que "ca touche mieux", le but d'avoir 1000fps constant permet peut être a tout moment que les donnés soie correctement calculer.

Prenons le cas de l'awp par exemple pourquoi esse que des fois quand ont vise le torse le mec meurt pas alors que normalement il doit mourir en un coup avec tous les dommages que fait l'awp, pourquoi a certain moment quand on vise la tête on voie le sang sur le casque mais le mec n'a pas perdu de dommage vie/kvlard. Peut être esse a cause de cette fluctuation des fps...

snapeuh
27/07/2009, 14h26
Bobel pour être honnete avec toi j'ai juste l'impression que la lib ne nous vend qu'une ligne droite sur un graphique. De plus on a testé avec Janpepu sur un public avec 20 bots, source TV, tick 100, bah on a toujours 1000FPS (sur un C2D 2.0Ghz). Bizarre non ?

Furious13
27/07/2009, 14h28
Question bête, ou peut-on récupérer la lib du site de monk ?

je suis sur ce site : http://people.summit-servers.com/monk/

snapeuh
27/07/2009, 14h31
Janpepu t'as filer le code source de la lib de monk et le make file, il suffit de compiler sur ton dédié.

Suit ses indications ici : http://forum.ovh.com/showpost.php?p=296284&postcount=118

Furious13
27/07/2009, 14h32
ah pardon, je pensais qu'il parlait d'autre chose ;)

Merci pour le lien.

SekYo
27/07/2009, 14h52
Je crois (et je suis même presque sur) que ces libs fonctionnent comme une injection de DLL. En gros elles remplacent des fonctions qui existent déjà dans le moteur source par de nouvelles censées être mieux optimisées. Donc la fonction qui était là avant a laisser sa place à la fonction de la lib.
C'est tout à fait ça. Sauf que si tu regardes le code de la lib publiée sur le blog de Monk, tu t'aperçois qu'elle modifie par exemple le code de usleep. Or usleep est une fonction "censée" endormir le process pendant X us, si a la place ton code le réveille a Y us... C'est dur de prévoir les résultats.


Sinon +1 pour le coup de la "ligne droite". D'ailleurs si on lit le code source de la lib publique c'est tout a fait ça, le type "diminue" le temps de sleep pour être sur qu'il se réveille pile au bon moment (ce que naturellement il ne fait pas, parce qu'en pratique il dort pas 10ms exactement, mais parfois 11 ou 12. Ce qui provoque les 990fps qu'on peut voir souvent. La lib supprime ces 11 ou 12 en gros.


@Bobel : Pour le sang sur le model sans les dommages ca s'explique facilement par la prediction client : chez toi tu l'as touché, donc ton PC affiche le sang, mais en fait pour le serveur tu ne l'a pas touché et comme c'est lui décide => Pas de dommages. Dans ce cas pourquoi ne pas attendre que le serveur confirme l'impact ? Parce que ca ferait pas naturel, y aurait trop de délai entre l'impact chez soi et l'apparition du sang.

safsaftokass
27/07/2009, 17h00
J'aimerais piger un tit truc :

On est tous là à chercher à avoir 1000 fps avec une courbe aussi plate que carla bruni (:D). Si j'ai bien compris, la boucle du tick est encapsulée dans la boucle des fps, donc ceux-ci ne doivent pas la limiter, mais, pour un serveur css, dont le tick n'ira jamais plus loin que 100 (en gros), ça sert à quoi d'avoir 1000 fps réguliers ?

Et justement, pour ceux qui ont des serveurs css, j'aimerai vous demander quelles sont vos configs (server.cfg et le nombre de slots) car je suis pas sûr que le mien touche vraiment bien (pour infos j'ai utilisé le tuto ici présent et j'ai un 4XL debian).

En vous remerciant pour les lumières que vous m'apportez.

SekYo
27/07/2009, 17h19
On est tous là à chercher à avoir 1000 fps avec une courbe aussi plate que carla bruni (:D). Si j'ai bien compris, la boucle du tick est encapsulée dans la boucle des fps, donc ceux-ci ne doivent pas la limiter, mais, pour un serveur css, dont le tick n'ira jamais plus loin que 100 (en gros), ça sert à quoi d'avoir 1000 fps réguliers ?
Personne sait trop, c'est bien le problème :D Seul truc, pendant longtemps on a justement pensé (et c'est notamment dans un article sur le wiki valve) que les boucles étant l'une dans l'autre, entre deux tick ils se ne passait RIEN. Donc qu'a priori c'est pas utile d'avoir plus de 100fps. Sauf qu'en pratique, fps_max 100, puis fps_max 1000, le ping descend. Sans rien changer ou bouger, juste les fps serveurs. Donc il se passe bien au moins un truc entre deux tick, vu que ca joue sur le ping du tableau des scores. Après cette baisse est très faible, donc ca doit pas jouer beaucoup. Mais s'il se passe un truc, il peut tout a fait se passer d'autres trucs :D

Mais comme il n'existe pas (encore ?) d'outils pour mesurer la "touchabilité" d'un serv... Y a fort a parier que cette question demeure sans réponse certaine. Sauf si valve ouvrait son code source, mais y a peu de chances.

snapeuh
27/07/2009, 17h56
Vu sur le site de Monk :

1.) SourceTV drops FPS.
SourceTV runs in the same thread/context as the engine does, so don’t be suprised if the engine has to yield() for TV to work. This is normal behavior and cannot be fixed at all (And that library program or whatever does not fix it. It just makes the engine appear to be fixed, when in reality it does absolutely nothing but make a number stay higher. Don’t lie to the users, tell them the truth.)

Il travaille avec pas mal de GSP et améliore leur kernel etc, donc il sait de quoi il parle. Ce qui confirme donc que les différentes librairies qui donnent 1000 FPS ultra stable sont juste un artifice pour cacher les pics.

Bobel
27/07/2009, 18h45
Il dit aussi qu'il n'est pas pour le kernel real time, personnellement je trouve qu'il y a comme même une différence appréciable au niveau de la réactivité (je met mon jeu css aussi en haut priorité) et vous trouvez bien ou pas le kernel real time ?

snapeuh
27/07/2009, 19h20
Personnellement j'ai toujours fait mes graphiques avec un kernel 1000hz non-realtime.

neospeed2
27/07/2009, 20h13
Pour le problème de la SourceTV qui fait des siennes pour les FPS. Vous pouvez essayer tv_maxclients 10 pour évité un présence infini de personne sur votre sourceTV. Cela évite les chutes de FPS. (Si biensur des personnes sont sur la SourceTV).

Je suis d'accord avec Bobel avec le kernel RT ont voit vraiment la différence in-game.

Et sinon pour les personnes qui ont des chutes de FPS. N'activer pas la SourceTV (non obligatoire en ESL si les 2 equipes sont d'accord) Mais cela nécessite le record in-eyes

SekYo
28/07/2009, 08h54
Il dit aussi qu'il n'est pas pour le kernel real time, personnellement je trouve qu'il y a comme même une différence appréciable au niveau de la réactivité (je met mon jeu css aussi en haut priorité) et vous trouvez bien ou pas le kernel real time ?
En fait ca dépend ses interventions. Dans certains il dit qu'il utilise un RT, dans d'autres non. Je pense que ca doit dépendre si c'est SRCDS ou HLDS et que ca doit dépendre de l'époque ou il faisait ses tests. le patch RT a évolué rapidement, il n'a plus rien a voir avec ce qui était y a 2 ou 3 ans ou il était peut etre moins stable par exemple.

Furious13
28/07/2009, 09h31
je suis à tv_maxclients 0 et les chutes de fps font peur aussi ... avec ou sans record d'ailleurs !

De toute façon, il faudrait réussir à faire tourner la sourcetv sur un autre processus, et la ya du boulot :eek: :eek:
Sur le site de monk, à un moment il dit justement qu'il regrette le temps de la hltv, car c'est un programme à part.
On entend aussi bcp qu'il ne vaut mieux pas utiliser les taskset et cpuset, mais laisser linux gérer.
Et comme le dit sekyo, le realtime a pour l'instant eu le meilleur effet sur ma machine. J'ai par contre enlever le idler, a force que ça chauffe ca provoquait des lags niveau serveur ...

Mais si les lib ne sont que des caches misères, pourquoi les GSP les achètent au prix fort? Simple outil marketing ?
Pourquoi une société comme verygames se soucient elle peu des graphiques ? Même sur leur offre dedigame pro ?
Surtout que pour eux, développer une lib "cache misère", ca doit pas être très compliqué !

Quand on joue sur un HQ, on voit bien la différence niveau "touchabilité" quand même ... pourtant le graphique montre aussi des pics ! La "touchabilité" viendrait d'un autre phénomène ?
Dans un autre post (sans réponse), je vous demande si mettre la valeur user_hz à 120 au lieu de 100, pourrait avoir un impact sur un tick 120 ?

De toute façon il y a tellement de paramètres entre le client et le serveur, que chaque personne aura un avis différent sur un même serveur. :o :(

SekYo
28/07/2009, 09h50
Quand on joue sur un HQ, on voit bien la différence niveau "touchabilité" quand même ... pourtant le graphique montre aussi des pics ! La "touchabilité" viendrait d'un autre phénomène ?
Dans un autre post (sans réponse), je vous demande si mettre la valeur user_hz à 120 au lieu de 100, pourrait avoir un impact sur un tick 120 ?
C'est ce que je dit un peu partout : comme on a aucun moyen de mesurer la "touchabilité" d'un serv, on a aucun moyen de savoir dans quelle mesure les fps serv jouent sur cette touchabilité.

Pour les HZ, a partir du moment ou vous avez les HRTimers activés ca ne change rien. J'ai un HZ à 100Hz, pourtant mon serv tient bien les 990fps (1000 avec la lib), ca prouve bien que la précision du usleep ne dépend plus des HZ :)

Bobel
28/07/2009, 11h38
Truck qui na pas de rapport avec css mais je me suis réinstaller un serveur battlefield 2142 dernièrement (nostalgique :p ) et dans la notice pour configurer le serveur ou il est marquer les configuration recommander avec de vieux cpu one core (oui la notice date...) ils disent de Only run one instance of BF2142 per physical CPU with Hyperthreading disabled, il ne dise pas pourquoi... mais ont peut penser que c'est justement pour éviter le balancement du thread bf 2142

Je pense que SekYo sera d'accord avec moi si on veut avoir le moins de chute de fps possible sans la lib il faut isoler le thread scrds avec cpuset pour qu'aucun autre thread vienne ce mettre dans le core avec le scrds

SekYo
28/07/2009, 16h40
Je pense que SekYo sera d'accord avec moi si on veut avoir le moins de chute de fps possible sans la lib il faut isoler le thread scrds avec cpuset pour qu'aucun autre thread vienne ce mettre dans le core avec le scrds
Normalement avec les priorité RT y a peu de chances qu'un process 'classique' vienne préempter ton SRCDS. Par contre c'est sur qu'il faut éviter le "core switching", c'est plutôt couteux, donc c'est bien au moins de bloquer le process sur un seul core. D'ailleurs ca me fait penser que j'ai pas tester la diff entre CPUSET + RT et Taskset + RT. Normalement un taskset + RT doit être aussi efficace qu'un CPUSET + RT vu que mettre SRCDS en RT va empeche un process de lui piquer du CPU.

neospeed2
30/07/2009, 17h33
Si ça peut aider : Taskset (http://forum.ovh.com/showthread.php?t=49641)

Furious13
03/08/2009, 17h13
Salut,

j'essaye de compiler la lib de monk, mais j'ai ce message d'erreur qui apparait :

make: *** Pas de règle pour fabriquer la cible « oue.c », nécessaire pour « 32bit ». Arrêt.

je suis sous debian lenny 64bits

janpepu
04/08/2009, 02h07
makefile

CC = gcc
CFLAGS = -O2 -Wall -shared
LIBS = -lrt
VERSION = 1.0.0

32bit: osef.c
$(CC) $(CFLAGS) -o osef-$(VERSION).so osef.c $(LIBS) -w

64bit: osef.c
$(CC) $(CFLAGS) -m32 -o osef-$(VERSION).so osef.c $(LIBS) -w

clean:
rm -f *~ osef-$(VERSION) *.so *.o

Furious13
04/08/2009, 10h20
... osef.c au lieu de oue.c ...

désolé du dérangement, je fatigue ces temps-ci ...

Furious13
04/08/2009, 16h05
j'ai changé le fichier, mais tjs une erreur, je fais la compilation dans le dossier /usr/

je créé le fichier osef.c
je créé ensuite le fichier makefile

puis je lance la compilation

root@ks366899:/usr# make
gcc -O2 -Wall -shared -o osef-1.0.0.so osef.c -lrt -w
/usr/bin/ld: /tmp/cc2jULbB.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/tmp/cc2jULbB.o: ne peut lire les symboles: Mauvaise valeur
collect2: ld returned 1 exit status
make: *** [32bit] Erreur 1


j'ai essayé donc avec fPic

root@ks366899:/usr# gcc -c -fPIC osef.c

cela me créé un fichier osef.o mais il ne semble pas fonctionner :confused:

Ne trouvant rien sur google de concluant, je me permet de poster ici.

Merci par avance !

Furious13
06/08/2009, 10h08
personne pour m'aider ? :(

neospeed2
06/08/2009, 13h55
Désolé mais la compilation c'est pas mon fort. Je te conseil d'aller dans la section Serveur Dédiés (http://forum.ovh.com/forumdisplay.php?f=3) tu risque de trouvé plus de réponse car ici c'est peut fréquenté. Bonne chance

Furious13
06/08/2009, 15h24
Je pensais que janpepu aurait continué son aide, mais en tout cas merci du tuyau ;)

demande postée ici : http://forum.ovh.com/showthread.php?p=298603#post298603

madrippeur
12/08/2009, 12h50
En tout cas avec le lib moi je ne vois aucune différence :s

firfanatic07
03/09/2009, 10h19
bonjour a tous
j aurai besoin de savoir si mes serveurs sont bien regler

ma ligne fibre orange 100/100
config
core2duo E6850 oc a 3,6ghz
P45 Ds3p fsb a 400mhz * 9coef
4go de ramm crucru
distrib
debian 5 version serveur 32bits
kernel 2.6.26 daryl low latency (car le 29 en RT et 26 en RT -60fps)
pas de taskset pas de idler tout d origine

install
5 serveur
2war 14slot avec juste mani admin pluguin ZBlock 4,4 source tv on mais no record
1 one 32 slot officiel mani + eventscript
1 fun 32 slot full pluguin slowmotion ect....
1 gungame 32 slot deathmatch

lors des test il n y a personne sur les serveurs la source On mais pas record et surtout pas regler avec le tick33
ils sont lancer avec -tickrate 200 -pingboost 3 sur Dust2 pour le war II et sur AG_texture_2 pour les 2 autres.sur le serveur fun j ai lancer 8bots
donc si on recap 3 serveur de lancé avec 8bots 1x14 et 2x32slots
voici le war II
http://fpsmeter.org/p,view;16550.html
voici le one
http://fpsmeter.org/p,view;16549.html

sont ils bien reglé ??

je vais reposte le screen serveur fun ou il y avait 8bots

firfanatic07
23/10/2009, 13h44
re tout le monde

je reviens

alors toujours pareil avec tv on mais no record
http://fpsmeter.org/p,view;25296.html (tick 200 mani metamod ZB4.4 et Tvsource)

http://fpsmeter.org/p,view;25297.html (ZB 4.4 only )

realtime.sh on idler.sh on tacset -c on

voila prochain test ce soir en 5vs5 tv on et record

firfanatic07
06/11/2009, 10h43
bonjour a tous

j ai louer un serv Hq pour voir la prestation et je dois dire que je ne suis perplex dans le sens ou le serv est avec le zb 4;4 css match la tv off car je peu pas l active a distance n aillant pas la mains sur le server.cfg dmg ^^ mais j ai quand meme lance le test a vide le resultat n est pas mieux que ce que je fais chez moi on verra le reste
http://fpsmeter.org/p,view;27566.html
je vous fait un retour ne vais faire une war a midi et je vais lancer le test en meme time

je n est pas d info sur le kernel et tout si il y a idler si il y a le bout de code modifier pour le graph plat

firfanatic07
06/11/2009, 12h05
http://fpsmeter.org/p,view;27581.html
et voici messieux ce n est pas une critique juste un comparatif
en 2vs2 avec cssmatch zb tv on record on
et voici le perso meme config au niveau du jeu

http://fpsmeter.org/p,view;27582.html

hq reste un tres bon serveur
je vais test avec 5vs5 car j ai pas eu le temps je vous fait un retour rapidement

firfanatic07
06/11/2009, 18h07
http://fpsmeter.org/p,view;27644.html

4vs4 d2 tv on record on mani zb metamod cssmatch

hq serv

Furious13
06/11/2009, 18h47
J'avais déja posté un graph HQ, c'est la même pour tout le monde ... gotserv, intermedia, esport, etc ...

Le record de la sorucetv ca marche très mal !

firfanatic07
06/11/2009, 19h01
je comprend c est pour vous partez les infos .....
desole si je repete je pensait que ces test pourrai vous interesse
.....

de toute facon etant en lan pour play je ne pourrai jamais faire machine arriere c est horrible de play meme avec 17 de ping

MNk
28/11/2009, 17h59
Bonsoir les gens,

Durant toute l'année dernière, j'ai tenté d'avoir des serveurs hlds avec des fps stable et je n'ai jamais réussi même après des semaines de tests de kernel, de patchs RT ou même d'astuce comme celle-là provenant de fragaholics.de

Notre team vient de reprendre du métier et je me suis donc lancé cette après-midi sur l'installation d'un dédié et de plusieurs serveurs.

J'ai donc pris un Kimsufi 750G disposant d'un Quad Core Q6600. J'ai donc installé 2 serveurs FFA de 18 slots et 2 serveurs WAR. Chaque serveur tourne sur un core dédié et j'ai utilisé les informations proposées ici-même pour stabilisé la chose et grande surprise, ça fonctionne à merveille.

J'ai d'abord tenté avec le kernel Fragoholics proposé par un autre membre mais les fps fluctuaient entre 1000 et 500. Je me suis donc dirigé vers le dernier kernel proposé par OVH (bzImage-2.6.31.5-xxxx-rt14-ipv6-64), tout en utilisant la config realtime et les idlers et je tourne à 1000fps stable.

Voilà les stats FPS-Meter :

http://uppix.net/5/6/9/8e2765644d54a3bbf5364540d76aa.png
http://uppix.net/1/3/9/70286d764e9098221ef19c1be69ab.png

C'est tout simplement magique.

La seul question que je me pose et je ne sais pas si cela va pouvoir être corrigé, c'est que depuis toujours, les serveurs Kim ping un peu plus haut que les autres serveurs proposés par HQ, Dedicore, Gotserv, etc...

Je me demande si nous pourrions pas appliquer une priorité plus élevée au processus de gestion du réseau pour que le ping soit plus ou moins stable. Étant chez Free en Fastpath, j'ai mon ping qui varie entre 8 et 25 dans le net_graph...

En tout cas, un grand merci pour toute cette aide...

snapeuh
28/11/2009, 18h20
La différence de ping vient du fait que les Kimsufi sont hébergés à Roubaix et non à Paris/banlieue parisienne. Donc non, rien à faire côte software!

MNk
28/11/2009, 18h21
La différence de ping vient du fait que les Kimsufi sont hébergés à Roubaix et non à Paris/banlieue parisienne. Donc non, rien à faire côte software!

Et au niveau stabilité du ping. J'ai rarement vu mon ping fluctuer autant que sur mes propres serveurs...

snapeuh
28/11/2009, 19h20
Sur ce point là je n'ai pas d'explications. Peut-être que d'autres seront plus qualifiés!

MNk
28/11/2009, 19h24
OK. Pas de soucis.

Par contre, je viens de constater un truc vraiment hard.

Quand je lance les 4 serveurs, chacun sur un core et que les priorités sont mises en place, il me faut presque 5 minutes pour m'identifier en ssh. Je pense que le serveur sshd est placé en priorité minime par rapport aux serveur hlds et il faut donc attendre.

Faudrait-il pas ne pas appliquer la priorité minime sur le serveur ssh pour quand même pouvoir accéder au serveur sans trop de soucis ?

Autre chose, j'arrive à avoir 1000fps stable avec un sys_ticrate de 1001 et par conséquent le jeu n'a aucune accélération... ce qui est vraiment un bonus...

MNk
28/11/2009, 20h21
Idem pour le ping. Quand les 4 serveurs sont lancés, le ping augmente sur les serveurs.

J'ai l'impression que la priorité max sur les serveurs hlds ne laisse plus beaucoup de place pour le reste.

Est-ce quelqu'un aurait une idée pour mettre en priorité "normale" ou "élevé" la gestion du réseau pour ne plus avoir ce problème ? Idem pour le serveur sshd qui a vraiment du mal quand les 4 serveurs sont actifs.

Le reste est vraiment parfait, 1000fps stable. Je suis revenu à un ticrate de 1050 pour une meilleure stabilité...

MNk
28/11/2009, 21h25
C'est encore moi :)

Je viens de voir sur le tutoriel fragoholics que l'on peut essayer de mettre les processus réseau en RT.

Try setting other sirq kernel threads to realtime priority (e.g. sirq-net-tx and sirq-net-rx).

sirq-net-tx
This is the network transmit queue. Most of the time the network packets will be handled by the task that is sending the packets out, and doing so at the priority of that task. But if the send queue of the device is full, then the packets will be pushed off to later. The sirq-net-tx softirq is responsible for sending out these packets.

sirq-net-rx
When receiving a packet the device will place the packet on a queue with its hard interrupt (threaded in RT). The sirq-net-rx is responsible for finding out what to do with the packet. It may forward it to another box if the current box is used as a router, or it will find the task the packet is for. If that task is currently waiting for the packet, the softirq might hand it off to that task and the task will handle the rest of the processing of the packet.

Je ne sais pas vraiment comment le faire mais je tente avec ces différentes lignes ajoutés dans le fichier realtime.sh

PIDS=`ps ax | grep sirq-net | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

Cela devrait basculer tous les sirq-net-tx et sirq-net-rx en RT.

Pour garder sshd en priorité normal, je n'ai toujours pas trouvé comment faire...

firfanatic07
29/11/2009, 09h28
salut

j ai pas le probleme car je suis en lan mais j avais un ping moins reactif sur le net graph alors j ai rajoute ca

PIDS=`pidof dhclient3`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done

et j ai retrouve la reactivitée j espere que ca marchera pour toi sinon trouve le pids du ssh dans le Htop et rajoute ^^

@++ longue vie au tuto

MNk
29/11/2009, 11h27
salut

j ai pas le probleme car je suis en lan mais j avais un ping moins reactif sur le net graph alors j ai rajoute ca

PIDS=`pidof dhclient3`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done

et j ai retrouve la reactivitée j espere que ca marchera pour toi sinon trouve le pids du ssh dans le Htop et rajoute ^^

@++ longue vie au tuto

Salut firfa,

Je n'ai aucun pid dhclient3 ou même dhclient...

Par contre, j'ai réussi à mettre le serveur sshd en priorité normal et ça remarche proprement...

PIDS=`pidof sshd`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done

Par contre, est-ce que quelqu'un d'autre aurait 4 serveurs lancés sur un Quad Core et aurait des problèmes de stabilité ? Le load average est énorme !

load average: 12.40, 12.44, 12.83

snapeuh
29/11/2009, 11h42
C'est normal tu as les idlers, ils te prennent 100% de tous les coeurs. Donc ton processeur est constamment utilisé.

MNk
29/11/2009, 11h46
C'est normal tu as les idlers, ils te prennent 100% de tous les coeurs. Donc ton processeur est constamment utilisé.

OK, c'est bien ce que je pensais.

Pour le moment, j'utilisais le dernier kernel dispo sur ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6.31.5-3/bzImage-2.6.31.5-xxxx-rt14-ipv6-64

mais je voulais tenter avec la version RT du 2.6.29.3 disponible via le netboot. Je viens de sélectionner le netboot et le kernel dans le manager et je viens de rebooter.

J'ai un doute sur le kernel utilisé puisque avec un uname -a, j'obtiens toujours :

Linux ks308402.kimsufi.com 2.6.31.5-xxxx-rt14-ipv6-64 #3 SMP PREEMPT RT

Est-ce qu'un kernel en netboot ne change pas cette information ?

snapeuh
29/11/2009, 12h37
Normalement en uname -a tu as le nom du kernel que tu as selectionné dans le netboot.

MNk
29/11/2009, 13h18
Normalement en uname -a tu as le nom du kernel que tu as selectionné dans le netboot.

Bizarre, je reviens de sélectionner le kernel via le netboot et rebooter le serveur via le Manager et j'ai toujours le kernel 2.6.31.5 affiché avec uname -a !

C'est vraiment bizarre !

MNk
29/11/2009, 15h27
Bon après un test sur le serveur FFA à 18, les fps ne sont pas stables. J'ai vendu la peau de l'ours avant de l'avoir vraiment abattu... :/

http://www.fpsmeter.org/p,view;32117.html

http://uppix.net/2/6/3/3a901f0fc8b124e2c66c2e1681b36.jpg

J'aimerais savoir s'il faut prendre en compte la valeur de charge du CPU dans la colonne CPU des différents PID ou alors tout simplement dans les lignes des différents cores dans un top.

Je me demande bien si c'est vraiment possible, au final, de lancé 4 serveurs sur un Quad Core de ce type. J'ai l'impression que le processeur a un peu de mal. Il faudrait peut-être ne pas limiter à un seul core les serveurs et n'en lancer que 2 ou 3 maximums...

Hier soir, durant un match sur l'un des serveurs WAR, les fps était stable pourtant, mais nous n'étions que 10...

A votre avis ?

firfanatic07
29/11/2009, 18h24
Bon après un test sur le serveur FFA à 18, les fps ne sont pas stables. J'ai vendu la peau de l'ours avant de l'avoir vraiment abattu... :/

http://www.fpsmeter.org/p,view;32117.html

http://uppix.net/2/6/3/3a901f0fc8b124e2c66c2e1681b36.jpg

J'aimerais savoir s'il faut prendre en compte la valeur de charge du CPU dans la colonne CPU des différents PID ou alors tout simplement dans les lignes des différents cores dans un top.

Je me demande bien si c'est vraiment possible, au final, de lancé 4 serveurs sur un Quad Core de ce type. J'ai l'impression que le processeur a un peu de mal. Il faudrait peut-être ne pas limiter à un seul core les serveurs et n'en lancer que 2 ou 3 maximums...

Hier soir, durant un match sur l'un des serveurs WAR, les fps était stable pourtant, mais nous n'étions que 10...

A votre avis ?

re

plus d info ZB? source TV ? tickrate ??? idler ? tacset ?? ect .....

MNk
29/11/2009, 19h27
re

plus d info ZB? source TV ? tickrate ??? idler ? tacset ?? ect .....

Salut firfa,

Offre Kimsufi 750G, hlds avec un ticrate de 1050 et pingboost 3, idler actif, kernel bzImage-2.6.31.5-xxxx-rt14-ipv6-64 de chez OVH. Le serveur FFA est configuré au minimum, 20 slots, avec AMX avec très peu de plugins de base activés. Les 3 autres serveurs sont des serveurs de 12 slots de base avec personne dessus.

MNk
29/11/2009, 23h11
re

plus d info ZB? source TV ? tickrate ??? idler ? tacset ?? ect .....

Informations supplémentaires... Chaque serveur est sur un core et j'ai ajouté dans le realtime.sh :

PIDS=`ps ax | grep eth0 | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-net | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`pidof sshd`
for p in $PIDS; do
nice -n 19 chrt -f -p 10 $p
done


Autre chose, nous venons de faire un match sur le serveur WAR à 10, personne sur les autres serveurs :

http://www.fpsmeter.org/p,view;32232.html
http://uppix.net/d/7/9/350813ce76ef769bbf8b1025c1a91.jpg

Le kernel actuellement utilisé est le 2.6.31.5-2 en RT.

White wizard
02/12/2009, 01h00
j'ai des résultats très étranges sur deux serveurs différents avec les mêmes configurations css, sauf que l'un est plus puissant que l'autre.

Sur l'ancien serveur (Superplan Max Premium 08 Revolution).
Kernel: Linux ns368879.ovh.net 2.6.31.5-xxxx-std-ipv4-32-hz1000 #2 SMP Thu Nov 5 09:53:31 UTC 2009 i686 GNU/Linux
Modifications effectuées: Ajout du realtime.sh seulement.
Graph & top: http://img139.imageshack.us/img139/9708/serv1a.jpg
Pas de ZB ou Source TV.

Sur mon nouveau serveur (EG SSD 09)
Kernel: Linux ns26430.ovh.net 2.6.31.5-xxxx-std-ipv4-64-hz1000 #3 SMP Tue Nov 24 16:56:52 UTC 2009 x86_64 GNU/Linux
Modifications effectuées: Ajout du realtime.sh seulement.
Graph & top: http://img138.imageshack.us/img138/1678/serv2.jpg
Pas de ZB ou Source TV.

Pourquoi une tel différence... j'avoue ne pas trop comprendre sur ce coup, j'espérais avoir les "mêmes" résultats ou du moins quelque chose de stable sur le nouveau mais c'est pire O__o.

Pourtant les configurations css sont exactement les mêmes. Étrange d'ailleurs que j'ai de si bon résultats sans même avoir le script idler en cours sur l'ancien serveur.

snapeuh
02/12/2009, 12h56
Peut-être la différence 32 bits / 64 bits et un processeur encore peu répandu et peut-être mal optimisé au niveau du kernel ? (Idem pour la gestion de la DDR3 ?)

Je suis pas spécialiste et essaye seulement de trouver des pistes, désolé si ce que je dit n'a rien à voir!

MNk
02/12/2009, 13h25
Bonjour à tous,

Je reviens vers vous parce que depuis mon ancienne réponse, je ne fais que tester différentes possibilité mais je n'arrive à rien.

Mais je pense comprendre pourquoi le serveur FFA ne tient pas le coup à plus de 12 players.

Avec hlds_i686 en RT : http://uppix.net/a/9/4/ca21aebcf6dd5b5f9dc13bb9627b2.jpg
Sans hlds_i686 en RT : http://uppix.net/4/c/f/4c749980565e202db74d0f2d2bdc5.jpg

L'utilisation du processeur basculer de 5% à vide à environ 70% avec l'utilisation de la commande chrt -f -p 98 $p dans le realtime.sh. Je pense que c'est la cause du problème de stabilité à plus de 12 sur le serveur.

Pour le serveur WAR, aucun soucis à 10 players mais l'utilisation processeur reste très élevé et il est impossible de lancer 2 serveurs WAR sur le même core.

J'ai testé toutes les configurations possibles. pingboost 2 avec un ticrate de 10000 ne stabilise pas les FPS. J'ai testé des kernel en 1000hz, des kernel en RT et le meilleur compromis, pour le moment, reste le dernier kernel OVH (2.6.31.5-xxxx-rt14-ipv6-64).

J'utilise les idler.sh et le fichier realtime.sh suivant :

PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done

PIDS=`ps ax | grep sirq-net | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done

PIDS=`ps ax | grep eth0 | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
nice -n -20 chrt -f -p 99 $p
done

PIDS=`pidof hlds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done

nice -n 19 renice 19 -u root
nice -n 19 renice 19 -u bind
nice -n 19 renice -20 -u mnk

La seule manière de stabilisé les fps est d'utilisé la valeur 3 de pingboost mais avec l'application du RT sur hlds fait explosé l'utilisation du processeur.

J'ai eu l'occasion de tester un serveur HQ et les fps sont bien à 1000 et totalement stable. On peut lire dans la FAQ du site qu'ils ont optimisé le netcode du moteur hl1 et qu'il n'utilise plus la commande pingboost. Comme on le sait, la netcode date maintenant de plusieurs années et je pense que c'est la seule manière de pouvoir avoir un serveur hlds stable à 1000fps sans saturé le processeur. De toute manière, je pense qu'au niveau de la rentabilité de la société, il est impossible que HQ lance un seul serveur (WAR ou FFA) sur un core...

Est-ce que quelqu'un a déjà tenter de modifier le netcode hl1 pour voir comment optimisé tout ça ? J'avais lu qu'il y avait possibilité de modifier la valeur usleep du netcode qui réduit énormément le temps de réponse du traitement des informations... Bref, je ne suis pas assez caler dans ce domaine pour m'y attaquer...

Par rapport à ce que White wizard montre au-dessus, on peut constater une différence de stabilité entre un système 32 et 64bits. Est-ce que vous pensez qu'il peut y avoir une différence notoire d'utilisation processeur entre deux systèmes de ce type ? Personnellement, j'avais toujours lu qu'il valait mieux utiliser un système en 64bits. Je suis sous Debian 5 64 bits.

Bref, tant de question se pose sur les raisons de la non stabilité des serveurs hl1 et ça fait maintenant 5 jours que je ne fais que ça mais sans succès réel.

En vous souhaitant encore une très bonne journée et merci d'avance pour toute vos réponses.

Alex

White wizard
02/12/2009, 13h30
Peut-être la différence 32 bits / 64 bits et un processeur encore peu répandu et peut-être mal optimisé au niveau du kernel ? (Idem pour la gestion de la DDR3 ?)

Je suis pas spécialiste et essaye seulement de trouver des pistes, désolé si ce que je dit n'a rien à voir!
Non c'est pas ça, car j'ai fait une réinstallation en 32b ce matin et les résultats sont les mêmes...

Pour la DDR3 je sais pas, c'est possible.

MNk
02/12/2009, 13h33
Non c'est pas ça, car j'ai fait une réinstallation en 32b ce matin et les résultats sont les mêmes...

Je pense simplement à une différence de gestion du matériel par le kernel ! Disque en SSD qui n'est peut-être pas aussi performant que prévu ou mal géré par le kernel ou même une différence de gestion du processeur...

snapeuh
03/12/2009, 22h43
Alors, avec le dernier kernel RT d'ovh sur le FTP en 32 bits, sous Debian 5.0 avec les paquets à jour, j'arrive à ça :

http://www.fpsmeter.org/p,view;33144.html

K750G @ 2.4Ghz, 4Go de RAM, serveur CSS 11 slots avec Source TV

Mixik
04/12/2009, 09h35
Je pense pas que ton problème vient de la White wizard, je dispose aussi d'un EG SSD 09 et voici mon graph : http://www.fpsmeter.org/p,view;33249.html CS 1.6 avec le kernel 2.6.31.5-xxxx-rt14-ipv6-64 et les idlers et resched.sh lancé.
Je ferais de nouveaux test ce soir sur des serv css avec du monde.

MNk
04/12/2009, 11h09
Je pense pas que ton problème vient de la White wizard, je dispose aussi d'un EG SSD 09 et voici mon graph : http://www.fpsmeter.org/p,view;33249.html CS 1.6 avec le kernel 2.6.31.5-xxxx-rt14-ipv6-64 et les idlers et resched.sh lancé.
Je ferais de nouveaux test ce soir sur des serv css avec du monde.

ticrate ? pingboost ? utilisation cpu à vide ?

snapeuh
04/12/2009, 11h25
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout)
{
if(timeout->tv_usec == 1000)
{
return usleep(timeout->tv_usec);
}
else
{
struct timespec ts;
ts.tv_sec = timeout->tv_sec;
ts.tv_nsec = timeout->tv_usec * 1000;
return pselect(nfds, readfds, writefds, errorfds, &ts, NULL);
}
}

Ca c'est pour le pingboost à 2, à toi de compiler et de l'injecter.

Pour usleep() :

int usleep (useconds_t usec)
{
struct timespec ts, rem;

ts.tv_sec = 0;
ts.tv_nsec = usec * 1000;

while(clock_nanosleep(CLOCK_REALTIME, 0, &ts, &rem) != 0)
{
if(rem.tv_nsec < 6000)
{
return 0;
}
else
{
ts = rem;
}
}

return 0;
}

;)

White wizard
04/12/2009, 13h53
Je pense pas que ton problème vient de la White wizard, je dispose aussi d'un EG SSD 09 et voici mon graph : http://www.fpsmeter.org/p,view;33249.html CS 1.6 avec le kernel 2.6.31.5-xxxx-rt14-ipv6-64 et les idlers et resched.sh lancé.
Je ferais de nouveaux test ce soir sur des serv css avec du monde.
Pas mal ton graph :). Mais moi je suis sur du Cs:S, tu obtiens les même résultats sur Cs:S? (Si tu a un serveur).

Je vais tenté plusieurs trucs ce soir.

Mixik
17/12/2009, 14h01
Toujours pas essayer, mais en tout cas j'arrive a garder 1000fps constant.
Mon problème reste la consommation CPU qui reste beaucoup trop importante ! (33/100% du core).

SekYo
02/03/2010, 10h29
Mon problème reste la consommation CPU qui reste beaucoup trop importante ! (33/100% du core).
Heu, tu dis plus haut que tu utilises un idler. Si je ne me plante pas, c'est normal d'être à 100% avec un idler, vu que quand srcds n'a pas besoin du CPU, c'est justement l'idler qui va le récupérer dans sa boucle infinie.

Mixik
09/03/2010, 03h39
A l'époque de mon précédent post je parlais du processus hlds qui consommait 33/100% du core et non de l'idler.

firfanatic07
27/06/2010, 07h42
SAlutation Tout le monde

bon j espere que vous ne chialé pas trop ^^ pour le new css

je tentai a vous faire part d un changement dans le mode realtime

il faut ajoute PIDS=`pidof srcds_linux`
for p in $PIDS; do
chrt -f -p 98 $p
done

ou


PIDS=`pidof srcds_run`
for p in $PIDS; do
chrt -f -p 98 $p
done

tout depend comment vous le lance ^^

et ca donne ca

http://www.fpsmeter.org/p,view.html?arg[0]=76818

voila les plus malins y auront deja pensé mois j ai mis 3 jours ^^

@ ++ longue vie au tutos ^^