Frage

gzip-Komprimierung in meinem Apache-Server (mod_deflate) Nach der Aktivierung fand ich immer wieder, dass Endbenutzer wurde im Durchschnitt 200 ms langsamer als unkomprimierte Antworten serviert.

Dies war unerwartet, so modifizierte ich die Kompression Richtlinie nur Text / HTML-Antworten zu komprimieren, wireshark feuerte und schaute auf dem Netzwerk-Dump vor und nach der Kompression.

Hier sind meine Beobachtungen von a GET mit einem Minimum an Datenverkehr im Netzwerk

Vor der Kompression

 
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)

Nach Kompression

 
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)

Nach der Kompression gesetzt wurde ist klar und verständlich, dass die Zahl der Transaktionen auf dem Draht ist deutlich niedriger als unkomprimiertes.

Allerdings nahm die komprimierte Dateneinheit wesentlich längere Zeit von der Quelle zum Ziel zu übertragen.

Es scheint, dass die zusätzliche Arbeit der Kompression verständlicherweise Zeit nimmt, kann aber nicht verstehen, warum schickte jeder Daten deutlich langsamer war, wenn sie komprimiert.

Mein Verständnis des Kompressionsprozesses ist:

  1. GET Request is received by Apache
  2. Apache identifies resource
  3. Compress the resource
  4. Respond with compressed response

Mit diesem Schema würde ich davon ausgehen, dass der 3. Schritt (der Schritt vor dem ersten Segment der Antwort würde eine längere Zeit, da wir - Komprimieren reagiert + - aber der Rest der Stücke habe ich angenommen, im Durchschnitt gleich viel Zeit wie die unkomprimierte Brocken nehmen sollten, aber sie sind es nicht.

Kann mir jemand sagen, warum ... oder schlägt einen besseren Weg, um dieses Szenario zu analysieren. Auch jemand eine hat vor und nach dem Vergleich ... Ich würde mich freuen über jedes Feedback / Kommentare / Fragen

War es hilfreich?

Lösung

Ich war unzureichend Test mit den beiden Szenarien zu vergleichen (glaube ich weniger als 100 Ressourcen). Bei ausreichenden Tests - mehr als 6000 Urls, zeigte sie, dass die Druckantwortzeit zum ersten Byte war schneller von 200 Millisekunden im Dienst text / html, wo als TTLB war schneller von 25 Millisekunden im Durchschnitt

.

Ich habe die Last, nicht getestet, die ich plane, diese Antwort zu tun und zu aktualisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top