谷歌云存储TTFB随着gzip的增加而增加

时间:2017-01-16 12:06:17

标签: google-cloud-storage google-cloud-platform

当我使用gsutil cp -z js,css,html将资源上传到云存储时, 然后他们的TTFB(时间到第一字节)服务从~20ms增加到180ms。

这对性能影响很大。为什么会发生这种情况以及如何解决这个问题?

screenshot from google chrome with compressed assets

此处有更多示例(如果您想尝试自己,网址仍然有效):

$ 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

gzip压缩文件的输出:

$ curl -s -v https://storage.googleapis.com/latencytest/test.txt > /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
> GET /latencytest/test.txt HTTP/1.1
> Host: storage.googleapis.com
> User-Agent: curl/7.43.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UpBZ1SoG2fiD3_qSOmIWWvL86Kd-r21kXOS08UlvMOc90Eco-vd3ol3NnwDrkJKwKk7zav0ePdp9QYXm7lt4NdV39h-VQ
< Date: Tue, 17 Jan 2017 20:44:19 GMT
< Cache-Control: no-transform
< Expires: Wed, 17 Jan 2018 20:44:19 GMT
< Last-Modified: Mon, 16 Jan 2017 13:46:54 GMT
< ETag: "88b49948e59eaad05d60a52001b50d7a"
< x-goog-generation: 1484574414392000
< x-goog-metageneration: 2
< x-goog-stored-content-encoding: gzip
< x-goog-stored-content-length: 145
< Content-Type: text/plain
< Content-Encoding: gzip
< Content-Language: en
< x-goog-hash: crc32c=MlL4Uw==
< x-goog-hash: md5=iLSZSOWeqtBdYKUgAbUNeg==
< x-goog-storage-class: STANDARD
< Accept-Ranges: bytes
< Server: UploadServer
< Alt-Svc: quic=":443"; ma=2592000; v="35,34"
< Transfer-Encoding: chunked
< 
{ [261 bytes data]
* Connection #0 to host storage.googleapis.com left intact

1 个答案:

答案 0 :(得分:2)

正如lot所知,Cache-Control: no-transform, public解决了这个问题。