TwinXeon by Renaudet
Le Blog de TwinXeon
Archives
Mise à jour importante sur TwinXeon   (précédent)

Deux mises à jour de taille sur le serveur TwinXeon ces derniers jours :

- le support de SSL avec un certificat auto-signé de checksum MD5 :

FA:D9:50:B3:20:D6:68:C7:F6:E3:20:64:7F:30:97:CF

- le support de HTTP/1.1

Cela faisait très longtemps que je souhaitais implémenter ce dernier support, pour des raisons évidentes de performance, mais le peu de documentation sérieuse sur le principe du pipelining de connexion HTTP m'avait jusque là découragé.

J'avais réalisé un petit test en 2013 sur un code très simple, ce qui m'avait permis d'en comprendre le principe, mais j'avais très peur de devoir ré-écrire tout le code du serveur de TwinXeon.

En fait, la modification a été bien plus simple que prévue, et les premiers tests réalisés sur Firefox et Internet Explorer montrent bien une amélioration du temps de chargement des pages les plus lourdes. Pour Firefox par exemple, cela permet d'économiser la création de connexions dès lors que le nombre de ressources à charger pour une même page est supérieur à 6 ou 7. Sur la page de la galerie de photos 'les buildings' de New York par exemple, l'amélioration du temps de chargement de la page est saisissant (moins de 3 secondes alors que la page comporte près de 70 photo réduites d'une vingtaine de ko chacune.



La copie d'écran Firefox précédente montre bien les requêtes partant par groupe de 6. Si l'on regarde de plus près, le temps d'attente d'une requête du second groupe correspond au temps de chargement de l'une des requêtes du premier groupe, et ainsi de suite. Dans les traces de TwinXeon, on retrouve cet effet dans les identifiants de Thread. En effet, par défaut, chaque THread du serveur HTTP se voit renommé avec le numéro de la requête. En HTTP 1.0, il ne peut donc pas y avoir deux requêtes associées au même identifiant de thread. Mais en HTTP 1.1, si :

02:03-15:51:53:717 HttpServer_1614 200 GET /galeries/voyages/ny3/galery.html
02:03-15:51:53:936 HttpServer_1618 200 GET /galeries/voyages/ny3/small/IMG_1743.jpg
02:03-15:51:53:936 HttpServer_1614 200 GET /galeries/voyages/ny3/small/IMG_1719.jpg
02:03-15:51:53:936 HttpServer_1616 200 GET /galeries/voyages/ny3/small/IMG_1725a.jpg
02:03-15:51:53:936 HttpServer_1617 200 GET /galeries/voyages/ny3/small/IMG_1731.jpg
02:03-15:51:53:936 HttpServer_1615 200 GET /galeries/voyages/ny3/small/IMG_1722.jpg
02:03-15:51:53:936 HttpServer_1619 200 GET /galeries/voyages/ny3/small/IMG_1749.jpg
02:03-15:51:54:139 HttpServer_1618 200 GET /galeries/voyages/ny3/small/IMG_1758.jpg
02:03-15:51:54:139 HttpServer_1614 200 GET /galeries/voyages/ny3/small/IMG_1752a.jpg
02:03-15:51:54:154 HttpServer_1617 200 GET /galeries/voyages/ny3/small/IMG_1771.jpg
02:03-15:51:54:154 HttpServer_1615 200 GET /galeries/voyages/ny3/small/IMG_1774.jpg
02:03-15:51:54:154 HttpServer_1616 200 GET /galeries/voyages/ny3/small/IMG_1761.jpg
02:03-15:51:54:154 HttpServer_1619 200 GET /galeries/voyages/ny3/small/IMG_1776.jpg
02:03-15:51:54:326 HttpServer_1614 200 GET /galeries/voyages/ny3/small/IMG_1788.jpg
02:03-15:51:54:326 HttpServer_1618 200 GET /galeries/voyages/ny3/small/IMG_1779.jpg
02:03-15:51:54:357 HttpServer_1617 200 GET /galeries/voyages/ny3/small/IMG_1791.jpg
02:03-15:51:54:357 HttpServer_1615 200 GET /galeries/voyages/ny3/small/IMG_1806.jpg
02:03-15:51:54:357 HttpServer_1616 200 GET /galeries/voyages/ny3/small/IMG_1809.jpg
02:03-15:51:54:357 HttpServer_1619 200 GET /galeries/voyages/ny3/small/IMG_1822a.jpg
02:03-15:51:54:513 HttpServer_1614 200 GET /galeries/voyages/ny3/small/IMG_1842.jpg
02:03-15:51:54:513 HttpServer_1618 200 GET /galeries/voyages/ny3/small/IMG_1836.jpg
02:03-15:51:54:560 HttpServer_1615 200 GET /galeries/voyages/ny3/small/IMG_1849a.jpg
02:03-15:51:54:560 HttpServer_1619 200 GET /galeries/voyages/ny3/small/IMG_1860.jpg
02:03-15:51:54:560 HttpServer_1616 200 GET /galeries/voyages/ny3/small/IMG_1858.jpg
02:03-15:51:54:560 HttpServer_1617 200 GET /galeries/voyages/ny3/small/IMG_1845.jpg
02:03-15:51:54:700 HttpServer_1614 200 GET /galeries/voyages/ny3/small/IMG_1865.jpg
02:03-15:51:54:700 HttpServer_1618 200 GET /galeries/voyages/ny3/small/IMG_1875.jpg
02:03-15:51:54:747 HttpServer_1615 200 GET /galeries/voyages/ny3/small/IMG_1885.jpg



Par Nicolas Renaudet, le 02/03/2014 14:45
Ajoutez votre commentaire :
  Votre pseudo :
  Votre adresse mail (obligatoire):
  Votre commentaire :
 
 
Site optimisé pour un affichage en 800x600 sous Firefox 8.x - ©Copyright 2011-2012 by Nicolas Renaudet