it-swarm.com.de

Was ist die empfohlene Mindestobjektgröße für die Leistung von gzip?

Ich arbeite daran, die Anzeigezeiten für die Seitengeschwindigkeit zu verbessern, und eine der Methoden besteht darin, Inhalte vom Webserver zu gzipen.

Google empfiehlt :

Beachten Sie, dass Gzipping nur für größere Ressourcen von Vorteil ist. Aufgrund des Overheads und der Latenz bei der Komprimierung und Dekomprimierung sollten Sie Dateien nur über einem bestimmten Größenschwellenwert gzipen. Wir empfehlen einen Mindestbereich zwischen 150 und 1000 Byte. Gzipping-Dateien unter 150 Bytes können sie tatsächlich größer machen.

Wir stellen unseren Inhalt durch Akamai zur Verfügung, indem wir ihr Netzwerk als Proxy und CDN verwenden. Was sie mir gesagt haben:

Wenn Sie Ihre Frage nach der Mindestgröße beantworten, komprimiert Akamai das angeforderte Objekt beim Senden an den Endbenutzer: Die Mindestgröße beträgt 860 Byte.

Meine Antwort:

Was ist der Grund, warum Akamai mindestens 860 Byte groß ist? Und warum ist dies beispielsweise nicht der Fall bei Dateien, die Akamai für Facebook bereitstellt? ( siehe unten ) Google empfiehlt, aggressiver zu zippen. Und das scheint auf unserer Website angemessen zu sein, wo die mit Abstand häufigsten Zugriffe AJAX Aufrufe sind, die <860 Byte lang sind.Facebook headers screenshot disputing Akamai's statement

Akamais Antwort:

Die Gründe, warum 860 Bytes die Mindestgröße für die Komprimierung sind, sind zweifach: (1) Der Mehraufwand für die Komprimierung eines Objekts unter 860 Bytes überwiegt den Leistungsgewinn. (2) Objekte unter 860 Bytes können sowieso über ein einzelnes Paket übertragen werden, sodass es keinen zwingenden Grund gibt, sie zu komprimieren.

Also bin ich hier, um die Fakten zu überprüfen. Ist das 860-Byte-Limit aufgrund der Paketgröße das Ende dieser Überlegungen? Warum sollten Websites mit hohem Datenverkehr diesen Wert auf 150 Byte herabsetzen, um Bandbreitenkosten zu sparen (da CDNs ihre Gebühren auf die von Origin gelöste Bandbreite beziehen), oder ist dies mit einem Leistungsgewinn verbunden?


7/9/12 Update: Ich fragte Steve Souders ob es einen Leistungsgewinn bei Gzipping-Antworten gibt, die bereits kleiner sind als ein Paket und was wird empfohlen Minimale Objektgröße für die Leistung von gzip. Dies ist seine Antwort:

Vielen Dank für Ihre E-Mail. Die Größe liegt irgendwo zwischen 1-5K. Apache hat eine Standardeinstellung, aber ich vergesse, was es ist - das wäre eine gute Anleitung.

Wir machen unsere Komprimierung auf einer F5-Appliance, also werden wir sie auf ~ 350 Bytes reduzieren, da es eine anständige Menge von AJAX Aufrufen zwischen dieser und 1K gibt. Die AJAX Aufrufe, die weniger als 350 Bytes auf unserer Website umfassen, sind alle um die 70 Bytes reduziert ... weniger als die Empfehlungen von Google ... es scheint also wirklich auf Folgendes zurückzugreifen: Kenne deine Website und passe sie basierend auf deinem Code an .

Ich werde auf diesen Beitrag zurückkommen, nachdem das F5-Update eine Weile in der Produktion ausgeführt wurde. Ich denke, es wird wenig Leistung bringen, aber wir werden unsere Akamai-Kosten etwas senken, da sie weniger liefern.

30
utt73

Sie sprechen von den Vorteilen für Ihre Bandbreitenkosten, vergleichen aber auch die Leistung des Seitenladens in einem Browser. Das sind zwei verschiedene Dinge.

Jedes Mal, wenn Sie eine Anfrage gzipen, muss etwas die Komprimierung (in Ihrem Fall das F5) durchführen und der Client (oder technisch die Proxies) muss die Dekomprimierung durchführen. Dies kann zu einer höheren Latenz Ihrer Anfrage führen, je nachdem, wie leistungsfähig die Hardware auf beiden Seiten ist.

Die "Mindestgröße für gzip" basiert auf der Zeit, die zum Komprimieren/Dekomprimieren dieser kleinen Daten erforderlich ist, die aus Sicht des Webbrowsers nicht hilfreich sind. Wenn Sie lediglich von Bandbreiteneinsparungen sprechen, setzen Sie Ihr Minimum so niedrig, wie Sie möchten, und achten Sie dabei darauf, dass Sie Ihren Endbenutzern möglicherweise keine Leistungsverbesserungen bieten.

2
Nicholas H