Как акселераторы загрузки работают?

Совсем недавно вы также можете использовать пакет dplyr для этой цели:

library(dplyr)
x %>% 
  group_by(Category) %>% 
  summarise(Frequency = sum(Frequency))

#Source: local data frame [3 x 2]
#
#  Category Frequency
#1    First        30
#2   Second         5
#3    Third        34

Или для нескольких суммарных столбцов (работает с одним столбцом тоже):

x %>% 
  group_by(Category) %>% 
  summarise_each(funs(sum))

Обновление для dplyr> = 0.5: summarise_each было заменено на семейство функций summarise_all, summarise_at и summarise_if в dplyr.

Или, если у вас есть несколько столбцов для группировки, вы можете указать все из них в group_by, разделенные запятыми:

mtcars %>% 
  group_by(cyl, gear) %>%                            # multiple group columns
  summarise(max_hp = max(hp), mean_mpg = mean(mpg))  # multiple summary columns

Для получения дополнительной информации, включая оператор %>%, см. введение в dplyr .

15
задан Mark Biek 18 September 2008 в 15:43
поделиться

7 ответов

Вы получите более всесторонний обзор Акселераторов Загрузки в Википедия .

Ускорение многоаспектное

Первый

А, которым управляло/ускоряло существенное преимущество, загрузки рассматриваемый инструмент, помнит, Запускают/Останавливают переданные смещения, и использует "неравнодушный" и заголовки 'диапазона' для запроса частей файла вместо всего этого.

Это означает, умирает ли что-то середина транзакции (т.е.: Тайм-аут TCP) это просто снова соединяется, где это кончило, и Вы не должны запускать с нуля.

Таким образом, если у Вас есть неустойчивое соединение, совокупное время трансфера значительно уменьшено.

114-секундный

акселераторам Загрузки нравится повреждать единственную передачу в несколько меньших сегментов равного размера, с помощью той же start-range-stop механики, и выполнять их параллельно, который значительно улучшает время трансфера по медленным сетям.

существует эта раздражающая вещь, названная продуктом задержки пропускной способности, где размер буферов TCP с обоих концов делает некоторую математическую вещь в сочетании со временем ping для получения фактической опытной скорости, и это в практике означает, что большие времена ping ограничат скорость независимо, сколько мегабит/секунда все временные соединения имеют.

Однако это ограничение, кажется, "для каждого подключения", таким образом, несколько соединений TCP к единственному серверу могут помочь смягчить хит производительности высокого времени ping задержки.

Следовательно, люди, которые живут поблизости, не так вероятны должны сделать сегментированную передачу, но люди, которые живут в далеко местоположениях, более вероятно, извлекут выгоду из схождения с ума со своей сегментацией.

, В-третьих

В некоторых случаях возможно найти несколько серверов, которые обеспечивают тот же ресурс, иногда единственный адрес DNS циклические алгоритмы к нескольким IP-адресам, или сервер является частью зеркальной сети некоторого вида. И загрузите менеджеров/акселераторы, может обнаружить это и применить сегментированный метод передачи через несколько серверов, позволив загрузчику получить больше коллективной пропускной способности, поставленной им.

Поддержка

Поддержка первого вида ускорения - то, что я лично предлагаю в качестве "минимума" для поддержки. Главным образом, потому что это делает пользовательскую жизнь легкой, и это уменьшает объем передачи агрегированных данных, которую необходимо обеспечить из-за пользователей, не имеющих необходимость неоднократно выбирать то же содержание.

И упрощать это, его рекомендуемый Вы, вычисляет, сколько они передали и не истекают билет, пока они не выглядят "законченными" (в то время как обязательный трафик к первому IP, который использовал билет), или данное 'разумное' время для загрузки его передало. т.е.: дайте им окно изящества прежде, чем потребовать, чтобы они получили новый билет.

Поддержка второго и третьего дает Вам бонусные очки, и пользователи обычно требуют его, по крайней мере, второе, главным образом потому что иностранным клиентам не нравится рассматриваться как клиентов второго класса просто из-за большего времени ping, и это объективно не использует больше пропускной способности ни в каком смысле, который имеет значение. Худшее, которое происходит, они могли бы заставить Вашу общую пропускную способность быть нежелательным для того, как Ваш сервис работает.

Это является довольно прямым для поставки первого вида преимущества, не позволяя второе просто путем ограничения количества параллельных передач из билета в один конец.

15
ответ дан 1 December 2019 в 04:01
поделиться

Я полагаю, что идея состоит в том, что много серверов ограничивают или равномерно распределяют пропускную способность через соединения. При наличии многочисленных связей Вы обманываете ту систему и получаете больше, чем Ваша "справедливая" доля пропускной способности.

1
ответ дан 1 December 2019 в 04:01
поделиться

Это - все приблизительно закон Литтла . Конкретно каждый поток к веб-серверу видит определенное количество задержки TCP и так будет только нести так много данных. Приемы как увеличение размера окна TCP и реализация выборочного acks помогают, но плохо реализованы и обычно вызывают больше проблем, чем они решают.

Наличие нескольких потоков означает, что задержка, замеченная каждым потоком, менее важна, поскольку глобальная пропускная способность увеличивается в целом.

Другое главное преимущество с акселератором загрузки даже когда с помощью единственного потока - то, что это обычно лучше, чем использование веб-браузеров, созданных в инструменте загрузки. Например, если веб-браузер решит умереть, то инструмент загрузки продолжится. И инструмент загрузки может поддерживать функциональность как приостановка/возобновление, которую не делает встроенный brower.

1
ответ дан 1 December 2019 в 04:01
поделиться

Мое понимание - то, что одно использование акселераторов загрузки метода путем открытия многих параллельных соединений TCP - каждое соединение TCP может только пойти настолько быстро и часто ограничивается на стороне сервера.

TCP реализован таким образом, что, если тайм-аут происходит, период тайм-аута увеличен. Это очень эффективно при предотвращении сетевых перегрузок, за счет скорости на отдельных соединениях TCP.

акселераторы Загрузки могут обойти это вводными десятками соединений TCP и отбрасывания тех, которые замедляются к ниже определенного порога, затем открывая новые для замены медленных соединений.

, В то время как эффективный для отдельного пользователя, я полагаю, что это - плохой этикет в целом.

Вы видите, что акселератор загрузки пытается повторно аутентифицировать использование того же билета транзакции - я рекомендовал бы игнорировать эти запросы.

1
ответ дан 1 December 2019 в 04:01
поделиться

От: http://askville.amazon.com/download-accelerator-protocol-work-advantages-benefits-application-area-scope-plz-suggest-URLs/AnswerViewer.do?requestId=9337813

Кавычка: наиболее распространенный способ ускорения загрузок состоит в том, чтобы открыть загрузки parllel. Много пределов серверов bandwith одного соединения, настолько вводного больше в параллели, увеличивают уровень. Это работает путем определения смещения, которое должна запустить загрузка, который поддерживается для HTTP и FTP одинаково.

, Конечно, этот способ ускорения является довольно "несоциальным". Ограничение bandwith реализовано, чтобы смочь служить, более высокое количество клиентов, настолько использующих эту технику, понижает максимальное количество коллег, которое может загрузить. Это - причина, почему много серверов ограничивают количество параллельного соединения (распознанный IP), например, много FTP-серверов делают это так, Вы сталкиваетесь с проблемами, если Вы загружаете файл и пытаетесь продолжить просматривать использование Вашего браузера. Технически это два параллельных соединения.

Другая техника для увеличения уровня загрузки является одноранговой сетью, где другие источники, например, ограниченный asynchron DSL на стороне загрузки используются для загрузки.

0
ответ дан 1 December 2019 в 04:01
поделиться

Большая часть загрузки 'акселераторы' действительно не ускоряет ничего вообще. То, что они способны делать, переполняет сетевой трафик, куя Ваш сервер, и повреждая пользовательские сценарии как Вы видели. В основном то, как это работает, - то, что вместо того, чтобы выполнить один запрос и загрузить файл с начала до конца, это делает, говорят, что четыре запроса... первые загрузки с 0-25%, второе от 25-50%, и так далее, и это делает их всех одновременно. Единственный особый случай, где это помогает любому, то, если их ISP или брандмауэр делают некоторое формирование трафика, таким образом, что отдельная скорость загрузки ограничена меньше, чем их общей скоростью загрузки.

Лично, если бы это вызывает Вас проблема, я сказал бы, просто помещает уведомление, которые загружают акселераторы, не поддерживаются и сделали, чтобы пользователи обычно загружали их или только использование единственного потока.

0
ответ дан 1 December 2019 в 04:01
поделиться

Они не делают, обычно.

Для ответа на сущность вопроса предположение - то, что сервер является ограничивающими уровень загрузками на основе для каждого подключения, поэтому одновременно загружение нескольких блоков позволит пользователю максимально использовать пропускную способность, доступную в их конце.

0
ответ дан 1 December 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: