Описание тега epoll
NoneEpoll - это API уведомления о готовности Linux 2.6 для сокетов, каналов и специальных дескрипторов событий, сигналов и таймеров, которые могут работать как в режиме с запуском по уровню, так и по фронту, хотя в настоящее время только поведение с запуском по уровню соответствует документации.. В отличие от опроса или выбора, epoll масштабирует O(1) по отношению к количеству дескрипторов и O(N) по отношению к реализованным событиям.
1
ответ
epoll_create и epoll_wait
Меня интересовали параметры двух API epoll. epoll_create (int size) - в этом API размер определяется как размер пула событий. Но, похоже, что больше событий, чем размер все еще работает. (Я установил размер как 2 и заставил пул событий иметь 3 событ…
06 мар '12 в 02:46
1
ответ
Не завершать программу в epoll_wait
Я хочу справиться, если epoll_wait был прерван по любой причине (например, SIGINT) while ( true ) { n = epoll_wait ( epoll_fd, events, max_events, -1 ); if ( errno == EINTR ) { ... } } Но отладчик даже не пошел в if, Программа была прекращена в epol…
08 июн '13 в 13:34
3
ответа
Как реализовать тайм-аут epoll?
Я работаю над сетевым программированием с использованием epoll. Кажется, работает нормально. Я хотел бы добавить функцию тайм-аута, чтобы, если клиент не отправлял ничего в течение длительного периода времени, он просто отключил бы клиента. Как мне …
06 июл '11 в 01:04
1
ответ
Эполл с активированным краем и один выстрел сообщает только один раз
В настоящее время я добавляю sockfds, созданные из accept, в экземпляр epoll со следующими событиями: const int EVENTS = ( EPOLLET | EPOLLIN | EPOLLRDHUP | EPOLLONESHOT | EPOLLERR | EPOLLHUP); Как только событие инициируется, я передаю его потоку об…
24 ноя '15 в 04:23
2
ответа
epoll мгновенно возвращается на стандартный ввод
Я пытался сделать неблокирующий ввод-вывод с помощью стандартного ввода и некоторых других fd. Я добавил их в библиотеку ржавчины mio, но во время отладки с помощью strace я обнаружил, что это проблема epoll. Когда я добавляю stdin в epoll, epoll_wa…
30 июн '17 в 14:31
1
ответ
Общее объяснение того, как работает epoll?
Я делаю техническую переписку о переключении с опроса базы данных (через синхронный вызов хранимой процедуры) на очередь сообщений (через pub/sub). Я хотел бы объяснить, как опрос базы данных сильно отличается и намного тяжелее, чем установка соедин…
12 дек '12 в 17:48
1
ответ
Блокировка epoll_wait на сигнальном сокете
Извините за длинный пост. Я бы опубликовал код, чтобы было легче понять проблему, с которой я столкнулся. Похоже, что если к экземпляру epoll добавлен сигнальный сокет, epoll_wait на экземпляре epoll не будет блокироваться. Следующий пример позволил…
21 июн '13 в 14:25
1
ответ
Почему epoll_wait() не реагирует на dup2(writable_fd, non_writable_fd)?
Давайте представим, что я добавил не доступный для записи fd в epoll watcher, чтобы ждать, когда он станет доступным для записи. epoll_ctl(epollfd, EPOLL_CTL_ADD, non_writable_fd, {EPOLLOUT}) non_writable_fd все еще не для записи и epoll_wait вернет…
14 янв '15 в 16:50
1
ответ
Плохо сбалансированный сокет принимает ядро Linux 3.2 против ядра 2.6
Я запускаю довольно крупномасштабное приложение Node.js 0.8.8 с использованием Cluster с 16 рабочими процессами на 16-процессорной коробке с гиперпоточностью (таким образом, 32 логических ядра). Мы обнаруживаем, что после перехода на ядро Linux 3.…
07 дек '12 в 20:55
1
ответ
Очередь ожидания Python и сокет в одном потоке
Мое приложение - tcp сервер, использующий epoll для ожидания запросов. Я хочу дождаться очереди в том же цикле. то есть: wake up the thread either socket r/w is available or queue is not empty. Я, конечно, много гуглил, но ни одного хорошего решения…
05 сен '16 в 12:09
4
ответа
Масштабируемый серверный фреймворк в C++
Я ищу написать серверное приложение на C++, предназначенное для одновременной работы с десятками тысяч клиентов. Он должен работать под Windows и Linux. Я искал фреймворки и библиотеки и наткнулся на Boost Asio, который кажется очень зрелой и широко…
15 июл '11 в 00:15
1
ответ
Тайм-аут простаивающих соединений на сервере epoll
Я пишу TCP-сервер в C, который использует epoll() мультиплексирование ввода / вывода для управления одновременными соединениями. Я хочу установить тайм-аут соединений, которые простаивают более разрешенного времени. До сих пор я храню переменную las…
09 авг '18 в 09:16
1
ответ
Работа с сокетом прослушивания от epoll
Все ниже от man epoll страница: Функция do_use_fd() использует новый готовый дескриптор файла, пока EAGAIN не будет возвращен read(2) или write(2). Пример кода для срабатывания ET: for(;;) { nfds = epoll_wait(kdpfd, events, maxevents, -1); for(n = 0…
19 июн '11 в 09:35
1
ответ
Производительность epoll для меньших значений времени ожидания
У меня есть однопоточный серверный процесс, который отслеживает несколько (около 100) сокетов через epoll в цикле, мой вопрос заключается в том, как определить оптимальное значение значения тайм-аута epoll_wait, так как это однопоточный процесс, все…
29 ноя '11 в 10:05
1
ответ
Сеть с epoll: обработка ошибок
Я работаю над сетевым приложением, написанным на C, с использованием средства Linux epoll. Я действительно реализую свой собственный цикл обработки событий, и да, я знаю, что есть библиотеки, которые делают это для меня. Однако это всего лишь упражн…
18 окт '14 в 10:02
1
ответ
Выбрать и опрос не работает правильно
Я пишу автоматический мультиплексор потока в Java, который должен прочитать большое количество FileDescriptors. Чтобы прочитать файловые дескрипторы (или сокеты и т. Д., Которые имеют FileDescriptor), мне нужна точная подсказка, если у меня есть нес…
11 авг '13 в 20:59
1
ответ
NGINX падает несколько раз
У меня проблемы с NGINX. У меня есть 3 системы (EC2) с балансировкой нагрузки (ELB) под управлением NGINX и php-fpm. На ВСЕХ 3 системах NGINX загадочно падает. Ниже я включил часть журнала в режиме отладки. Перед тем, как пройти мимо журнала, вот мо…
17 сен '14 в 16:10
1
ответ
Как использовать epoll_event data.ptr
Мне все труднее использовать void *ptr в epoll_event. Я могу просто связать это со структурой? Например, я могу сделать что-то подобное? Поскольку я пытаюсь сделать что-то подобное, но это не работает, первый цикл в сокете прослушивания хорош, но по…
11 авг '12 в 18:44
1
ответ
Правильная обработка EWOULDBLOCK с опросом на неблокирующем сокете
Я работаю над опросом TCP-демона уже некоторое время. Недавно я прочитал, что неблокирующие сокеты могут иногда выдавать ошибку EWOULDBLOCK во время send() или recv(). Насколько я понимаю, если recv () выбрасывает EWOULDBLOCK, это (обычно) означает,…
09 сен '10 в 04:42
0
ответов
Как bluez использует epoll_create1 в двух разных процессах?
Я использую bluez mainloop_init (который внутренне использует epoll_create1) и mainloop_run(который внутренне использует epoll_wait) в трех разных процессах, скажем, N1, N2 и N3. Когда я пытаюсь подключиться от N1 к N3 (это означает, что N3 будет по…
28 сен '18 в 05:44