Сервер SVN в нашей компании, которая является сам установка и размещена на EC2, является довольно медленным. Установка основана на Apache и mod_dav_svn. Существует также выполнение svnserve, которое, кажется, используется системой CI. Мы можем получить доступ к репозиториям с помощью SSL с сервером и клиентскими сертификатами, и я заметил странную вещь при контроле фиксации с Wireshark.
Я ожидал бы, что существует квитирование SSL для установления соединения и что то соединение снова используется по сессии. Однако кажется, что каждый 200ms/10kb там является новым соединением TCP с новым квитированием SSL (который из-за сертификатов procuses более высокая полезная нагрузка, чем сам трафик SVN).
Переговоры во время фиксации SVN. Обратите внимание на то, что для каждого соединения существует самое большее 10 КБ переданных данных.
Начните фиксации как пакеты. Насколько я могу сказать, что сервер отправляет зашифрованное предупреждение для закрытия соединения SSL. Затем Вы видите следующее квитирование...
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>
Я использую клиенты TortoiseSVN GUI/cli. Мое предположение она, что существует неправильная конфигурация в стороне сервера, Вы соглашаетесь? Какие-либо подсказки?
Хорошо, я уже нашел решение для этих повторных подключений и не удаляю вопрос на случай его ищет кто-то другой.
httpd.conf
-KeepAlive Off
+KeepAlive On
-MaxKeepAliveRequests 100
+MaxKeepAliveRequests 1000
Если KeepAlive выключен, Apache закрывает соединение после каждого запроса, поэтому мы видели так много повторных подключений и сертификатов.
Эти и некоторые другие советы по производительности могут быть найдено в руководстве по SVN