Un historique du matériel des serveurs de base de données d'EVE | EVE Online

Un historique du matériel des serveurs de base de données d'EVE

2022-04-19 - Publié par EVE Online Team

Avec des millions de transactions sur le marché et des centaines de milliers d'explosions chaque jour, continuer à faire tourner New Eden sans problèmes – et continuer à battre des records après presque 20 ans – est une tâche monumentale. Comme nos joueurs, nous sommes constamment en chasse de moyens pour repousser nos limites. Ces deux dernières années, nous avons apporté des modifications significatives au matériel derrière Tranquility, ce qui entraîne des records presque quotidiens de maintenance d'EVE (entre autres choses). Mais afin de voir où nous en sommes, il est important de regarder par où nous sommes passés.

En 2005, seulement 2 ans après son lancement, EVE battait déjà des records avec son univers unique exceptionnel. New Eden générait environ 1 250 appels à la base de données par seconde, soit environ 60 millions par jour ! Alors que de plus en plus de joueurs se connectaient, les serveurs peinaient à suivre. Les fonctionnalités du jeu prenaient plus de 20 secondes à charger, ce qui rendait chaque action dans New Eden, comme warper dans la galaxie, effectuer des transactions sur le marché au nouveau nœud commercial majeur Jita 4-4, et même améliorer votre vaisseau, bien plus compliquée.

La solution pour mettre fin à ce cauchemar se présentait sous la forme d'une boîte magique de Texas Memory Systems qui stockait les données sur des puces de mémoire vive. Cela n'avait pas vraiment de sens, coûtait très cher et promettait la lune. Il nous la fallait !

Quelques jours après avoir mis en production les nouveaux serveurs de base de données et le stockage, nous battions des records de PUS et les pilotes d'EVE profitaient d'une expérience de jeu plus fluide. Les forums se sont remplis de capsuliers bien plus heureux, et soudainement, le serveur pouvait gérer des combats de flottes massives en... 100v100 facilement. Oh, comme les temps ont changé !

Avançons jusqu'en 2009, New Eden était encore en train de se développer. Il n'y avait pas seulement plus de joueurs, mais c'est aussi à ce moment que les trous de ver ont été découverts pour la première fois. L'écosystème demandait plus de stockage et l'accumulation de débris spatiaux en utilisait déjà trop.

Étant si satisfaits de notre dernière aventure technologique, nous nous sommes à nouveau tournés vers Texas Memory Systems pour trouver la solution. Cette fois, nous avons emprunté une voie légèrement différente et choisi leur RamSan 500 [https://www.eveonline.com/news/view/apocrypharrrrrdware]avec une configuration massive de deux téraoctets ! Désormais, la totalité de la base de données d'EVE pouvait être stockée sur un disque SSD, ce qui était quasiment inédit à l'époque !

Texas Memory Systems étaient aussi enthousiastes que nous et nous avons réussi à convertir leur président, Woody Hutsell, en un membre fier de la Fédération gallente.

Puis 2011 est arrivé et, bien que le stockage était correct, il devenait clair que nos serveurs de base de données eux-mêmes commençaient à devenir notre principal goulot d'étranglement et à freiner l'expansion de l'univers d'EVE. Les habitants de New Eden ont été confrontés au redoutable mot de trois lettres : lag. Résoudre ce problème nécessitait une attaque sur plusieurs fronts qui a vu l'introduction de la dilatation du temps et d'autres optimisations. Mais en explorant les serveurs de base de données eux-mêmes, nous avons pensé : « Pourquoi penser à court terme ? Soyons à l'épreuve du futur pour tout ! »

Ce qui s'est passé ensuite était, à l'époque, l'une des mises à niveau les plus complètes que Tranquility et les jeux aient jamais connues : HyperThreading, c'est-à-dire la mise à niveau du CPU qui a pris TQ d'assaut.

Cette mise à jour monumentale a quadruplé la mémoire vive (de 128 Go DDR2 à 512 DDR3), révisé et mis à niveau le réseau et les systèmes de stockage (ce qui a triplé les vitesses de transfert), et augmenté le stockage de 2 To à 11,5 To ! Pour en savoir plus, lisez l'article que nous avons publié.

La guerre contre le lag est sans fin, et en 2015 nous avons décidé d'améliorer les choses encore plus avec le lancement de la mise à jour TQ Tech III ainsi que le déplacement physique des centres de données. Pour la première fois, nos serveurs de base de données ont pris la forme d'un nœud de flexion, le Lenovo x880 pour être exact. Il fallait donc augmenter la mémoire vive à 768 Go par nœud et utiliser des CPU e7-8893 v3 super rapides à 3,2 GHz.

Le module de stockage a également été renforcé par l'installation de nouveaux contrôleurs primaires SVC et de v5000 afin de consolider l'ensemble du stockage. Nous avons ajouté des SSD 9x 800 Go et des disques SAS 83x 1,2 To 10 k RPM. Ce nouveau matériel nous a permis de migrer lentement vers le nouveau centre de données avec un minimum de temps de maintenance et de décalage, afin de ne pas perturber les joueurs.

En 2016, peu après la mise à jour Tech III, nous avons découvert que les CPU à 4 cœurs ne nous donnaient pas ce dont nous avions besoin. Bien que ces CPU soient extrêmement rapides, ils n'ont tout simplement pas fourni à SQL suffisamment de worker threads pour satisfaire les demandes qui arrivaient. Nous avions besoin de plus de cœurs pour un tel niveau d'activité de la base de données. Nous avions une solution, mais elle était à la fois complexe et pleine de dangers ! Juste ce qu'on aime...

Nous avions quatre nœuds monster x880, deux pour la galaxie principale du jeu et deux pour un autre cluster de base de données qui héberge les autres bases de données. Ce cluster secondaire tournait effectivement au ralenti et ce que nous devions faire est devenu clair : empiler deux des nœuds de flexion et les réunir. Imaginez cela comme lorsque les Decepticons Constructicons fusionnent pour former le grand Devastator !

Cela a ramené le total de cœurs du serveur de base de données à 32 (des CPU 4x avec 4/8 cœurs hyperthreadés chacun) et une énorme mémoire vive de 1,5 To ! De plus gros combats, plus de transactions sur le marché et plus d'action à travers New Eden.

L'équipe des Opérations a donné une présentation lors du Fanfest de 2016 : Un jour dans le quotidien des Opérations. Ils ont diffusé des images réelles de cette fusion que vous pouvez voir ici :

Les choses se sont bien passées pendant les quatre années suivantes, à une exception près. Nous avions un problème récurrent lié à SQL et aux nœuds NUMA qui provoquait des plantages de serveur, des incohérences et des difficultés de dépannage. Étant donné la façon dont le côté serveur SQL est conçu, et parce que nous avions désormais quatre nœuds NUMA, nous nous retrouvions dans des situations où un nœud NUMA (ou un CPU) était au maximum et les autres au ralenti. Cela conduisait à des démarrages lents ou à une absence complète de démarrage. Nous avons finalement trouvé la cause du problème : un petit sous-ensemble des 15 000 connexions ouvertes à la base de données et la façon dont EVE les utilisait. Il y a deux manières principales d'améliorer les choses : plus de matériel ou de temps de développement.

Ou parfois, et c'est le cas ici, c'est le fait de fournir du matériel qui aide les développeurs à résoudre les problèmes du logiciel !

Arrivés à la moitié de l'année 2019, cette affaire de NUMA commençait à avoir un impact réel en dehors des basculements de base de données, conduisant à la multiplication de ce que nous appelons des « démarrages à froid », c'est-à-dire lorsque nous mettons la galaxie en ligne avec un cache mémoire de base de données vide. Nous n'aimons pas voir cela, car cela rend notre serveur vulnérable ; et EVE est sacrément impitoyable sur un serveur de base de données sans défense.

L'année 2019 est aussi celle durant laquelle nous avons découvert le tout-puissant AMD EYPC 7742, un nouveau système qui nous aiderait à résoudre ces problèmes récurrents une fois pour toutes. Nous avons eu la chance de rencontrer AMD lors d'une conférence sur les jeux vidéo et, à notre grande surprise, ils étaient ravis de travailler avec nous ! Ce n'est pas si surprenant en fait : les vaisseaux spatiaux sur Internet sont une affaire sérieuse après tout.

Très vite, nous avons mis en place le plus puissant serveur de base de données connu de CCP ! Un serveur 2U avec 2 To de mémoire et un seul CPU de 128 cœurs cadencé à 2,25 GHz et capable de monter à 3,4 GHz ! Cela fait beaucoup de puissance sous le capot.

Nous avons fait tourner ce serveur en production pendant plusieurs mois pour avoir une idée de son fonctionnement (qui ne fait pas de tests en production ?) et c'était un monstre absolu ! Bien qu'il se soit retrouvé en deux nœuds NUMA (Windows ne peut actuellement pas prendre en charge plus de 64 fils de matériel par nœud NUMA), cela n'a pas eu d'importance, car il a dévoré tout ce que nous lui avons donné et en a redemandé ! Tous nos problèmes par rapport à NUMA ont été traités facilement. Nous n'avions plus qu'un seul problème : le coût.

Nous avons essayé d'autres matériels, mais rien qui se rapproche de notre serveur AMD. Pour que tout fonctionne, nous avons analysé les données et réduit nos critères : deux supports et moins de 128 cœurs, mais plus de 32 pour permettre la croissance et les dépassements. Se situer au milieu nous a semblé la meilleure option, nous avons donc opté pour 64 cœurs. Maintenant, quelle quantité de mémoire peut-on faire rentrer dans la boîte ?!

On avance, on avance – nous sommes à la moitié de l'année 2020, et la rumeur court que quelqu'un achète tous les gros modules de mémoire pour alimenter ses services de cloud. Nous avons décidé que nous devions soit attendre, soit opter pour des puces plus petites. Nous avons donc choisi. Les boîtes ont 32 emplacements de mémoire et s'ils sont chacun remplis avec des puces de 128 Go vous devriez pouvoir voir quelque chose comme ça.

Mais 4 To de mémoire, est-ce que ça va vraiment régler le problème ? Blottis au milieu de toute cette mémoire se trouvent deux processeurs Intel Gold 6346 V3 cadencés à 3,6 GHz, ce qui nous donne un total de 64 cœurs sur deux nœuds NUMA. Les deux serveurs 2U à un prix pratiquement comparable à celui d'une Tesla sont des machines merveilleuses avec deux fois plus de cœurs de CPU, plus de deux fois plus de mémoire vive, deux fois plus de vitesse d'accès aux disques, et c'est du matériel de dernière génération par rapport à notre technologie précédente, vieille de 5 ans.

Nous avons décidé qu'ils avaient aussi besoin d'un moyen de se connecter au nouveau SAN - la vitesse du HBA devrait donc être augmentée également ! Attendez une minute... Un nouveau SAN ? Qui a parlé d'un nouveau SAN ?!

Pour nous assurer de pouvoir fournir la meilleure expérience possible, à la fois aux joueurs et aux développeurs, nous avons tout donné ! Nous avons remplacé des racks de SSD lents, des centaines de disques SAS 10 k, et ce qui semblait être un nombre infini de contrôleurs. À leur place, nous avons installé une boîte super élégante et incroyablement rapide de modules NVMe de 9,6 To ! (Deux en fait, nous avons besoin de haute disponibilité après tout.) Cette mise à niveau du SAN n'a pas seulement concerné le stockage brut, elle a également eu un impact sur la manière dont nous nous y connectons. Nous sommes passés de commutateurs à fibre optique de 16 Go/s à 32 Go/s ! Cela a réduit de moitié la durée de notre travail de maintenance. Les sauvegardes sont maintenant effectuées en un peu plus de 30 minutes.

Et curieusement, il semblerait qu'IBM ait racheté Texas Memory Instruments il y a quelque temps. Ainsi, bien que nous n'ayons pas cherché un autre RamSan, les étoiles se sont alignées pour qu'il en soit ainsi. Flash System 7200 est son nom et rendre les bases de données plus rapides est son but !



Voici quelques images de la précédente génération de matériel SAN que nous avons retirée.




Cela fait maintenant plusieurs mois que nous avons lancé la production des nouveaux serveurs de base de données, et nous avons aussi battu de nombreux records d'arrêt/démarrage. Le nouveau matériel fonctionne à merveille, notamment grâce à l'intelligence des développeurs d'EVE qui ont corrigé les problèmes de NUMA quelques semaines avant que ces machines n'atterrissent enfin dans notre centre de données !

Merci de nous avoir accompagnés dans ce voyage historique à travers presque 20 ans d'évolution du matériel de base de données d'EVE. Nous espérons que vous avez apprécié ce retour dans le passé autant que nous. Nous avons hâte de voir les changements des bases de données que nous réserve l'avenir ! MySQL ? NoSQL ? YourSQL ? Quoi que ce soit, ce sera là pour veiller à ce que les vaisseaux spatiaux sur Internet restent une affaire sérieuse !

PS : Aucun hamster n'a été blessé avant, pendant ou après la rédaction de cet article. Les travailleurs de la génération précédente sont toujours mis à la retraite avec l'honneur et le respect qu'ils méritent, dans cette grande ferme (sans serveur cloud) dans le ciel.

🔍