The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"В состав FreeBSD принята высокопроизводительная реализация s..."
Отправлено metallica, 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, или спецализированного, которому поток юзерпайсового сервиса делегирует эту работу?


 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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