Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

Amélioration des lags

Aller en bas

Amélioration des lags Empty Amélioration des lags

Message  égérie Mer 30 Avr - 15:00

"Lors du passage de Dofus en v1.23, le 15 avril, nous en avons profité pour mettre en place un certain nombre de modifications au niveau du moteur des serveurs de jeu, en vue d'optimiser les performances et de réduire le 'lag'. Qu'est ce que le 'lag' ? Vous pouvez jeter un œil à un de mes précédents articles ici même, début janvier : Etat des lieux sur la latence....
Nous traquons sans cesse les différentes causes de latence, afin de la réduire. Début janvier, nous avions repéré que la recherche d'amis/ennemis dans les listes de joueurs était très coûteuse en ressources système. Nous avons donc refondu le système pour qu'il soit moins gourmand. Nous avons donc vu une nette amélioration en janvier, puis les conditions de jeu ont recommencé à se dégrader, principalement plusieurs jours après la maintenance. La maintenance supplémentaire du vendredi a donc perduré, initialement prévue pour des raisons de sauvegardes de bases de données, nous l'avons conservée car elle permettait de donner un peu de souffle aux serveurs les vendredi soirs et samedi. Mais dès le dimanche, certains serveurs rencontraient de nouveau des problèmes de performance, et le lundi soir, les conditions de jeu étaient vraiment limite. Nous avons mis du temps à comprendre ce qui posait problème. Les temps de latence sur les serveurs de jeu étaient mauvais, bien que l’utilisation des ressources processeur n’était pas totale, et que la quantité de mémoire disponible était largement suffisante... Et même le réseau semblait tourner comme il faut. Il y avait donc du temps de calcul perdu quelque part dans le code. De plus, nous avions des fuites de mémoire, pas spécialement graves car il en restait suffisamment, mais troublant tout de même. La fuite de mémoire se remarque relativement simplement.. Aux périodes creuses, le jour d'une maintenance, et aux périodes creuses les jours suivants, la mémoire occupée grimpait tout de même de plusieurs dizaines de méga-octets par jour.

Nous sommes donc intervenus sur 2 points

- Tout d'abord, nous avons retravaillé sur le moteur du jeu. Imaginez, un code dont les prémices ont plus de 5 ans, avec une vingtaine de développeurs qui sont passés dessus, chacun ayant mis son petit morceau de code... Nous avons donc retravaillé une partie élémentaire, qui était en grande partie à l'origine des problèmes de lag, cette partie se situe au niveau des instructions 'retardées', ou 'timeouts', générés par le serveur. Prenons un exemple : votre personnage commence son tour, le serveur émet un timeout à 30 secondes pour forcer la fin du tour. Si vous finissez manuellement votre tour, ce timeout est tout de même présent, et s'annulera lors de son exécution, car le tour est déjà fini. Cependant il faut le traiter. De même, chaque instruction de l'IA émet un timeout pour 'simuler' la durée de l'animation du sort, et ainsi ne pas 'flooder' les joueurs avec toutes ses actions en moins d'une milliseconde... Bref au final, en heure de pointe, avec un bon millier de combats simultanés, nous avions un nombre de commandes 'retardées' très important. Et le noyau du serveur qui gérait ces commandes avait un peu de mal à assurer un débit cohérent, ce qui ralentissait tous les combats (mais pas le chat, par exemple, qui tournait sans ce système de retardement). La nouvelle version de cette partie du noyau donne des résultats bien plus optimisés, ce qui nous a permis de diminuer encore un peu les lags depuis la 1.23.
- Ensuite, nous avons retravaillé la compilation globale des serveurs, en enlevant pas mal d'informations de debuggage (qu'on réserve désormais pour le serveur de tests). Après ce lifting, nous avons pu éradiquer presque complètement le problème de fuite mémoire, ce qui nous donne un comportement du serveur beaucoup plus 'lisse' sur plusieurs journées de suite.

Nous avons donc 2 avantages notables à ces modifications. Tout d'abord, une amélioration nette des conditions de jeu. La latence des joueurs en soirée a nettement diminué, donc les conditions de jeu sont meilleures. Deuxième point, en retrouvant un comportement propre des serveurs, nous décidons de supprimer la maintenance du vendredi, ce qui aura deux effets positifs : éviter l'heure de coupure, et surtout, gagner ce temps pour les développeurs qui s'en occupaient pour travailler sur d'autres points.

Certains nous disent encore ramer systématiquement, nous continuons de travailler sur les problèmes de serveur, mais depuis la 1.23, nos logs nous indiquent bien une nette amélioration. Il faut savoir que nous ne nous contentons pas de surveiller les serveurs, le client flash que vous utilisez nous reporte son ping continuellement, ce qui nous permet d'avoir des indicateurs précis de la latence subie par les joueurs à un instant donné.

Parallèlement au post de Nimaoh sur ce devblog, voici quelques infos sur Dofus 2.0, en ce qui concerne les serveurs (Nimaoh se charge des explications sur la partie client). Notre objectif est d'avoir au moins l'identique qu'actuellement, en termes de fonctionnalités, de gameplay, de conditions de jeu (nombre de connectés, latence...). Evidemment nous allons même profiter de cette refonte pour optimiser ce que nous pouvons au sein du serveur.

Enfin, un petit mot concernant les récentes modifs du tacle, que certains jugent comme un nerf...
Le tacle n'a pas pour but de priver un monstre de son tour de jeu. Le tacle, c'est le fait de l'empêcher de bouger. En ce point, le tacle marche toujours (même mieux depuis les correctifs des petits bugs qui donnaient un résultat 'aléatoire' du tacle). Votre personnage blindé d'agilité sera toujours à même de tacler les monstres, et de les empêcher de bouger. C'est bien là la fonction du tacle ! Si les monstres ont une chance de s'enfuir, ils peuvent la tenter avant de taper. S'ils n'ont aucune chance, n'espérez plus qu'ils tentent le tacle 50 fois d'affilée. Quand on me dit qu'un monstre devrait préférer taper quelqu'un qui lui fait des dommages au lieu du double qui le tacle, oui, c'est un fait. Mais pour autant s'il n'a aucune chance d'esquiver le double, pas folle la guêpe, il va d'abord essayer de s'en débarrasser pour pouvoir se libérer ensuite. Qu'il préfère donc taper le sacrieur immunisé au lieu de tenter un tacle raté d'avance, c'est pas plus idiot..."

Par : billfr
http://devblog.dofus.com/fr/billets/40-amelioration-des-lags-maj-1-23-et-apres.html
égérie
égérie
Co-Admi
Co-Admi

Messages : 548
Date d'inscription : 31/01/2008
Age : 115
Localisation : sous le soleil exactement

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser