title: Google Cloud Storage TTFB increased with gzip
body: <p>When I upload assets to cloud storage with <code>gsutil cp -z js,css,html</code>,
  then their TTFB (Time To First Byte) on serving increasing from ~20ms to 180ms.</p>
  
  <p>This is big performance impact. Why is this happening and how to solve this?</p>
  
  <p><a href="https://i.stack.imgur.com/5Sevd.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5Sevd.png" alt="screenshot from google chrome with compressed assets"></a></p>
  
  <p>Here more samples (URLs are still valid, if you want to try yourself):</p>
  
  <pre><code>$ ab -c 5 -n 50 https://storage.googleapis.com/latencytest/test-raw.txt
  
  Concurrency Level:      5
  Time taken for tests:   2.048 seconds
  Complete requests:      50
  Failed requests:        0
  Total transferred:      45710 bytes
  HTML transferred:       8050 bytes
  Requests per second:    24.41 [#/sec] (mean)
  Time per request:       204.846 [ms] (mean)
  Time per request:       40.969 [ms] (mean, across all concurrent requests)
  Transfer rate:          21.79 [Kbytes/sec] received
  
  Connection Times (ms)
                min  mean[+/-sd] median   max
  Connect:       88  117  16.7    112     160
  Processing:    21   73 112.8     36     487
  Waiting:       21   71 113.3     34     487
  Total:        122  189 118.4    146     613
  
  
  $ ab -c 5 -n 50 https://storage.googleapis.com/latencytest/test.txt
  
  Concurrency Level:      5
  Time taken for tests:   3.374 seconds
  Complete requests:      50
  Failed requests:        0
  Total transferred:      45150 bytes
  HTML transferred:       7250 bytes
  Requests per second:    14.82 [#/sec] (mean)
  Time per request:       337.403 [ms] (mean)
  Time per request:       67.481 [ms] (mean, across all concurrent requests)
  Transfer rate:          13.07 [Kbytes/sec] received
  
  Connection Times (ms)
                min  mean[+/-sd] median   max
  Connect:       90  109   9.0    107     136
  Processing:   174  206  44.6    190     389
  Waiting:      172  204  44.3    189     384
  Total:        274  315  47.3    299     495
  </code></pre>
  
  <p>curl output for gzipped file:</p>
  
  <pre><code>$ curl -s -v https://storage.googleapis.com/latencytest/test.txt &gt; /dev/null
  *   Trying 2a00:1450:400e:805::2010...
  * Connected to storage.googleapis.com (2a00:1450:400e:805::2010) port 443 (#0)
  * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  * Server certificate: *.storage.googleapis.com
  * Server certificate: Google Internet Authority G2
  * Server certificate: GeoTrust Global CA
  &gt; GET /latencytest/test.txt HTTP/1.1
  &gt; Host: storage.googleapis.com
  &gt; User-Agent: curl/7.43.0
  &gt; Accept: */*
  &gt; 
  &lt; HTTP/1.1 200 OK
  &lt; X-GUploader-UploadID: AEnB2UpBZ1SoG2fiD3_qSOmIWWvL86Kd-r21kXOS08UlvMOc90Eco-vd3ol3NnwDrkJKwKk7zav0ePdp9QYXm7lt4NdV39h-VQ
  &lt; Date: Tue, 17 Jan 2017 20:44:19 GMT
  &lt; Cache-Control: no-transform
  &lt; Expires: Wed, 17 Jan 2018 20:44:19 GMT
  &lt; Last-Modified: Mon, 16 Jan 2017 13:46:54 GMT
  &lt; ETag: "88b49948e59eaad05d60a52001b50d7a"
  &lt; x-goog-generation: 1484574414392000
  &lt; x-goog-metageneration: 2
  &lt; x-goog-stored-content-encoding: gzip
  &lt; x-goog-stored-content-length: 145
  &lt; Content-Type: text/plain
  &lt; Content-Encoding: gzip
  &lt; Content-Language: en
  &lt; x-goog-hash: crc32c=MlL4Uw==
  &lt; x-goog-hash: md5=iLSZSOWeqtBdYKUgAbUNeg==
  &lt; x-goog-storage-class: STANDARD
  &lt; Accept-Ranges: bytes
  &lt; Server: UploadServer
  &lt; Alt-Svc: quic=":443"; ma=2592000; v="35,34"
  &lt; Transfer-Encoding: chunked
  &lt; 
  { [261 bytes data]
  * Connection #0 to host storage.googleapis.com left intact
  </code></pre>