Обновить
0
0
Роман@ragus

DevOps/Python

Отправить сообщение
>Т.е. изменение количества соединений не должно было повлиять на скорость обработки epoll и утилизацию системы.

а с чего вы решили, что у вас будут потребляться ресурсы именно на epoll?

большее число fd => больше событий => больше сисколлов => больше контекстсвитчей.
технически — ничего. просто mpeg-ts для этого избыточен + большой вопрос в каком кодеке это аудио положить.
вот по вашей же ссылке сразу 2 кодека.

и большой вопрос чем играть hls в браузере.

имхо, для аудио проще с обычным progressive download.
К слову, и HAproxy и иже с ними — единая точка отказа

это не так. особенно, если использовать ipvs + direct routing.

потоки несколько великоваты

20Gbit/s — легко.

в 2013-м году я бы попробовал организовать вещание через hls

простите, а как?

hls — это mpeg-ts, порезанный на куски.
вы не правы.

1)множество таблиц роутинга

это да.

2)свои правила ipfw & ipfw table & ipfw nat

это не так. на старте:
root@laptus:~ # setfib 0 ipfw show
65535 3127 321815 allow ip from any to any
добавим правило:
root@laptus:~ # setfib 0 ipfw add 100 allow ip from any to any
00100 allow ip from any to any

теперь мы его видим не только в fib 0:
root@laptus:~ # setfib 0 ipfw show
00100 18 1536 allow ip from any to any
65535 3302 335611 allow ip from any to any
но и в fib 1:
root@laptus:~ # setfib 1 ipfw show
00100 62 5384 allow ip from any to any
65535 3302 335611 allow ip from any to any

3)свои интерфейсы
это тоже не так.

PS: имхо, вы путаете с VIMAGE, который даже в CURRENT
WARNING: VIMAGE (virtualized network stack) is a highly experimental feature.
уж лучше cgroups тогда использовать.
fib'ы — это несколько не то. fib-ы — это эквивалент нескольких таблиц роутинга.

внутри неймспейсов возможно:
1)множество таблиц роутинга(т.е. можно считать что fib'ы внутри fib'ов).
2)свои правила iptables & ipset(на новых ядрах его сделали namespace aware)
3)свои интерфейсы и даже кое-какие настройки conntrack, вроде net.netfilter.nf_conntrack_max и net.netfilter.nf_conntrack_buckets
4)терминировать pppoe
5)держать phy от wifi-карточки и создавать свои wlan-интерфейсы

Вообще, можно много всякого делать, например как в моём примере
по стилю сразу было заметно влияние Zert'а :)
а про шифрование слышали? :)

хотя да, неклассифицированный трафик может быть просто лимитирован.
ну я даже не знаю. у меня e1000e, 82572EI выдал 1.2mpps на одном ядре.
Если не умеет (e1000), то всё плохо.

не знаю, насчёт e1000, но у меня igb в linux спокойно выдаёт 1.48mpps одним ядром.

В линуксах есть pktgen (модуль ядра), который способен срать со скоростью среды (точнее, со скоростью сетевухи).


увы, всё сильно зависит от сетевухи. на r8169 и sky2 цифры удручающие.
это всё хорошо, но сейчас netmap-enabled драйверов в freebsd всего 5 штук =(
да, в одном запросе. чего тут сложного?
один — это как раз очевидно и неинтересно. интересно 2 и более :)
не работает такая атака на свежих версиях.
>если Вы динамически клеите куски видеофайлов — почему Вы называете это статикой?

а в чём проблема? можно mmap'нуть пару файлов и использовать writev() для записи в сокет.
будет тот же самый эффект.

>по моему мнению, статика это то, что можно отдать напрямую из файловой системы, без модификаций…

так оно и отдаётся без модификаций.

>в node.js отдача статики реализуется pipelining'ом чтения файловой системы

а можно всё-таки пример? желательно с sendfile().
Открою вам секрет: mp4 — это не единственный контейнер для видео.
Ок, вы упомянули модуль streaming, в котором смещение задается в секундах от начала файла, что годится для весьма ограниченного числа применений.

Например, мы делаем облачный сервис видеонаблюдения и клиенту выделяется некое количество Гб/минут записи. Писать видео цельным куском тут не получится(не говоря уже о всяких заморочках с moov atom'ами), да и смещение относительно начала файла теряет смысл.

Так что давайте вернемся к отдаче статики.
На самом деле интересен пример не только на reactphp + libevent, но и на node.js
например, у вас на диске 30Тб видео, порезанное кусками по 1 минуте. Вам надо отдать 2 часа видео(т.е. склеить 120 сегментов и отдать в рамках 1 http-запроса).
а можно пример веб-сервера для отдачи статики на этом?
(нет, не надо кричать сразу про nginx. некоторые вещи на nginx вы просто не сделаете).
а покажите пожалуйста на системе с pptpd netstat -lpnt | grep 47

Информация

В рейтинге
Не участвует
Откуда
Praha, Hlavni Mesto Praha, Чехия
Дата рождения
Зарегистрирован
Активность