Ca rame...
Vous êtes nombreux à vous plaindre du lag, à ce sujet j'aimerais donner quelques précisions. Nous travaillons sur plusieurs fronts à la fois pour améliorer les choses.
Tout d'abord, l'hébergement. Ce n'est pas la cause principale du lag, mais ca limite l'ouverture de nouveaux serveurs et avoir plus de réserves sera forcément bénéfique. Nous avons prévu ça pour ce début d'année, ca va bientôt arriver. Ca fait 2 mois qu'on l'annonce, ca ne peut hélas pas se faire du jour au lendemain. On ne peut pas dire d'un coup 'on déménage', il faut préparer les serveurs de l'autre côté, tester les performances qui ont encore un peu de mal, paramétrer tout un tas de trucs réseau, installer les sécurités, et j'esquive tous les problèmes administratifs que cela génère. Je n'ai pas de date à vous donner encore, hélas, mais ca se fera très bientôt.
Concernant les serveurs, on profite du changement d'hébergeur pour tous les renouveller. Mais ca ne changera pas énormément de choses niveau performances du jeu directement, actuellement même au pire moment de la journée les serveurs ne sont pas à 100% d'utilisation.
Il y a deux types de lag, voire trois si on veut prendre en compte tous les éléments.
Tout d'abord, le lag réseau. Au niveau du serveur rien à redire, tout va, mais pourtant nous voyons bien que vous avez des pings moisis. Ceci peut provenir de plusieurs choses. Soit c'est tout le monde, donc là ca vient de l'hébergeur, soit un incident au niveau de ses fibres, soit un truc louche en train de se passer. Si ca ne concerne pas tout le monde, ca peut alors provenir d'un lien problématique avec un fournisseur d'accès particulier. Les fournisseurs d'accès partagent leurs lignes entre eux, donc un problème chez Free peut impacter également des abonnés n9uf, Club-internet ou d'autres, de même qu'un problème chez France Télécom peut impacter Wanadoo, mais aussi d'autres FAI, voire même des FAI étrangers qui transitent par des fournisseurs français pour accéder à nos serveurs. Enfin, si ca ne concerne que vous, il s'agis d'un problème très local, soit chez vous, soit sur le DSLAM ou équialent que vous utilisez qui peut avoir un problème.
Attention, des microcoupures, ca arrive partout, même si votre MSN reste apparamment connecté, ca ne veut pas dire qu'une déco de Dofus est forcément de la faute de notre hébergeur. Le truc c'est que MSN se reconnecte en une demi seconde, là où pour Dofus, c'est flagrant, faut le faire à la main. De plus, en naviguant sur des sites, entre 2 clics sur des liens, une microcoupure n'a aucun impact. Sur Dofus, c'est une connexion permanente qu'il faut, une coupure et c'est le drame. Nous continuons à tester une solution qui permettrait une reconnexion en cours de combat, cette solution étant nécessaire avant le lancement su serveur héroïque, mais ce n'est pas encore parfaitement au point. Hélas Dofus n'a pas été pensé comme ça au départ, il y a donc 4 ou 5 années de code à adapter...
Le second cas de lag est le lag 'résiduel'. C'est un lag constant au niveau du serveur, ce qui arrive en général lorsque le système commence à saturer. En général, après une semaine sans coupure, c'est fréquent qu'on voie apparaitre un lag résiduel. Ce lag est en général minimal, et presque invisible, car c'est quelques dizaines de millisecondes de plus que d'habitude. Dès que cette latence (que nous voyons en temps réel, il s'agit du temps entre la reception de l'instruction du client flash que vous utilisez et son traitement effectif par le serveur) dépasse un certaint point, en général on commence à intervenir. On vérifie s'il n'y a pas trop de messages de chat, si c'est le cas on le limite. S'il y a trop de monde sur certaines cartes, on les rend 'instanciées' (c'est à dire que seul un peronnage peut s'y trouver à la fois, les autres personnages ne vous voient pas et vous ne les voyez pas, sur cette carte précise). Enfin, si ca persiste, en général on relance le serveur pour purger et libérer la mémoire et les ressources.
La correction apportée ce 4 janvier sur les recherches d'amis était un des cas de ce lag résiduel, car la recherche prenait trop de temps, et avec plusieurs milliers de connectés, il n'était pas rare d'avoir plusieurs recherches lentes qui arrivaient dans la même seconde, et tout le monde en patissait.
Enfin, le dernier cas, plus génant, sont les pics de lag, de plusieurs secondes voire dizaines de secondes. Ces cas sont relativement peu fréquents (en période de forte affluence, nous en voyons 3 ou 4 par heure sur certains serveurs fort peuplés) et durent peu (en général, 1 à 2 minutes). Nous avons identifié une partie des problèmes, qui seront résolus avec le nouvel hébergeur, il s'agit d'un trop grand nombre de paquets en cours d'envoi par le serveur. Ce n'est pas simplement un problème de bande passante, les serveurs dépassent rarement le Mo/s alors que la liaison est 20 fois plus rapide, mais plus du nombre de petits paquets qui transitent. autant envoyer un paquet de 10000 octets c'est rapide, envoyer 10000 paquets d'1 octet c'est plus lourd à traiter, surtout quand ca ne concerne pas 1 mais plusieurs milliers de destinataires distincts. Ce lag est ponctuel, mais très visible et très génant.
Nous avons mis en place une sorte de 'sniffeur' qui analyse spécifiquement le traffic lors de pics de lags de ce genre. Nous avons déjà eu des données très précises sur les différents points à améliorer, et les développeurs modifient point par point chaque source potentielle de lag.
Nous espérons donc avoir rapidement de bonnes améliorations à ce sujet. Le nouvel hébergeur permettra de gagner beaucoup de lest, car l'ensemble des structures réseau sera doublé et une répartition des charges sera faite en temps réel.
De plus, nous avons pas mal de modifications en cours de finalisation, que nous mettons en ligne à chaque maintenance hebdomadaire, même si c'est invisible pour vous, afin de regrouper les petits paquets en des messages plus gros, mais moins nombreux. L'idée est simple mais sa mise en oeuvre ne l'est pas forcément. Si on a un petit paquet à envoyer, on peut se dire qu'il vaut mieux attendre pour le faire pour le grouper avec d'autres paquets. Mais en ce faisant, on génère un lag pour le destinataire, qui attend la donnée... Nous devons donc différentier ces paquets selon leur importance, pour envoyer directement ce qui est urgent, et tenter ces regroupements sur ce qui l'est moins.
Enfin, ces deux dernières semaines ont été plus touchées que d'habitude car en période de vacances, l'affluence ne se situe pas uniquement de 18 à 20h, mais est constante toute la journée... Ce qui a forcément contribué aux lags ressentis, mais nous a permis d'un autre côté de rassembler beaucoup plus d'informations et de traquer un grand nombre de causes potentielles de lag. S'il n'y avait eu qu'une chose responsable, ca ferait longtemps qu'on l'aurait vue et corrigée, il s'agit cependant de nombreuses petites choses distinctes qui, lorsqu'elles se produisent au même moment, génèrent un pic de lag.
Voilà, un dernier mot, un aparté sur les maintenances du mardi/vendredi. Ces maintenances, même si nous n'ajoutons pas d'éléments au jeu, apportent systématiquement des modifications du serveur. Elles servent en outre à faire du ménage dans les bases de données des personnages, à purger la mémoire des serveurs, à effectuer des maintenances sur les disques, passer de gros traitements sur les bases de données de connexion. Sans ces maintenances, les files d'attente et autres trucs chiants seraient dix fois plus fréquents.
Il arrive donc qu'un bug apparaisse au gré d'une maintenance, même prévue pour ne pas apporter de modification notable au jeu. Dans ces cas, selon la sévérité du bug et le temps qu'on le voie et le corrige, on doit relancer les serveurs, ou si le problème n'est pas 'critique', on attend la maintenance suivante. Mais l'intention de départ, la modification apportée, était une amélioration, que ce soit au niveau performances, fiabilité ou sécurité.
'Fin bon, voilà, ne me tenez pas rigeur des fautes d'orthographe, il est tard et je doute que Sylfaen me relise ce soir. J'espère avoir apporté quelques réponses et de l'espoir quant aux solutions prochaines que nous prévoyons.