Forum francais Minecraft. Serveur de jeu FR-Minecraft et astuces pour Minecraft.

Pages :: 1

#1 20/11/2012 06:21:41

Administrateur

Messages : 3 831

2012-11-20 - Problème de lag sur le RP

Vous êtes nombreux depuis quelque temps a constater des lags importants sur le serveur RP, et particulier lorsqu'on fait du commerce.

Après de longue heure d'analyse, en particulier un trace des bases de donnees, j'en suis arrivé à la conclusion que le problème vient du plugin de question des comptes en banque: iconomy.

En effet, lors d'un achat d'un item dans une boutique, j'ai compté près de 90 connexions et 500 requêtes SQL à la base de donnée !

Pour ceux que ca pourrait interresser, petite apparté technique avec un extrait d'un exemple de transaction:

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='tronics'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='tronics'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='tronics'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT balance FROM iconomy WHERE username='tronics'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='server'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='server'

SHOW COLLATION
SET NAMES utf8mb4
SET character_set_results = NULL
SET autocommit=1
SELECT id FROM iconomy WHERE username='server'

etc...

Je pense que même ceux qui ne sont pas expers auront remarqué que ce plugin fait en permanence les mêmes requêtes. D'après mes constatations toutes ces requêtes aurait pu être résumé en seulement 4 !!!

En attendant, parce que depuis peut les 2 serveurs (de jeu et de base de donnée) ne sont plus sur les mêmes réseau, ça lag (car 500 requêtes ça peut prendre plusieurs seconde a s'exécuter, surtout sur des réseaux différents).

Les solutions ?
- Attendre que le plugin soit améliorer ? Ca n'arrivera jamais, il est abandonné. De plus même si ce n'était pas le cas, il serait extremement peu probable que les développeurs corrigent ce genre de problème, c'est un problème de conception (pas de parallélisation, et surcouche d'abstraction qui multiplie les requetes) qui neccessiterai de réécrire entièrement le plugin.

- Changer de plugin d'economie ? J'ai chercher... 90% des plugin d'economie ne gere tout simplement pas les base de donnée (je suis sidéré de voir ca, je comprend pas ...), pour les 2 ou 3 qui le gère, un bug (le notre), un autre neccessite la creation manuel des compte en banque par les joueurs (inutilisable donc), le dernier ne gere que l'importation des base de donnée des autres plugin opur en faire un ficheir texte (une aberation total). Reste un espoir, BSODEconomy qui a prévu de gérer mysql a terme... mais pour l'instant ce n'est toujours pas géré.

- Déplacer la base de donner sur le réseau du RP ? A ce moment la c'est le site qui lagguerai, je préfère encore avoir des problèmes avec le RP.

- Avoir plusieurs base de donnée ? Ça ne résoudrait rien, car le site interagit en permanence avec les données du jeu (page de profil, statistique, top, achat d'ecu, etc.) ca ne ferait qu'ajouter des problèmes


Je n'ai donc pas de solution à ce problème ...
En attendant, j'ai limiter les achats à 1 toutes les 5 secondes, ce qui ne fera pas disparaître le problème, mais j'espère limitera les lag du serveur.

La seule solution efficace à long terme serait de réécrire entièrement le plugin d'économie, mais la on aurait alors des problèmes de compatibilité avec les autres plugins (car il faut qu'ils arrivent a interagir). Ce n'est pas insurmontable (on a déjà vu ça, par exemple le plugin groupmanager simule le plugin Permission pour rendre les autres plugin compatible), mais c'est un boulot monstrueux, une aventure dans laquelle je ne suis actuellement pas près a me lancer.

Si il y a des volontaires, vous pouvez toujours m'en parler (et attention car j'ai un cahier des charges très strict :P ), sinon il faudra attendre :-(

Hors ligne


Fondateur et Administrateur de FR-Minecraft.net depuis 2010
Fondateur et Administrateur de Minecraft.Tools depuis 2014

#2 20/11/2012 09:51:28

Membre
Lieu : Lille

Messages : 326

Re : 2012-11-20 - Problème de lag sur le RP

Tronics Il y a un Iconomy 8 si je ne me trompe pas (repris par une autre personne) mais en cherchant sur bukkit je ne le trouve pas ><

Je te dit quoi si je le trouve.

Hors ligne


cooltext1359mln.pngfr-minecraft-net-91600178-216406.png

#3 20/11/2012 09:55:35

Membre
Lieu : Lille

Messages : 326

Re : 2012-11-20 - Problème de lag sur le RP

après quelque recherche je ne trouve rien.
Sinon tronics va tu le remplacer ou le mettre a niveau ?
et si tu le remplace nos compte seront-il toujours les même?

Hors ligne


cooltext1359mln.pngfr-minecraft-net-91600178-216406.png

#4 20/11/2012 17:51:23

Administrateur

Messages : 3 831

Re : 2012-11-20 - Problème de lag sur le RP

Iconomy 8 ??? jamais entendu parlé.
J'ai bien entendu parler d'un iconomy 7, mais c'était un poisson d'avril.

Comme expliquer dans mon sujet, je n'ai pas de solution de remplacement, aucun autre plugin ne convient. Mais quoi que je fasse aucun écu ne sera perdu, soit en sur 17

Hors ligne


Fondateur et Administrateur de FR-Minecraft.net depuis 2010
Fondateur et Administrateur de Minecraft.Tools depuis 2014

#5 20/11/2012 18:18:06

Membre
Lieu : Lille

Messages : 326

Re : 2012-11-20 - Problème de lag sur le RP

oki =D , Bonne chance pour trouver le saint graal ^^

Hors ligne


cooltext1359mln.pngfr-minecraft-net-91600178-216406.png

#6 01/12/2012 13:48:12

Administrateur

Messages : 3 831

Re : 2012-11-20 - Problème de lag sur le RP

Salut tout le monde :)

Alors j'ai étudier attentivement le problème ces derniers jours, le nez plongé dans le code source de iconomy ...

Et c'est non sans une certain fièreté que je peut vous annonce le passage de 500 requêtes à ... 4 01

Si ca interresse certaines personnes, voici techniquement les changements apportés:

1/ Suppression des multiples connexions SQL:
- J'enregistre la connexion courante et je la garde
- J'ai supprimé toutes les fermetures de connection
A chaque tentative de connection je retourne la connection déjà établit, ou je la refait si jamais il y a eut déconnection (ce qui normallement n'arrive jamais)

Déjà la je passe de 90 connections à 1 seule (établit au lancement du serveur), et je divise les requêtes par 5: il en reste une centaine.

2/ Suppression des "SELECT id FROM iconomy WHERE username='tronics'" a répétition.
Cette requetes est lancer a chaque fois ou le plugin test l'existance d'un compte, c'est a dire très souvent dans le code source.
Solution simple: un cache. Je test une fois, je met en cache le resultat, et apres je regarde le cache.
J'ai réduit de 80% les requêtes, il en restait encore une vingtaine, principalement des lecture de la balance

3/ Plus compliqué, pour un gain plus faible, mais tant qu'a faire autant aller jusqu'au bout de l'optimisation: réécriture des transactions.
Problème, Exemple: le joueur A veux donner 1 Ecu au joueur B, le plugin va récup le compte en banque de A et de B, va faire de multiple contrôle sur leur compte (en refaisant a chaque fois des requêtes sur leur compte).
- Dabord j'ai revu la méthode de calcul, ce n'est plus le plugin qui fait le calcul, mais la base de donnée (3 requetes en moins)
- J'ai réécrit les contrôles pour limiter les multiples rappel en base de donnée pour avoir le montant sur le compte du joueur

Au final il reste 4 requetes:
- 2 lecture du compte en banque des joueurs A et B pour les vérifications
- 2 mise a jour des 2 comptes

J'avoue que j'aurai pu aller plus loin pour limité a 2 requetes seulement, mais ca serait des changements vraiment trop lourd, pour un gain trop faible

Je mettrai cette mise à jour en ligne dans la journée ce samedi.

Hors ligne


Fondateur et Administrateur de FR-Minecraft.net depuis 2010
Fondateur et Administrateur de Minecraft.Tools depuis 2014

#7 01/12/2012 14:20:15

VIP

Messages : 695

Re : 2012-11-20 - Problème de lag sur le RP

hé bah, bien joué ^^

Hors ligne


Carabin, et fier de l'être.

#8 01/12/2012 14:42:08

Membre
Lieu : Lille

Messages : 326

Re : 2012-11-20 - Problème de lag sur le RP

GG Tronics =D

Hors ligne


cooltext1359mln.pngfr-minecraft-net-91600178-216406.png

#9 01/12/2012 22:02:16

VIP
Lieu : Abou Dabi

Messages : 1 562

Re : 2012-11-20 - Problème de lag sur le RP

Haha ! Je l'attendais celle-là !
Super boulot Tronics, gros merci à toi :)

Hors ligne


The Dude Abides

#10 02/12/2012 01:05:26

Membre
Lieu : CastelMithral la Grande

Messages : 217

Re : 2012-11-20 - Problème de lag sur le RP

Encore une fois GG 17 Un grand merci en tout cas 01

Hors ligne


172318SignatureLoris19.png

#11 02/12/2012 01:23:17

Administrateur

Messages : 3 831

Re : 2012-11-20 - Problème de lag sur le RP

Merci à tous 01

j'ai donc comme prévus mis cette nouvelle version du plugin en ligne dans l'après midi, et c'est avec un grand soulagement que j'ai constater qu'il n'y a plus eut aucun freeze de la journée, la charge serveur est maintenant linéaire, je pense que coté jeu les lags doivent être drastiquement réduit 01

Et voila un plugin de plus qui est maintenant géré par moi même ^^ (ça fait 7 en tout, dont 2 entièrement fait maison)

Hors ligne


Fondateur et Administrateur de FR-Minecraft.net depuis 2010
Fondateur et Administrateur de Minecraft.Tools depuis 2014

#13 02/12/2012 14:43:03

Banni(e)

Messages : 396

Re : 2012-11-20 - Problème de lag sur le RP

Sinon j'ai remarqué que le serveur ne tourne plus que a 40 voir 50 personnes donc je sais que c'est pas forcément l'endroit ou poster sa mais pourquoi ya de moins en moins de monde 02 ?

Hors ligne


imageart.jpg

#14 02/12/2012 15:33:42

Administrateur

Messages : 3 831

Re : 2012-11-20 - Problème de lag sur le RP

Si j'avais la réponse nous aurions tout le temps 120/120 joueurs 17

Hors ligne


Fondateur et Administrateur de FR-Minecraft.net depuis 2010
Fondateur et Administrateur de Minecraft.Tools depuis 2014

#15 02/12/2012 20:28:33

VIP
Lieu : 404-error not found

Messages : 615

Re : 2012-11-20 - Problème de lag sur le RP

La réponse,je pense,c'est que les joueurs du rp vont pour le concours archi sur le créa.

Hors ligne


Esc

#16 15/12/2012 18:49:49

Membre

Messages : 13

Re : 2012-11-20 - Problème de lag sur le RP

ouais bravo Tronics

Hors ligne

#17 16/12/2012 05:09:27

Membre
Lieu : Ombre-Terre

Messages : 79

Re : 2012-11-20 - Problème de lag sur le RP

D'un autre coté si il y avait moins de feelback pour le minage ou les inventaires des coffres cela décourageraient moins de personnes a venir jouer sur le Rp !!

Dernière modification par NarKoTek77 (16/12/2012 05:10:15)

Hors ligne

#18 16/12/2012 10:22:38

VIP
Lieu : Cimetière Pumpkins

Messages : 743

Re : 2012-11-20 - Problème de lag sur le RP

C'est vrai que les lags font fuirent beaucoup de nouveaux joueurs ...

#19 16/12/2012 12:52:40

Modérateur

Messages : 360

Re : 2012-11-20 - Problème de lag sur le RP

oui et pui blackwood et sparciate sont de moin en moin la ce la fait au moin 25 joueurs régulier qui parte !!!

Dernière modification par franck6949 (16/12/2012 12:55:33)

Hors ligne

#20 16/12/2012 15:31:36

Modérateur
Lieu : Entre deux bans

Messages : 2 034

Re : 2012-11-20 - Problème de lag sur le RP

Quel rapport avec les lags Franck?

Hors ligne


Ex-Seigneur Pumpkins!

#21 16/12/2012 17:57:15

Modérateur

Messages : 360

Re : 2012-11-20 - Problème de lag sur le RP

suite au questionnement d Arthur et de tronic sur le dépeuplement du cerveur il n y a pas que le lag...

Hors ligne

#22 16/12/2012 17:57:16

Banni(e)
Lieu : sous la lave

Messages : 1 324

Re : 2012-11-20 - Problème de lag sur le RP

Je pense qu'il veut dire que les lags ont fait (en partie ce n'est pas la seule raison) quitté le serveur à Spartiates et Blackwood.

Pages :: 1

Pied de page des forums