У меня есть сервер Subversion 1.8, настроенный с Apache 2.2 на Windows 2003. Сервер, который у меня есть, немного стар, и у него много пиков загрузки процессора, которые, как я подозреваю, влияют на его производительность.
Этот сервер полностью посвящен подрывной деятельности.
Хотя я хочу иметь сжатие данных по сети (ввод и вывод), я хочу избежать двойного (де) сжатия на этом сервере.
Сейчас я использую следующие 2 директивы.
SVNCompressionLevel 5
SetOutputFilter DEFLATE
Я думал об отключении одного из них, но не смог найти рекомендации, какой из них лучше. Я тоже хочу иметь сжатие от клиента к серверу. Я подумал об использовании одного из этих двух вариантов:
# Let only mod_dav_svn handle compression
SVNCompressionLevel 5
# no SetOutputFilter or SetInputFilter
или
# Let only mod_deflate handle compression
SVNCompressionLevel 0
SetOutputFilter DEFLATE
SetInputFilter DEFLATE #(new idea)
Я не уверен, сжимает ли клиент Subversion свои данные на сервер, если я просто добавлю на сервере SetInputFilter DEFLATE.
У кого-нибудь есть дополнительная информация по этому поводу?
Вы почти правы и правильное решение, позволяющее избежать двойного сжатия:
# Let only mod_deflate handle compression
SVNCompressionLevel 0
SetOutputFilter DEFLATE
Он отключает сжатие SVN для дельт при включении сжатия HTTP для всех ответов.
Но есть несколько предостережений:
Клиент Subversion не сжимает тело HTTP-запроса, так как не знает, поддерживается ли сжатие сервером. Так SetInputFilter DEFLATE
не нужен.
HTTP-сервер Apache имеет утечку памяти в mod_dav / mod_deflate, когда сжатие включено, при этом не сообщается, что он поддерживает HTTP-сжатие.
Также вам следует подумать о выполнении дампа / загрузки вашего репозитория для повышения производительности - новые форматы добавляют некоторые индексации / ярлыки, которые помогают расходовать меньше ресурсов.