请问为什么tomcat7中已经配置了
compressionMinSize=2048
,但是没有生效,会导致我服务器的内存持续偏高。请问解决办法是什么?在此输入图片描述
我是否缺少任何隐藏设置?
但是它的所有请求在此处输入图像描述也被压缩了
Tomcat HTTP 连接器配置中的
compressionMinSize
属性指定应使用 gzip 或其他压缩算法压缩的响应的最小大小。以下是该属性的要点:
当您想要为较大的响应启用压缩以减少带宽使用并提高网络传输速度时,请使用
compressionMinSize
。压缩小响应有时会花费比节省的带宽更多的 CPU 时间,因此设置最小大小可以避免压缩非常小的文件。
启用压缩可以显着减小基于文本的响应(例如 HTML、JavaScript、CSS 等)的大小。这可以减少带宽使用并加快传输时间,尤其是在较慢的网络连接上。但是,压缩会产生 CPU 开销,因此仅压缩较大的响应可以在 CPU 使用率和带宽节省之间实现良好的权衡。
要验证压缩是否正常工作,请使用像curl这样的工具并检查响应标头是否有
Content-Encoding: gzip
。例如:
curl -I -H 'Accept-Encoding: gzip' http://yoursite.com
如果响应标头包含
Content-Encoding: gzip
,则压缩已启用并适用于该响应大小。
compressionMinSize
设置仅适用于大于指定大小的响应。在你的情况下是2048字节。较小的响应不会被压缩,即使它们的 MIME 类型列在 compressibleMimeType
中。
压缩通常对于基于文本的内容最有效。图像或压缩文件等二进制数据可能不会从压缩中受益匪浅。
如果使用 Tomcat 的 NIO 或 APR/Native 连接器并启用
sendfile
,则可以以未压缩的方式传输超过 48KB 的文件,以利用更高效的 sendfile
系统调用。