JeuWeb - Crée ton jeu par navigateur
Charge du serveur - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Charge du serveur (/showthread.php?tid=2125)



Charge du serveur - Zamentur - 10-12-2007

Alors je me demande quel methode vous utiliser pour calculer la charge serveur: le seul moyen que je connais c'est de faire une commande shell, enfin je l'avais fait mais çà fait super longtemps.

Je me dis que cette methode n'est peut etre pas la meilleur et que vous avez peut etre des idées


NB: je m'excuse si le sujet à été déjà discuté mais j'ai pas eu l'impression!


RE: Charge du serveur - Zamentur - 11-12-2007

En fait ce que je veux c'est un indicateur qui permette de fermer la connexion en cas de surcharge du jeu. Car je prefere avoir un jeu avec une contraite pour se connecter quand on veut mais qui ne lague pas trop.

C'est vrai que la charge serveur nest peut etre pas la meilleure solution, à vous de me dire, maintenant que le but est précisé...


RE: Charge du serveur - NicoMSEvent - 11-12-2007

un compteur de joueurs simultanés? (retiens par ex dans la table joueur la date/heure de la derniere action du joueur, puis compte le nb de joueurs ayant cette date < 5 minutes quand quelqu'un veut se connecter. si ce nb > a la limite que tu as définie, il ne peut pas se connecter).


RE: Charge du serveur - Zamentur - 11-12-2007

C'est vrai que c'est un bon indicateur aussi. Mais j'aurais aimer un trucs qui s'adapte à l'hebergement et pas un trucs qui doit etre réglé soi meme.

Avec ereg j'avais çà:
Code PHP :
<?php 
function charge_average() {
exec("bash$ uptime", $buffer);
ereg("averag(es|e): ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]*)", $buffer, $load);
if (
$load) return round(($load[2]/1.5)*100, 0);
else return
"110";
}
Le hic c'est qu'on ne peut pas toujours lancé une commande shell...


RE: Charge du serveur - Haiken - 13-12-2007

Une méthode que je n'ai jamais vu nulle part mais qui marcherait probablement bien, c'est de surveiller le temps de génération des scripts php
Calculer par exemple le temps sur la page la plus utilisée, et si ça prend disons plus de 5 secondes, alors on interdit la connexion (en positionnant un flag dans un fichier, une table mémoire, ...). Si ça prend moins de 5s, on autorise la connexion.
Et faut sûrement ajouter un délai minimal entre ouverture et fermeture pour éviter que ça bascule trop souvent.

L'intérêt c'est que l'on se base sur un indicateur réel, perçu par le joueur (pas sur le load average qui n'est pas un indicateur fiable), et que c'est assez léger (ça ne surcharge pas un serveur déjà écroulé)
Par contre bien choisir le script, il faut en trouver un dont le temps de génération est représentatif de la charge du serveur.