The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В состав FreeBSD принята высокопроизводительная реализация s..., opennews (?), 09-Янв-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


91. "В состав FreeBSD принята высокопроизводительная реализация s..."  +7 +/
Сообщение от glebiusemail (ok), 10-Янв-16, 23:44 
Я ещё немного наброшу в топку :)

Презентации уже больше года. Очевидно, что за год было много сделано. Сейчас рекордные цифры сильно выше, чем 35 Гбит/с, что в презентации. Сейчас рассматриваем возможность перехода с агрегата из двух 40 Гбит/с на одну 100 Гбит/с. Соответственно трафик соответствующий. :) Но помимо нового sendfile сделаны ещё оптимизации в VM и в TCP, без них воспроизвести наши цифры на CURRENT не получится, поэтому я пока и не буду ими хвастать. Но, надеюсь, в скором времени большая часть работы будет в CURRENT.

И вот ещё. Поверх нового sendfile построен SSL_sendfile(), позволяющий ядру слать данные из файла в SSL сокет. Само собой и чтение с диска и шифрование тоже выполняются в фоне.

P.S. Спасибо Валентину, что расставил икспердов и мне надо объяснять про разницу блокирования на сокете и на диске. :)

Ответить | Правка | Наверх | Cообщить модератору

111. "В состав FreeBSD принята высокопроизводительная реализация s..."  +1 +/
Сообщение от metallica (ok), 11-Янв-16, 13:23 
> И вот ещё. Поверх нового sendfile построен SSL_sendfile(), позволяющий ядру слать данные
> из файла в SSL сокет. Само собой и чтение с диска
> и шифрование тоже выполняются в фоне.

Вообще существует ли теоретическое обоснование перевода работ именно в ядро, в смысле, какая разница втом, будет ли работой заниматься поток юзера, переключившийся с ядро, или юзерспайсовый делегирует всё работу специализированому потоку в пространстве ядра, а сам будет ждать уведомлений через поллинг дескрипторов? В солярисе  имеется общий принцип: "на каждый чих создаём поток ядра". Это оправдано, так как ОС ориентирована на исполнение на машинах с сотнями CPU. Но непонятно зачем размножение потоков нужно в freebsb которая работает на тазиках с 4-8 CPU. Ну нахватает поток юзерспайсового сервиса запросов не отдачу контента, нагрузит работой по сетевому и блочному IO некоторое количество потоков в ядре, и те точно так же встанут в взаимных локах и зависнут в конкуренции на доступ к разделяемому ресурсу, как заблокировался бы юзерспайcовый поток, на ожидании наполнения кеша address_space в линуксе?

> P.S. Спасибо Валентину, что расставил икспердов и мне надо объяснять про разницу
> блокирования на сокете и на диске.

В линуксе бликировка на диске в sendfile происходит только на время ожидания поступления данных с диска при запуске __blk_run_queue, так как заполнение beffer_head данным осуществляется в потоке, сделавшем sendfile. Остальное время поток, сделавший sendfile, не блокируется, а заполняет данными address_space файла, и мапит их в буфера pipe-а и исполняет калбек splice_write дескриптора выходного сокета.  Какая разница, какой поток будет блокироваться на время операции чтения данных с диска, поток юзерспайсового сервиса, делающего sendfile, или спецализированного, которому поток юзерпайсового сервиса делегирует эту работу?


Ответить | Правка | Наверх | Cообщить модератору

117. "В состав FreeBSD принята высокопроизводительная реализация s..."  –2 +/
Сообщение от Аноним (-), 11-Янв-16, 19:54 
В 11-Current по мелочи еще кажись выкинут из ядра kgdb и добавят статическую сборку с модулем zfs.
Нас ждет бесплатная открытая солярка как по мне.
Ответить | Правка | Наверх | Cообщить модератору

120. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от Andrey Mitrofanov (?), 11-Янв-16, 20:50 
> Нас ждет бесплатная открытая солярка как по мне.

Это Вы "её" ждёте. Проприертарский самообман сидит глубоко.                 //..."десять раз отбей https://www.gnu.org/philosophy/stallmans-law.html лбом об пол"... Охохо, прямо хоть нимб надевай с ними!

Ответить | Правка | Наверх | Cообщить модератору

121. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от Аноним (-), 11-Янв-16, 21:00 
Будете приносить сюда анекдоты?)
Ответить | Правка | Наверх | Cообщить модератору

122. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от Аноним (-), 11-Янв-16, 21:05 
>> Нас ждет бесплатная открытая солярка как по мне.
> Это Вы "её" ждёте. Проприертарский самообман сидит глубоко.    
>            
>  //..."десять раз отбей https://www.gnu.org/philosophy/stallmans-law.html лбом об пол"...
> Охохо, прямо хоть нимб надевай с ними!

И я никого не жду, а уже пользуюсь. И не надо ко мне официально.

Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

138. "В состав FreeBSD принята высокопроизводительная реализация s..."  –3 +/
Сообщение от Аноним (-), 12-Янв-16, 13:13 
Пользуются - практически все, притом давно в продакшне, притом что на линуксе зфс работает гораздо быстрее. И статическая сборка ZFS и SPL поддерживается. Вот только CDDL-лицензию почитай, чтобы понимать во что влип.
Ответить | Правка | Наверх | Cообщить модератору

144. "В состав FreeBSD принята высокопроизводительная реализация s..."  –1 +/
Сообщение от тигар (ok), 12-Янв-16, 13:56 
> Пользуются - практически все, притом давно в продакшне, притом что на линуксе
> зфс работает гораздо быстрее.

и пруфы этого есть?

Ответить | Правка | Наверх | Cообщить модератору

146. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от Аноним (-), 12-Янв-16, 15:42 
Может ещё и названия контор с фио внедренцев выложить?
Ответить | Правка | Наверх | Cообщить модератору

150. "В состав FreeBSD принята высокопроизводительная реализация s..."  +1 +/
Сообщение от тигар (ok), 12-Янв-16, 15:58 
> Может ещё и названия контор с фио внедренцев выложить?

названия контор (а тем более фио внедренцев) 100 лет не нужны (и не только мне), но в приличном обществе, рассказывая о том, что "Х в У работает хуже, чем в Й" нужно приводить какие-то аргументы, дабы не выглядеть глупо. Это, как мне кажется, очевидная вещь. От Вас, гражданин, подтверждения Ваших слов мы, понятное дело, не дождемся. Спасибо за подареные при прочтении Вашего сообщения секунды смеха.

Ответить | Правка | Наверх | Cообщить модератору

147. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от Аноним (-), 12-Янв-16, 15:45 
> И статическая сборка ZFS и SPL поддерживается.
> Вот только CDDL-лицензию почитай, чтобы понимать во что влип.

Бедные пингвинятки в проблемы GPL влипают :'(

Ответить | Правка | К родителю #138 | Наверх | Cообщить модератору

139. "В состав FreeBSD принята высокопроизводительная реализация s..."  –4 +/
Сообщение от Аноним (-), 12-Янв-16, 13:21 
Пользуются - практически все, притом давно в продакшне, притом что на линуксе зфс работает гораздо быстрее. И статическая сборка ZFS и SPL поддерживается. Вот только CDDL-лицензию почитай, чтобы понимать во что влип.
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

125. "В состав FreeBSD принята высокопроизводительная реализация s..."  +9 +/
Сообщение от glebius (ok), 12-Янв-16, 01:37 
> Вообще существует ли теоретическое обоснование перевода работ именно в ядро, в смысле,
> какая разница втом, будет ли работой заниматься поток юзера, переключившийся с ядро, или
> юзерспайсовый делегирует всё работу специализированому потоку в пространстве ядра, а сам
> будет ждать уведомлений через поллинг дескрипторов? В солярисе  имеется общий принцип:
> "на каждый чих создаём поток ядра". Это оправдано, так как ОС ориентирована на исполнение
> на машинах с сотнями CPU. Но непонятно зачем размножение потоков нужно в freebsb которая
> работает на тазиках с 4-8 CPU. Ну нахватает поток юзерспайсового сервиса запросов не отдачу
> контента, нагрузит работой по сетевому и блочному IO некоторое количество потоков в ядре,
> и те точно так же встанут в взаимных локах и зависнут в конкуренции на доступ к разделяемому
> ресурсу, как заблокировался бы юзерспайcовый поток, на ожидании наполнения кеша address_space в линуксе?

Тут есть два заблуждения. Первое, что вообще для ожидания I/O от устройства обязателен какой-то
поток, который будет блокироваться и ждать. Да, именно так часто и делают. Кому-то кажется,
что так проще развязать блокировку - создать под неё поток, который не жалко заблокировать.
Так же сделана и подсистема aio(4) в FreeBSD, в ней есть ядерный aio daemon. Хоть наша AIO
и намного совершеннее, чем в Linux, но мы решили не завязывать новый sendfile на неё. В новом
sendfile не появляется никаких новых потоков или контекстов. На время, когда диск занят копированием
данных из себя в память, никакого контекста нет, который была бы связан непосредственно с этой
операцией.
Второе заблуждение, это про 4-8 CPU. Ну просто какой-то дичайший стереотип. Мол я дома ставлю
FreeBSD поиграться на всякое старьё, наверное и Netflix так делает?! На самом деле нет. Ну просто
возьмите спеки на то поколение машин, где 4-8 кор и поглядите, сможет ли там PCI пропустить
100 Гбит/с.

Что касается ядро-неядро. 15 лет назад была мода всё нести в ядро, мол там быстрее. Теперь появился
netmap и dpdk и в связи с этим новая мода - всё в юзерленд, там быстрее. Ну мебель можно двигать
сколько угодно, а процессор выполняет инструкции с одной скоростью, не важно в каком он сейчас
контексте работает. 15 лет назад смысл переносить функционал в ядро был в том, чтобы избежать
копирования из юзерленд в ядро, а также чтобы уменьшить число переключений контекста, которые
тогда были дорогими. Новая же мода объясняется тем, что ядра обросли функционалом и стали
"подтормаживать на лишних операциях". Поэтому для примитивных задача а ля насрать 50 мегапакетов
в секунду, или же отфильтровать эти же 50 мегапакетов по примитивному критерию, выгоднее стало
писать с нуля сралку или фильтр на dpdk, а операционную систему использовать только для того,
чтобы залогиниться в систему и получить доступ к сетевой карте. Некоторые люди неправильно понимают
этот результат и думают, что если они перенесут весь TCP стек в юзерленд, то он тоже ускорится в
10 раз. Пока успехи на этом поприще достигают только те, кто опять же выполняют очень примитивные
задачи. А как только они доведут свои userland TCP до ума, и по функционалу они будут иметь паритет
с классическими ядерными сокетами, то и производительность выйдет на тот же самый уровень. Ну этот
весь абзац - моё личное мнение. Время покажет, ошибаюсь я или нет.

> В линуксе бликировка на диске в sendfile происходит только на время ожидания поступления данных с
> диска при запуске __blk_run_queue, так как заполнение beffer_head данным осуществляется в потоке,
> сделавшем sendfile. Остальное время поток, сделавший sendfile, не блокируется, а заполняет данными
> address_space файла, и мапит их в буфера pipe-а и исполняет калбек splice_write дескриптора выходного
> сокета.  Какая разница, какой поток будет блокироваться на время операции чтения данных с диска, поток
> юзерспайсового сервиса, делающего sendfile, или спецализированного, которому поток юзерпайсового
> сервиса делегирует эту работу?

У нас никакой не блокируется, в этом и соль.

Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

160. "В состав FreeBSD принята высокопроизводительная реализация s..."  +/
Сообщение от rob pike (?), 16-Янв-16, 14:01 
> Ну мебель можно двигать сколько угодно, а процессор выполняет инструкции с одной скоростью, не важно в каком он сейчас контексте работает.

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

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

Они и сейчас дорогие. И становятся только дороже с "поумнением" процессоров.
> 14,000 cycles after a syscall, code is still not quite running at full speed
> Some of the syscalls cause 40+ TLB evictions. For a chip with a 64-entry d-TLB, that nearly wipes out the TLB. The cache evictions aren’t free, either.
> Новая же мода объясняется тем, что ядра обросли функционалом
> как только они доведут свои userland TCP до ума, и по функционалу они будут иметь паритет

с классическими ядерными сокетам

Что не нужно приблизительно никому.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру