문제

내 Apache Server (mod_deflate)에서 GZIP 압축을 활성화 한 후 최종 사용자가 압축되지 않은 응답보다 평균 200ms 느리게 제공되는 것을 일관되게 발견했습니다.

이것은 예상치 못한 상태 였으므로 압축 지침을 수정하여 텍스트/HTML 응답 만 압축하고 Wireshark를 발사하고 압축 전후에 네트워크 덤프를 보았습니다.

다음은 a에 대한 나의 관찰입니다 가져 오기 네트워크에서 최소 트래픽이 있습니다

압축 전에

 
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 이상의 테스트로 첫 바이트에 대한 압축 된 응답 시간이 텍스트/HTML을 제공하는 데 200 밀리 초의 압축 시간이 더 빠르며, 여기서 TTLB는 평균 25 밀리 초 더 빠릅니다.

나는 이것을 계획 하고이 답을 업데이트 할 계획을로드하지 않았다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top