netem усиливает функциональность, уже встроенную в Linux и утилиты пространства пользователя для моделирования сетей. Это на самом деле, что ответ Mark's отсылает к другим именем.
примеры на [1 111] их домашняя страница уже шоу, как можно достигнуть того, что Вы попросили:
Примеры
задержки глобальной вычислительной сети Эмуляции
Это - самый простой пример, он просто добавляет установленную сумму задержки со всеми пакетами, выходящими из локального Ethernet.
# tc qdisc add dev eth0 root netem delay 100ms
Теперь простой тест ping для хостинга в локальной сети должен показать увеличение 100 миллисекунд. Задержка ограничена разрешением часов ядра (Гц). На большинстве 2,4 системы системные часы работают в 100В Гц, который позволяет задержки инкрементов 10В мс. На 2,6, значение является параметром конфигурации от 1 000 до 100В Гц.
Более поздние примеры просто изменяют параметры, не перезагружая qdisc
, который Очень широкие сети показывают изменчивости, таким образом, возможно добавить случайное изменение.
# tc qdisc change dev eth0 root netem delay 100ms 10ms
Это заставляет добавленную задержку быть 100 В± 10В мс. Изменение сетевой задержки не чисто случайно, так для эмуляции этого также существует значение корреляции.
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
Это заставляет добавленную задержку быть 100 В± 10В мс со следующим случайным элементом, зависящим 25% от последнего. Это не истинная статистическая корреляция, но приближение.
распределение Задержки
Как правило, задержка сети не универсальна. Более распространено использовать что-то как нормальное распределение для описания вариации в задержке. Дисциплина netem может взять таблицу для определения неоднородного распределения.
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
фактические таблицы (нормальный, Парето, paretonormal) сгенерированы как часть iproute2 компиляции и помещены в/usr/lib/tc; таким образом, это возможно с некоторым усилием сделать Ваше собственное распределение на основе экспериментальных данных.
Потеря пакетов
Случайная потеря пакетов определяется в команде 'tc' в проценте. Самое маленькое ненулевое значение:
2 в€ ’32 глоток> = 0,0000000232%
# tc qdisc change dev eth0 root netem loss 0.1%
Это заставляет 1/10-й из процента (т.е. 1 из 1 000) пакеты быть случайным образом отброшенным.
дополнительная корреляция может также быть добавлена. Это заставляет генератор случайных чисел быть менее случайным и может использоваться для эмуляции пакетных пакетных потерь.
# tc qdisc change dev eth0 root netem loss 0.3% 25%
Это заставит 0,3% пакетов быть потерянным, и каждая последовательная вероятность зависит четвертью от последней.
Probn = 0,25 Г — Probn-1 + 0,75 Г — Случайный
Примечание , которое необходимо использовать tc qdisc add
, если у Вас нет правил для того интерфейса или tc qdisc change
, если у Вас уже есть правила для того интерфейса. Попытка использовать tc qdisc change
в интерфейсе без правил даст ошибку RTNETLINK answers: No such file or directory
.
Кажется, это работает:
> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
state myName
1 A 56.87973
2 B 57.84451
3 C 52.82415
Используйте суммировать (или суммировать):
groupAcres <- ddply(mydata, "state", summarise,
myName = sum(acres))