Let's Encrypt migre les serveurs de base de données vers AMD EPYC



Serveur interne Dell PowerEdge R7525 2U. Deux rectangles argentés au milieu sont des processeurs AMD EPYC 7542. Au-dessus et en dessous se trouvent des bandes de RAM de 64 Go. Sur le bord gauche de la photo, il y a 24 disques NVMe, cela n'est possible que sur EPYC



Let's Encrypt - la plus grande autorité de certification sur Internet, plus de 235 millions de sites Web fonctionnent sur ses certificats TLS gratuits . Au cœur de l'AC se trouve la base de données sur laquelle les certificats sont gérés. Il est important que ses performances soient à la hauteur, sinon nous verrons des erreurs d'API et des délais d'expiration lors de l'émission de certificats.



Fin 2020, l'organisation à but non lucratif a mis à niveau ses serveurs.



Le logiciel de base de Let's Encrypt est le CA open source de Boulder avec le support ACME. Il utilise des schémas et des requêtes de style MySQL pour gérer les comptes d'utilisateurs et l'ensemble du processus d'émission de certificats. L'autorité de certification open source fonctionne avec une base de données MySQL, MariaDB ou Percona. Utilisation actuelle de MariaDB avec le moteur InnoDB.



L'AC fonctionne avec une seule base de données pour minimiser la complexité. Les développeurs disent que c'est bon pour la sécurité, la fiabilité et la facilité de maintenance. Let's Encrypt a plusieurs répliques de base de données actives à un moment donné, et certaines lectures sont dirigées vers les serveurs de répliques pour réduire la charge sur la base de données principale.



Une des conséquences de cette conception est que les serveurs doivent être suffisamment puissants. Si les serveurs ne faisaient pas face, alors à la fin Let's Encrypt devrait diviser une base de données en plusieurs, mais la mise à niveau a permis d'éviter cela.



Caractéristiques



Les anciens serveurs étaient puissants, mais atteignaient régulièrement des performances optimales. Pour la nouvelle génération, l'objectif est de plus que doubler presque toutes les mesures de performances dans le même facteur de forme 2U. Pour ce faire, ils ont choisi les processeurs AMD EPYC et ont considéré le serveur Dell PowerEdge R7525 comme la meilleure option . Voici ses caractéristiques techniques, en comparaison avec les anciens serveurs:



La génération précédente Nouvelle génération
CPU 2x Intel Xeon E5-2650

Total 24 cœurs / 48 threads
2x AMD EPYC 7542

64 / 128

1  2400MT/ 2  3200MT/
24x 3,8  Samsung PM883

SATA SSD

560/540 / /
24x 6,4  Intel P4610

NVMe SSD

3200/3200 / /


Comme vous pouvez le voir, le nombre de cœurs et la quantité de mémoire ont vraiment doublé, et les performances du SSD ont nominalement augmenté de plus de cinq fois.





1 - poignée, 2 - module d'extension riser 1, 3 - premier bloc d'alimentation, 4 - module d'extension riser 2, 5 - dissipateur thermique pour le premier processeur, 6 - emplacements DIMM pour le premier processeur, 7 - ventilateurs, 8 - étiquette de service, 9 - panneau arrière et carte mère SSD, 10 - cage de ventilation, 11 - emplacements DIMM pour le deuxième processeur, 12 - dissipateur thermique pour le deuxième processeur, 13 - carte mère, 14 - alimentation électrique, 15 - module d'extension Riser 3, 16 - Riser 4 modules d'extension



Chaque serveur dispose de deux processeurs AMD EPYC pour un total de 64 cœurs physiques. Vitesse d'horloge de 2,9 GHz jusqu'à 3,4 GHz sous charge. Plus important encore, EPYC fournit 128 voies PCIe v4.0. Cela permet à 24 disques NVMe de tenir dans une machine. Ce sont des disques incroyablement rapides (5,7 fois plus rapides que les SSD SATA sur les serveurs de la génération précédente) car ils utilisent PCIe au lieu de SATA. Le nombre de voies PCIe est généralement assez limité: les processeurs traditionnels n'ont généralement que 16 voies, tandis que les puces Intel Xeon en ont 48. Ici, les processeurs AMD EPYC se comparent favorablement à 128 voies PCIe par puce, ce qui permet d'installer un grand nombre de disques NVMe sur chaque machine.



Impact sur la performance



Let's Encrypt donne le temps moyen de traitement des demandes, car cette métrique est ressentie le plus fortement par les utilisateurs. Avant la mise à jour, la demande d'API médiane prenait environ 90 ms. Après la mise à niveau - environ 9 ms!







Dans le graphique suivant, vous pouvez voir que les anciens processeurs fonctionnaient à leurs limites. Dans la semaine précédant la mise à niveau, la charge du processeur sur le serveur de base de données principal (à partir de / proc / stat) était en moyenne de plus de 90%: les







nouveaux processeurs AMD EPYC fonctionnent à environ 25% de leur capacité maximale. Cela peut être vu dans le graphique où, le 15 septembre, le nouveau serveur a été promu de réplique (lecture seule) à principal (lecture / écriture).







La mise à jour a considérablement réduit la latence globale de la base de données. Le temps de réponse moyen (à partir de INFORMATION_SCHEMA) était d'environ 0,45 ms.







Désormais, les demandes sont traitées en moyenne trois fois plus rapidement, en environ 0,15 ms.







OpenZFS et NVMe



Les disques NVMe sont de plus en plus populaires aujourd'hui pour leurs performances incroyables. Cependant, jusqu'à récemment, il était presque impossible de mettre beaucoup de NVMe sur un serveur, car ils utilisent des voies PCIe et le processeur prend en charge un nombre limité de telles voies, comme nous l'avons dit. Intel Xeon prend en charge 48 voies PCIe v3, et certaines d'entre elles sont utilisées par le chipset, la carte réseau et le GPU. Il reste peu de lignes pour NVMe.



La dernière génération de processeurs AMD EPYC prend en charge 128 voies PCIe - plus du double d'Intel, et c'est PCIe v4! Cela suffit pour emballer un serveur 2U avec des disques NVMe (Dell a 24 pièces).



Lorsque vous avez un serveur plein de disques NVMe, vous devez décider comment les gérer. Dans la génération précédente de serveurs Let's Encrypt, le RAID matériel était organisé dans une configuration RAID-10, mais il n'y a pas de RAID matériel efficace pour NVMe, il fallait donc trouver une autre solution. Le RAID logiciel (mdraid sous Linux) était considéré comme l'une des options, mais les développeurs ont été avisés d'OpenZFS. Ils ont décidé d'essayer et sont très satisfaits du résultat.



Ils disent qu'il y a peu d'informations sur Internet sur la meilleure façon de régler et d'optimiser OpenZFS pour les pools de disques NVMe et les charges de travail de base de données, ils ont donc documenté leurs expériences en détail . Ce sera peut-être utile à quelqu'un.



Let's Encrypt dit que cette mise à niveau était nécessaire et dans un sens forcée, car le nombre d'utilisateurs de la CA gratuite augmente constamment, tout comme le nombre de certificats TLS émis. Les serveurs sont assez chers et la mise à niveau a présenté un sérieux défi technique pour les ingénieurs de l'organisation, mais tout s'est bien passé.



Let's Encrypt est une autorité de certification à but non lucratif qui est financée par des parrainages et des dons individuels .



All Articles