вопрос по сокетам
-
- Заглянувший
- Сообщения: 3
- Зарегистрирован: 20 июн 2005, 23:37
- Откуда: как бы Минск
- Контактная информация:
вопрос по сокетам
300 сокетов постоянно обмениваються данными (пробовал и poll и select). Загрузка СPU в районе 30% как показывает sar и top. Никто не подскажет, можно ли уменьшить загрузку CPU.
обычно такая фигня, если постоянно опрашивать writefds (select) и POLLOUT (poll)
происходит по причине того, что и poll и select фактически вхолостую гоняют процессор (т.к. мгновенно возвращают то, что сокет готов к приёму данных)
рекомендации (если это наш случай) - логику переделать так, чтобы writefds/POLLOUT взводилось только перед передачей данных, а не всё время.
происходит по причине того, что и poll и select фактически вхолостую гоняют процессор (т.к. мгновенно возвращают то, что сокет готов к приёму данных)
рекомендации (если это наш случай) - логику переделать так, чтобы writefds/POLLOUT взводилось только перед передачей данных, а не всё время.
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...
-
- Заглянувший
- Сообщения: 3
- Зарегистрирован: 20 июн 2005, 23:37
- Откуда: как бы Минск
- Контактная информация:
Дело в том что poll() работает не в постоянном цикле. Он вызываетсья через заданный интервал для того, что бы забирать пакеты которые могут прийти на этот сокет (POLLIN). В то же время сокет может посылать что то свое. И вот когда их как бы и не так много, штук 300, они каждые 10мс где то получают данные и каждые 10 мс отсылают.
Вот все никак не пойму нормально это или нет
Вот все никак не пойму нормально это или нет