|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 20 Oct 2005 18:14:01 To : Valentin Davydov Subject : Re: discard server -------------------------------------------------------------------------------- Hi Valentin Davydov! On Thu, 20 Oct 2005 06:57:23 +0000 (UTC); Valentin Davydov wrote about 'Re: discard server': >>>Вот сейчас наваял, жрать должен минимум (естественно, я его проверил >>>толко на маленьких нагрзках). Таймауты - только SO_KEEPALIVE, нормальные >>>лень было делать. >>>>=== begin discard.c === VD>> Прикольная штучка. Только она, того, не совсем работает. Открыла тысячу VD>> сокетов и давай жрать 100% процессора. >>Хм, интересно. Hачала жрать при неактивных соединениях, без данных? VD> Ага. Hо при непрерывном (десятки в секунду) потоке новых соединений. >>Hадо опытных программистов спросить. Вообще-то select() так себя вести не >>должен, afaik. VD> Я не проверял, на какой именно функции оно застревает. Hо top показывает VD> system, что, впрочем, естественно: ведь в программе кроме сисколлов, VD> почитай, ничего и нет. А зря не проверял. Судя по описанию, оно постоянно вызывает accept() - а вот куда оно добавляет новые сокеты, если fd_set уже полон?.. Получается, что select() не проверяет новые сокеты на чтение (и данные копятся в буферах ядра), а гоняет туда-сюда полный набор старых неактивных дескрипторов. >>P.S. А что у тебя за задача такая и чем создаешь столько соединений? >>Хочу потестировать. VD> Да задача-то дурацкая. Есть шлюз с NATом, пускающий локалку в интернет, VD> а в локалке на некоторых виндах вирусы завелись, которые сканят 445 порт VD> по всему интернету. Казалось бы, хрен бы с ними, но этот долбёж перегружает VD> трафикосчиталку, которая connection-oriented и поэтому на каждый syn А не проще ли зарубить файрволом нафиг порты 135, 139, 445 до считалки? VD> вынуждена новую запись делать. Идти разбираться лень, вот я и подумал, VD> дескать, возьму тачку помощнее, направлю на неё все эти запросы, чтобы, VD> значит, вирусы пакеты не только слали, но и получали - авось у виндов VD> ресурсы кончатся раньше и ихние владельцы зачешутся. Это от вируса зависит. Я в своей сети только один раз сталкивался с виндой, на которой отказала сеть (пробилась только мирка %) а юзер долго в мирке меня убеждал, что у него вообще интернета нет ;)) из-за вируса, генерирующего трафик слишком быстро. Причем оно молча рубилось на файрволе без всяких ACK. VD> Hо, видать, придётся самому кусочек tcp/ip стэка писать, чтобы оно в VD> обход ядра работало, без сокетов, может, даже, stateless. Stateless не получится, это не UDP. Даже и не знаю, стоит ли браться за переделку сервера под kqueue()/kevent() при такой задаче - может и правда лучше решение glebius'а с нетграфом? -- WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight] --- slrn/0.9.8.1 on FreeBSD 4.11/i386 * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/10359935dccdf.html, оценка из 5, голосов 10
|