我有一台在 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 压缩。
但有几个注意事项:
Subversion 客户端不会压缩 HTTP 请求主体,因为它不知道服务器是否支持压缩。所以
SetInputFilter DEFLATE
没有必要。Apache HTTP Server 在启用压缩时在 mod_dav/mod_deflate 中发生内存泄漏,但并未宣传其支持 HTTP 压缩。
您还应该考虑执行转储/加载您的存储库以提高性能——新格式添加了一些索引/快捷方式,有助于服务器节省资源。