Dimensionner un pod
Des constantes mesurées, un calculateur, et ce que le modèle suppose.
Les constantes d'un pod
Mesurées par capacity.mjs en production, Node
v26.10.0, commit 7e994abd, le
2026-10-02 : 3 runs de 8 s par
constante, messages WebSocket de 1 024 octets, serveur saturé (ELU relevé pendant la charge). Une constante dont les runs
divergent de plus de ±5 %, ou dont l'ELU n'a pas été relevé, n'est
pas affichée. Le CPU du fil principal vient de la campagne de comparaison, pas de ce banc ;
le débit HTTP d'un pod aussi — ce banc charge le serveur depuis un client Node, plus lent
que wrk, et son débit HTTP n'est pas publié.
L'écho WebSocket en clair sort plus lent qu'en TLS sur ce banc
(35 367 contre 45 947 msg/s). Ce n'est pas un
gain du TLS : c'est la façon dont Node lit un trafic en rafale (ici 16
messages en vol par socket), reproduite sur un serveur ws nu, sans Nodefony. Le
déchiffrement remet au serveur des blocs qui portent plusieurs messages ; en clair, chaque
segment le réveille presque seul — un appel système, un rappel, une analyse de trame. Mesuré
sur le serveur nu, en messages par lecture : 6,8 contre 2,4 à 5 octets,
5,4 contre 2,2 à 1 Ko. Le coût fixe d'une lecture domine tant que les
messages sont petits ; à 4 Ko le clair repasse devant (~45 000 contre ~40 000 msg/s, séries
séparées). Preuve rejouable : ws-tls-batching.mjs.