gzip压缩的Apache响应分组分析
-
11-07-2019 - |
题
启用gzip压缩在我的Apache服务器之后(mod_deflate模块)我发现一致的是最终用户正在上比未压缩的响应较慢的平均200毫秒提供服务。
这是出乎意料的,所以我修改了压缩指令仅压缩文本/ HTML的响应,发射了Wireshark的,看着网络转储压缩前后。
下面是我的意见的 GET 的最小流量的网络中
压缩之前
Transactions on the wire: 46 Total time for 46 trans: 791ms i. TCP seq/ack: 14ms ii. 1st data segment: 693ms iii. Remaining: 83ms (27/28 data units transferred + tcp/ip handshakes)
压缩后
Transactions on the wire: 10 Total time for 46 trans: 926ms i. TCP seq/ack: 14ms ii. 1st data segment: 746ms iii. Remaining: 165ms (5 out of 6 data units transfered)压缩被设定
后可以清楚和理解的是,在金属丝的事务的数目比未压缩显著低。
然而,压缩数据部花更长时间来从源传输到目的地。
看来,压缩的额外的工作可以理解的服用时间,但不明白为什么发送的每个数据是在被压缩时显著慢。
我的压缩过程的理解是:
1. GET Request is received by Apache 2. Apache identifies resource 3. Compress the resource 4. Respond with compressed response
使用此方案,我假设第三步骤是(因为我们的响应的第一个段之前的步骤将需要较长的时间 - 的压缩+响应 - 但其余组块的我假定应就等于平均时间作为未压缩块,但它们不是。
谁能告诉我为什么......或者提出一个更好的方法来分析这种情况。也没有任何人前后对比有...我将不胜感激任何反馈/评论/问题
解决方案
我用测试不足以将两个场景比较(我认为小于100组的资源)。具有足够的测试 - 超过6000页的URL,它表明,压缩响应时间的第一个字节是由快200毫秒在服务的text / html,其中作为TTLB是更快通过在平均25毫秒
。我还没有负载条件下测试此,我打算做并更新此答案。
不隶属于 StackOverflow