2009-06-29 5 views
0

Ma question se rapporte aux coûts de cryptage d'OpenSSL pendant la charge, et voici le problème: Lorsque vous travaillez avec SSL sur IMAP4 (en utilisant une application que nous écrivons, une sorte de proxy IMAP4) , nous récupérons les messages de deux manières différentes: 1. aller chercher complètement. 2. extraction partielle (extraction de morceaux). Le premier tronçon du fetch partiel et du fetch complet est presque équivalent en effort pour l'application. Ce qui se passe, cependant, c'est que lorsque nous renvoyons les données au client (soit le corps entier ou seulement une partie de celui-ci), nous obtenons des temps de réponse ridicules en raison du cryptage SSL. Nous voyons clairement que plus les données sont grandes, plus le temps qu'OpenSSL utilise pour le chiffrer (linéaire à la taille, et plein ou partiel le montre magnifiquement.) Le problème n'est pas qu'il prenne plus de temps, mais le temps absolu prend). Cela nous amène à une situation dans laquelle la récupération complète de 80 Ko peut entraîner un temps de réponse de 7 secondes (contre un peu plus de 1 seconde lorsque vous n'utilisez PAS le protocole SSL). Est-ce que quelqu'un a déjà rencontré un problème similaire? Y a-t-il une chance que de tels frais généraux soient réalistes? Est-ce que quelqu'un a une idée pour accélérer les données au client (sans ajouter d'accélérateur externe)? Merci.Le cryptage OpenSSL prend beaucoup de temps en charge

Répondre

0

Puisque vous mentionnez que vous êtes produit est un proxy que vous avez écrit, je voudrais d'abord regarder si le problème peut être lié à Nagle's algorithm. Quand je vois les performances du socket tomber à travers le sol, c'est la première chose que je vérifie. Fondamentalement, vous devez vous assurer que vous écrivez et vider les données au bon endroit dans votre programme. Si vous le faites mal, par défaut, il y aura un délai de 0,2 seconde avant l'envoi des données. Ces retards s'accumulent rapidement, en particulier lors de petites demandes fréquentes.

Questions connexes