SVN sobre SSL: muchas reconexiones al confirmar

SVN sobre SSL: muchas reconexiones al confirmar

El servidor SVN de nuestra empresa, que se configura automáticamente y está alojado en EC2, es bastante lento. La configuración se basa en Apache y mod_dav_svn. También hay un svnserve en ejecución que parece ser utilizado por el sistema CI. Podemos acceder a los repositorios usando SSL con certificados de servidor y de cliente y noté algo extraño mientras monitoreaba una confirmación con Wireshark.

Habría esperado que hubiera un protocolo de enlace SSL para establecer la conexión y que esa conexión se reutilizara durante la sesión. Sin embargo, parece que cada 200 ms/10 kb hay una nueva conexión TCP con un nuevo protocolo de enlace SSL (que debido a los certificados genera una carga útil mayor que el tráfico SVN en sí).

Conversaciones durante una confirmación SVN. Tenga en cuenta que por cada conexión se transfieren como máximo 10 kb de datos.

conversaciones durante una confirmación

Comienzo del compromiso como paquetes. Por lo que puedo decir, el servidor envía una alerta cifrada para cerrar la conexión SSL. Entonces ves el siguiente apretón de manos...

ingrese la descripción de la imagen aquí

Apache ssl.conf:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

SSLVerifyClient optional
SSLUserName SSL_CLIENT_S_DN_CN
SSLCARevocationFile /etc/httpd/ssl/xxx-revoke.pem

<Location /svn/repos>
    DAV svn
    SVNPath /path/svn/repos
    SSLRequireSSL
    SSLRequire (%{SSL_CLIENT_S_DN_O} in {"c1", "c2"}) and !(%{SSL_CLIENT_S_DN_CN} in {"old1", "old2"})

   # Allow large files
   LimitXMLRequestBody 0
   LimitRequestBody 0
</Location>

Estoy usando clientes TortoiseSVN GUI/cli. Supongo que hay una configuración incorrecta en el lado del servidor, ¿estás de acuerdo? ¿Alguna pista?

Respuesta1

Ok, ya encontré la solución a esas reconexiones y no borre la pregunta en caso de que alguien más la busque.

httpd.conf

-KeepAlive Off
+KeepAlive On

-MaxKeepAliveRequests 100
+MaxKeepAliveRequests 1000

Si KeepAlive está desactivado, Apache cierra la conexión después de cada solicitud, razón por la cual vimos tantas reconexiones y certificados.

Estos y algunos otros consejos de rendimiento se pueden encontrar en elmanual SVN

información relacionada