Как пользователь в Европе, какую скорость загрузки мне следует ожидать от сервиса на платформе AWS/CloudFront? В какой момент я должен сообщить о медлительности и кому?
Для WeTransfer из примерной ссылки я получаю примерный URL-адрес для загрузки (находится в сетевой консоли, F12). Затем я использую iftop
чтобы посмотреть, какой хост передает мне файл, и mtr
чтобы определить, не выявлена ли какая-либо очевидная проблема (хотя трассировка маршрута от их хоста до моей машины может отличаться от другой).
Вчера файл был доставлен из мадридского края CloudFront, что-то вроде server-54-192-61-242.mad50.r.cloudfront.net
, и моя скорость загрузки не превышала 300 КиБ / с, оставаясь на уровне 150-200 КиБ / с большую часть времени. Это ужасно медленно.* Я не сохранил traceroute, но не было очевидной потери пакетов или задержки; Пакеты IIRC прошли через Telia.
Сегодня файл подается с server-54-240-166-250.lhr5.r.cloudfront.net
(Лондон), и я получаю 1,1 МБ / с дома, в среднем 13 МБ / с (и пик 25 МБ / с) на сервере Северной Европы. Это то, что я ожидаю.
Учитывая, что Amazon/AWS изменил хост со вчерашнего дня, и теперь все работает, кажется, еще более вероятно, что проблема была с ними. Тем не менее, клиент AWS на скорости загрузки медленно говорит, что они ничего не будут делать. Документация CloudFront и форумы AWS не содержат информации о том, как сообщать о проблемах с сетью / маршрутизацией / пирингом. Что делать в таких случаях тогда? Я полагаю, что только клиент AWS может что-то сделать, но только в том случае, если человек, который получает отчет, способен понять работу сети.
Мой маршрут к CloudFront Madrid выглядит примерно так:
10.|-- 62-101-124-129.fastres.net 0.0% 50 4.6 13.8 3.5 101.1 20.3
11.|-- 89.96.200.21 0.0% 50 17.6 16.6 2.6 92.9 22.0
12.|-- mno-b2-link.telia.net 4.0% 50 52.6 26.3 13.1 69.2 13.7
13.|-- mei-b1-link.telia.net 0.0% 50 23.7 30.3 20.4 87.7 11.3
14.|-- bcn-b2-link.telia.net 0.0% 50 47.5 53.7 30.2 92.9 16.4
15.|-- mad-b2-link.telia.net 0.0% 50 62.7 57.7 36.1 102.2 14.4
16.|-- mad-b1-link.telia.net 0.0% 50 37.7 42.1 34.3 59.8 5.6
17.|-- a100-ic-314004-mad-b1.c.telia.net 0.0% 50 70.2 58.5 39.7 87.2 12.5
18.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
19.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
20.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
21.|-- server-54-192-61-242.mad50.r.cloudfront.net 2.0% 50 71.1 83.5 56.4 156.2 19.5
Трассировка маршрута теперь выглядит примерно так:
10.|-- 62-101-124-94.fastres.net 0.0% 50 68.6 79.5 36.1 108.8 15.4
11.|-- 89.96.200.110 0.0% 50 75.9 94.8 46.0 141.8 17.6
12.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
13.|-- 54.239.4.248 2.0% 50 107.2 112.9 71.6 146.7 18.2
14.|-- 54.239.41.135 0.0% 50 112.8 108.7 72.8 147.6 15.0
15.|-- 178.236.3.22 0.0% 50 115.8 102.3 58.4 127.9 16.9
16.|-- 176.32.106.11 4.0% 50 95.8 103.2 73.7 130.7 14.2
17.|-- 176.32.106.11 40.0% 50 110.6 108.6 80.4 136.1 14.7
18.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
19.|-- ??? 100.0 50 0.0 0.0 0.0 0.0 0.0
20.|-- server-54-240-166-250.lhr5.r.cloudfront.net 60.0% 50 88.7 100.0 57.6 131.9 18.0
Как отмечается в первом ответе, очень важно, был ли файл уже кэширован на границе CloudFront или нет. Вот пример пропадания кеша (которому сейчас удается насытить мою пропускную способность):
$ LANG='en' wget -S 'https://download.wetransfer.com/wetransfer-eu1/f7a2031249f56fdeeda9040adda5a26f20160224143804/wetransfer-f7a203.zip?expiration=1456605646&escaped=false&signature=3d916716d49e415f637b4f824c7709f7483b67a8f02588caece30d6c2a3ed0ea&filename=wetransfer-f7a203.zip'
--2016-02-27 21:34:39-- https://download.wetransfer.com/wetransfer-eu1/f7a2031249f56fdeeda9040adda5a26f20160224143804/wetransfer-f7a203.zip?expiration=1456605646&escaped=false&signature=3d916716d49e415f637b4f824c7709f7483b67a8f02588caece30d6c2a3ed0ea&filename=wetransfer-f7a203.zip
Resolving download.wetransfer.com (download.wetransfer.com)... 54.192.61.62, 54.192.61.196, 54.192.61.80, ...
Connecting to download.wetransfer.com (download.wetransfer.com)|54.192.61.62|:443... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 1449534395
Connection: keep-alive
Server: nginx
Date: Sat, 27 Feb 2016 20:34:39 GMT
Content-Transfer-Encoding: binary
Content-Encoding: none
Cache-Control: private, no-transform, no-store
Allow: GET, HEAD
Accept-Ranges: bytes
Content-Disposition: attachment; filename="wetransfer-f7a203.zip"
X-Transfer-Id: f7a2031249f56fdeeda9040adda5a26f20160224143804
X-Cache: Miss from cloudfront
Via: 1.1 943ab292a0096b706fe263560805857e.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 4hEZcZL56GWMBn8z1T2txF-O3TTdrAC6OxCtqVDZUoJREUd9_EBo6A==
Length: 1449534395 (1.3G) [application/octet-stream]
При дальнейшем тестировании я всегда получаю X-Cache: Miss from cloudfront
, даже в 6-й раз я запрашиваю тот же ресурс, поэтому кажется, что WeTransfer ничего не кэширует в CloudFront (или нет файлов такого размера). Интересно, что заголовок X-Transfer-Id: f7a2031249f56fdeeda9040adda5a26f20160224143804
всегда один и тот же, хотя фактический URL-адрес загрузки, который я получаю, нажимая кнопку загрузки, меняется; заголовки Via
и X-Amz-Cf-Id
также различаются. Начиная с этого обновления, первый раз, когда я запрашиваю заданный URL-адрес для загрузки, очень быстро, второй - очень медленно, третий - 404. Я попытался, и у меня может быть две одновременные загрузки, одна со второй попытки и одна с первой попытки: первая будет очень медленной, а вторая очень быстрой, хотя сетевые условия явно одинаковы.
См. Https://paste.debian.net/408552/ для теста с моего сервера в Северной Европе: загрузка A * - это один URL, B * - другой; A-2 - после A-1, а B-2 - после B-1, но B * запущен во время работы A-2. Все же A-1 и B-1 были очень быстрыми, A-2 и B-2 очень медленными.
Это все больше похоже на проблему с качеством обслуживания /QoS, также называемым регулированием. Может CloudFront задушить меня из-за промахов кэша, или мы должны винить только их клиента?
(*) Примечание: у меня есть соединение FTTH 10/10 Мбит / с с Fastweb. Доступная пропускная способность никогда не идет под этой гарантированной скоростью. Интернет-провайдер, как известно, не применяет регулирование QoS, но иногда имеет некоторые проблемы с маршрутизацией за пределами Италии. Когда я заметил проблему, у меня не было проблем с насыщением полосы пропускания другими службами.