|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Davydov 2:5020/400 20 Oct 2005 10:57:23 To : Vadim Goncharov Subject : Re: discard server -------------------------------------------------------------------------------- > From: Vadim Goncharov <vadimnuclight@tpu.ru> > Date: Wed, 19 Oct 2005 17:44:40 +0000 (UTC) > > >>Вот сейчас наваял, жрать должен минимум (естественно, я его проверил > >>толко на маленьких нагрзках). Таймауты - только SO_KEEPALIVE, нормальные > >>лень было делать. > >>>=== begin discard.c === > VD> Прикольная штучка. Только она, того, не совсем работает. Открыла тысячу > VD> сокетов и давай жрать 100% процессора. > >Хм, интересно. Hачала жрать при неактивных соединениях, без данных? Ага. Hо при непрерывном (десятки в секунду) потоке новых соединений. >Hадо >опытных программистов спросить. Вообще-то select() так себя вести не >должен, afaik. Я не проверял, на какой именно функции оно застревает. Hо top показывает system, что, впрочем, естественно: ведь в программе кроме сисколлов, почитай, ничего и нет. > VD> При том, что всякие kern.maxfiles на пару порядков больше. > >Перед всеми инклудами, в самом начале, впиши строчку: >#define FD_SETSIZE 5000 // или сколько тебе надо (дефолт 1024) > >Так же можешь проверить в начале инициализации переменных, после вызова >getdtablesize(), сколько дескрипторов реально доступно процессу. Проверял. Совпадает с kern.maxfilesperproc. >P.S. А что у тебя за задача такая и чем создаешь столько соединений? >Хочу потестировать. Да задача-то дурацкая. Есть шлюз с NATом, пускающий локалку в интернет, а в локалке на некоторых виндах вирусы завелись, которые сканят 445 порт по всему интернету. Казалось бы, хрен бы с ними, но этот долбёж перегружает трафикосчиталку, которая connection-oriented и поэтому на каждый syn вынуждена новую запись делать. Идти разбираться лень, вот я и подумал, дескать, возьму тачку помощнее, направлю на неё все эти запросы, чтобы, значит, вирусы пакеты не только слали, но и получали - авось у виндов ресурсы кончатся раньше и ихние владельцы зачешутся. Hо, видать, придётся самому кусочек tcp/ip стэка писать, чтобы оно в обход ядра работало, без сокетов, может, даже, stateless. Вал. Дав. --- ifmail v.2.15dev5.3 * Origin: St. Petersburg State University (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/441774a5cc9b.html, оценка из 5, голосов 10
|