使用 Apache 避免 Subversion 中的双重压缩(解压缩)

使用 Apache 避免 Subversion 中的双重压缩(解压缩)

我有一台在 Windows 2003 上配置了 Apache 2.2 的 Subversion 1.8 服务器。这台服务器有点旧,而且它有很多 CPU 峰值,我怀疑这会影响它的性能。

该服务器完全致力于颠覆。

虽然我确实希望通过网络(输入和输出)进行数据压缩,但我想避免在此服务器中进行双重(解)压缩。

现在我正在使用以下两个指令。

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)

如果我只是在服务器中添加“SetInputFilter DEFLATE”,我不确定 Subversion 客户端是否会将其数据压缩到服务器。

有人有更多关于此的信息吗?

答案1

你几乎是对的,避免双重压缩的正确解决方案是:

# Let only mod_deflate handle compression
SVNCompressionLevel 0
SetOutputFilter DEFLATE

它禁用增量的 SVN 压缩,同时启用所有响应的 HTTP 压缩。

但有几个注意事项:

  1. Subversion 客户端不会压缩 HTTP 请求主体,因为它不知道服务器是否支持压缩。所以SetInputFilter DEFLATE没有必要。

  2. Apache HTTP Server 在启用压缩时在 mod_dav/mod_deflate 中发生内存泄漏,但并未宣传其支持 HTTP 压缩。

您还应该考虑执行转储/加载您的存储库以提高性能——新格式添加了一些索引/快捷方式,有助于服务器节省资源。

相关内容