Cloudflare a libéré environ 100 téraoctets de RAM dans sa flotte de serveurs mondiaux en repensant la disposition mémoire de ses entrées de cache DNS, en particulier pour le résolveur DNS 1.1.1.1.
Un octet coûte 250 gigaoctets
Le levier est à l’échelle : Cloudflare détient plus de 250 milliards d’entrées DNS en cache à tout moment. Donc même un seul octet gaspillé par entrée coûte plus de 250 gigaoctets de mémoire de flotte. Cinq optimisations de niveau Rust ont réduit l’empreinte mémoire par entrée de 56 pour cent.
Tranches fixes au lieu de conteneurs cultivables
- Remplacer les contenants de Vec et String cultivables de Rust par des tranches de taille fixe en boîte permet d’économiser plus de 15 TB par lui-même.
- Les trois listes d’enregistrement dans chaque réponse DNS sont effondrées en un seul tampon, traitées par des décalages de 2 octets.
- Les données enregistrées sont stockées sous forme d’octets bruts préfixés en longueur au format fil.
Plus vite, pas plus lentement
Les économies n’ont pas été réalisées au prix de la vitesse. Grâce à moins d’allocations et à une meilleure localisation de la mémoire, le débit d’insertion a augmenté de 43 %, tandis que la latence de recherche a chuté de 19 %.
Quel est le problème? Golem.de.


















