Enregistrement de démos côté serveur

Tout ce qui concerne la configuration et l'administration des serveurs.
Rendez-vous dans Outils de communication & communautaires pour la conception de sites Internet.
Barbatos
Développement & Maintenance UrT France
Messages : 5056
Enregistré le : 30 déc. 2008, 23:10

Re: Enregistrement de démos côté serveur

Message par Barbatos » 25 mai 2012, 10:19

Info très intéressante ! J'ai eu des retours d'autres personnes comme quoi urt leur prenait 100% du CPU récemment donc n'hésites pas à partager si tu trouves la solution. :) Chez moi aucun problème sur trois serveurs debian 5 / debian 6 différents.
<MajkiFajki> Carmack compared to you is a vegetable
Twitter

Avatar du membre
derfull
Participant Powerban
Messages : 273
Enregistré le : 16 juil. 2008, 00:20

Re: Enregistrement de démos côté serveur

Message par derfull » 25 mai 2012, 20:21

Ok j'ai trouver la raison mais ne sait pas encore l'expliquer (peut être encore une histoire de tty), ou passer outre de façon satisfaisante. je tient a conserver l'avantage d'un utilisateur sans droit pour lancer le serveur urban terror et surtout que ce soit automatique ^_^.

La raison :
La charge CPU augmente lorsque que le processus passe en arrière plan lorsque l'on utilise "start-stop-deamon".
A l'inverse lorsque l'on exécute à la main avec "&" à la fin de la commande tout vas bien.

On peut reproduire le soucis avec

Code : Tout sélectionner

su - user -c "blabla"
lorsque que l'on ferme la session ayant lancer cette commande la charge cpu augmente immédiatement.

Je vais faire quelques testes avec screen, mais ça commence a faire un peu trop d'exécutables imbriqués et en fonction à mon goût.

-_- screugneu gneu de screugneu gneu
|U`u| --> The Urban Unit

Avatar du membre
Courgette
Messages : 850
Enregistré le : 22 déc. 2007, 02:05
Localisation : Rennes

Re: Enregistrement de démos côté serveur

Message par Courgette » 14 juin 2012, 20:25

Y-a-t-il du progrès du côté du 100% de cpu ?

J'ai moi aussi ce problème (Ubuntu server) quand je lance le serveur avec nohup

Avatar du membre
holblin
Référent outil (Mode Assault)
Messages : 62
Enregistré le : 20 févr. 2010, 16:02

Re: Enregistrement de démos côté serveur

Message par holblin » 16 juin 2012, 02:10

Après quelques heures de recherches :

CPU 100 % :
root@debian:/media/FS_DRIVE/GIT/urt_clean# /media/FS_DRIVE/GIT/urt_clean/ioUrTded.i386 +EXEC autoexec.cfg < /dev/null 2&>1 > /dev/null &

CPU 1% :
root@debian:/media/FS_DRIVE/GIT/urt_clean# /media/FS_DRIVE/GIT/urt_clean/ioUrTded.i386 +EXEC autoexec.cfg +set ttycon 0 < /dev/null 2&>1 > /dev/null &

Testé sous une VM Debian 6.0.5 X64 avec un exécutable i386 et x86_64 compilé depuis les sources.


C'est d’ailleurs intéressant de voir que celui qui bouffe le cpu consomme moins de ram :

Code : Tout sélectionner

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
13652 root      20   0  284m 2356  864 R 47.2  0.2   0:17.66 ioUrTded.i386  
13653 root      20   0  299m 2676  976 R 47.2  0.3   0:10.66 ioUrTded.x86_64
13650 root      20   0  287m  53m 2908 S  1.4  5.3   0:02.06 ioUrTded.i386  
13649 root      20   0  314m  55m 8728 S  1.4  5.5   0:06.23 ioUrTded.x86_64

Pour conclure : +set ttycon 0
Modifié en dernier par holblin le 17 juin 2012, 18:47, modifié 1 fois.

Avatar du membre
Courgette
Messages : 850
Enregistré le : 22 déc. 2007, 02:05
Localisation : Rennes

Re: Enregistrement de démos côté serveur

Message par Courgette » 16 juin 2012, 13:58

+set ttycon 0 ne suffi pas

voici mes résultats :

Code : Tout sélectionner

nohup ./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg
=> 100% CPU

Code : Tout sélectionner

nohup ./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg &
=> 100% CPU

Code : Tout sélectionner

./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg
=> 1% CPU

Code : Tout sélectionner

./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg &
=> 1% CPU

Code : Tout sélectionner

nohup ./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg < /dev/null 2&>1 > /dev/null
=> 100% CPU

Code : Tout sélectionner

nohup ./ioUrTded.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg < /dev/null 2&>1 > /dev/null &
=> 100% CPU


Pour résumer, quelque soient les options et redirections que j'ajoute, j'ai du 100% CPU dès que je lance la commande avec nohup.

J'ai trouvé ce patch pour un autre projet qui souffre du même problème. Peut-être que ça peut aider Barbatos : https://github.com/PromyLOPh/pianobar/issues/71

et aussi
http://quakeone.com/forums/quake-help/multiplayer/7664-qwsv-running-100-cpu.html#post101957 a écrit :quakeworld is meant to wait on some sockets until it receives a packet, at which point it wakes up and does its stuff. it also waits for keyboard input so you can type stuff. using nohup on certain system (debian but not suse, for example) can result in the 'select()' system call returning instantly, every single time, so the server never idles properly.
who wants a server you can't interact with anyway? :/
cette explication expliquerais aussi pourquoi quand j'ai du 100% CPU, c'est pour la moitié une activité CPU System et pour moitié une acitvité CPU User. Le Select() étant un appel système si j'ai bien tout suivi.

Barbatos
Développement & Maintenance UrT France
Messages : 5056
Enregistré le : 30 déc. 2008, 23:10

Re: Enregistrement de démos côté serveur

Message par Barbatos » 16 juin 2012, 16:40

Ok est-ce que vous pouvez essayer cette build svp ?
http://www.f1m.fr/uploads/urt/ioUrTdedtest.i386
<MajkiFajki> Carmack compared to you is a vegetable
Twitter

Avatar du membre
Z3nnY-H0lp2
Messages : 312
Enregistré le : 03 juil. 2011, 12:55

Re: Enregistrement de démos côté serveur

Message par Z3nnY-H0lp2 » 17 juin 2012, 00:56

A quand le kick avec raison ?
/*
==================
SV_Kick_f WITH REASON
==================
*/
static void SV_Kick_f( void ) {
client_t *cl;
int i;
char *reason = "was kicked";

// make sure server is running
if ( !com_sv_running->integer ) {
Com_Printf( "Server is not running.\n" );
return;
}

if ( Cmd_Argc() < 2 || Cmd_Argc() > 3 ) {
Com_Printf ("Usage: kick <player> <reason>\nkick all = kick everyone\nkick allbots = kick all bots\n");
return;
}


if ( Cmd_Argc() == 3 ) {
reason = Cmd_Argv(2);
}

cl = SV_GetPlayerByHandle();
if ( !cl ) {
if ( !Q_stricmp(Cmd_Argv(1), "all") ) {
for ( i=0, cl=svs.clients ; i < sv_maxclients->integer ; i++,cl++ ) {
if ( !cl->state ) {
continue;
}
if( cl->netchan.remoteAddress.type == NA_LOOPBACK ) {
continue;
}
SV_DropClient( cl, reason );
cl->lastPacketTime = svs.time; // in case there is a funny zombie
}
}
else if ( !Q_stricmp(Cmd_Argv(1), "allbots") ) {
for ( i=0, cl=svs.clients ; i < sv_maxclients->integer ; i++,cl++ ) {
if ( !cl->state ) {
continue;
}
if( cl->netchan.remoteAddress.type != NA_BOT ) {
continue;
}
SV_DropClient( cl, reason );
cl->lastPacketTime = svs.time; // in case there is a funny zombie
}
}
return;
}
if( cl->netchan.remoteAddress.type == NA_LOOPBACK ) {
SV_SendServerCommand(NULL, "print \"%s\"", "Cannot kick host player\n");
return;
}

SV_DropClient( cl, reason );
cl->lastPacketTime = svs.time; // in case there is a funny zombie
}
x)
Plaisir Solo sur UrT (-18)

<stratege> Je vous enverra ce que je vais lui envoyé

Avatar du membre
Courgette
Messages : 850
Enregistré le : 22 déc. 2007, 02:05
Localisation : Rennes

Re: Enregistrement de démos côté serveur

Message par Courgette » 17 juin 2012, 02:16

Barbatos a écrit :Ok est-ce que vous pouvez essayer cette build svp ?
http://www.f1m.fr/uploads/urt/ioUrTdedtest.i386
bien joué :) maintenant j'obtiens les résultats suivants :

Code : Tout sélectionner

nohup ./ioUrTdedtest.i386 +set ttycon 0 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg &
=> 1% CPU

Code : Tout sélectionner

 nohup ./ioUrTdedtest.i386 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg &
=> 1% CPU

conclusion :
  • ioUrTdedtest.i386 résout mon problème de 100% CPU / nohup
  • +set ttycon 0 n'avait aucune incidence sur ce problème
mon système :

Code : Tout sélectionner

$ cat /proc/version
Linux version 3.2.13-xxxx-std-ipv6-64-hz1000 (root@kernel-64.ovh.net) (gcc version 4.3.2 (Debian 4.3.2-1.1) ) #1 SMP Thu Mar 29 11:11:33 UTC 2012
$ cat /etc/issue
Ubuntu 12.04 LTS \n \l

Barbatos
Développement & Maintenance UrT France
Messages : 5056
Enregistré le : 30 déc. 2008, 23:10

Re: Enregistrement de démos côté serveur

Message par Barbatos » 17 juin 2012, 09:23

Ok super Courgette je vais faire les màj des builds officielles asap.

Z3nnY-H0lp2, pull request @ https://github.com/Barbatos/ioq3-for-UrbanTerror-4 thx.
<MajkiFajki> Carmack compared to you is a vegetable
Twitter

Avatar du membre
Blapecool
Conseil d'Administration
Conseil d'Administration
Messages : 1504
Enregistré le : 19 mars 2009, 17:10
Localisation : Sur la Terre

Re: Enregistrement de démos côté serveur

Message par Blapecool » 17 juin 2012, 11:38

Barbatos a écrit :Z3nnY-H0lp2, pull request @ https://github.com/Barbatos/ioq3-for-UrbanTerror-4 thx.
Tu ne l'a pas déjà commit ? : https://github.com/Barbatos/ioq3-for-Ur ... 5b61d8b428

;)

Avatar du membre
Z3nnY-H0lp2
Messages : 312
Enregistré le : 03 juil. 2011, 12:55

Re: Enregistrement de démos côté serveur

Message par Z3nnY-H0lp2 » 17 juin 2012, 11:43

Voilà :D

EDIT : J'avais pas vue ton post Blapecool x) Mince, Pull Request pour rien :p

EDIT2 : On ne pourrais pas ouvrir un sujet pour que tout le monde post ses idée pour les nouveau exécutable serveurs ?
Plaisir Solo sur UrT (-18)

<stratege> Je vous enverra ce que je vais lui envoyé

Avatar du membre
Skaz
Messages : 3561
Enregistré le : 15 août 2008, 19:46

Re: Enregistrement de démos côté serveur

Message par Skaz » 17 juin 2012, 12:03

Il y a les forums officiels du jeu pour les propositions : http://www.urbanterror.info/forums/

Avatar du membre
holblin
Référent outil (Mode Assault)
Messages : 62
Enregistré le : 20 févr. 2010, 16:02

Re: Enregistrement de démos côté serveur

Message par holblin » 17 juin 2012, 18:43

Merci courgette pour ce retour et cette aide :-)

N1 barbatos

Avatar du membre
derfull
Participant Powerban
Messages : 273
Enregistré le : 16 juil. 2008, 00:20

Re: Enregistrement de démos côté serveur

Message par derfull » 17 juin 2012, 20:51

j'avais un peu arrêté de m'occuper de ce truc, je vais faire des testes avec le nouveau build des que possible.

thx :)
|U`u| --> The Urban Unit

Barbatos
Développement & Maintenance UrT France
Messages : 5056
Enregistré le : 30 déc. 2008, 23:10

Re: Enregistrement de démos côté serveur

Message par Barbatos » 17 juin 2012, 22:35

Je précise que ça a été réglé par un dev d'ioquake3 y'a 2/3 ans, pas par moi. Le commit avec le fix est sur mon compte github comme d'hab !
<MajkiFajki> Carmack compared to you is a vegetable
Twitter

Répondre