Kucher2 122 Опубликовано: 2010-10-09 18:25:15 Share Опубликовано: 2010-10-09 18:25:15 Привет всем. Я опять к Вам. Имеется шлюз на FreeBSD 8.1 RELASE и на нём связка IPFW+PF. Сам шлюз собран на настольном ПК с 1 слотом PCI и 1 PCI-E. Стоят простенькие сетевые, на чипах Реалтек. Памяти 1,5ГБ, процессор - простенький двухядерный целерончик, один из самых слабых (то что когда-то впихнулось на материнку). Заметил сегодня такую неприятную для себя картину: При входящем трафике около 40Мбит (3500 пакетов/сек) и исходящем около 20Мбит (тоже около 3500 пакетов/сек) - возрастают пинги на шлюз провайдера с 1-2мс до 40-60мс. Делаю deny allow для всей сети на шлюзе - пинги становятся 1мс. Всё, пора менять железку? Прилагаю скрин TOP -S на шлюзе. Как видно проц не загружен почти. Может сетевую ткнуть другую, типа Intel? Ссылка на сообщение Поделиться на других сайтах
Neelix 33 Опубліковано: 2010-10-09 18:29:50 Share Опубліковано: 2010-10-09 18:29:50 трафика совсем мало для такой загрузки целерон 1.5 справляется с 4к пакетов в 15% нагрузки смени конечно, хотя бы на простую pro 100/1000 Ссылка на сообщение Поделиться на других сайтах
rsst 406 Опубліковано: 2010-10-09 18:31:09 Share Опубліковано: 2010-10-09 18:31:09 Привет всем. Я опять к Вам. Имеется шлюз на FreeBSD 8.1 RELASE и на нём связка IPFW+PF. Сам шлюз собран на настольном ПК с 1 слотом PCI и 1 PCI-E. Стоят простенькие сетевые, на чипах Реалтек. Памяти 1,5ГБ, процессор - простенький двухядерный целерончик, один из самых слабых (то что когда-то впихнулось на материнку). Заметил сегодня такую неприятную для себя картину: При входящем трафике около 40Мбит (3500 пакетов/сек) и исходящем около 20Мбит (тоже около 3500 пакетов/сек) - возрастают пинги на шлюз провайдера с 1-2мс до 40-60мс. Делаю deny allow для всей сети на шлюзе - пинги становятся 1мс. Всё, пора менять железку? Прилагаю скрин TOP -S на шлюзе. Sempron 2600+ натит и роутит около 120мбит трафика, загрузка проца до 70-80%. Микротик. Сетевуха - дешевый гигабитный длинк. Так что думаю не в железке дело. Ссылка на сообщение Поделиться на других сайтах
Neelix 33 Опубліковано: 2010-10-09 18:33:45 Share Опубліковано: 2010-10-09 18:33:45 Привет всем. Я опять к Вам. Имеется шлюз на FreeBSD 8.1 RELASE и на нём связка IPFW+PF. Сам шлюз собран на настольном ПК с 1 слотом PCI и 1 PCI-E. Стоят простенькие сетевые, на чипах Реалтек. Памяти 1,5ГБ, процессор - простенький двухядерный целерончик, один из самых слабых (то что когда-то впихнулось на материнку). Заметил сегодня такую неприятную для себя картину: При входящем трафике около 40Мбит (3500 пакетов/сек) и исходящем около 20Мбит (тоже около 3500 пакетов/сек) - возрастают пинги на шлюз провайдера с 1-2мс до 40-60мс. Делаю deny allow для всей сети на шлюзе - пинги становятся 1мс. Всё, пора менять железку? Прилагаю скрин TOP -S на шлюзе. Sempron 2600+ натит и роутит около 120мбит трафика, загрузка проца до 70-80%. Микротик. Сетевуха - дешевый гигабитный длинк. Так что думаю не в железке дело. Думаю в 8.1 дело Поставь 7.2-7.3 Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-09 18:52:51 Автор Share Опубліковано: 2010-10-09 18:52:51 Чёрт...запасной железки нет, не начем эксперименты проводить. Может 8.1 пропатчить как-то можно? Может оптимизация ядра какая-нить... хотя на скрине грузят больше всего именно внешние интерфейсы, похоже. У меня ещё подозрения на банально кривую мать. Потому что она дешёвая, для настольного ПК. ХМ, на внутреннем ИФ тоже задержки. :/ Пингую чичас его со своей машины. Внутренний - PCI карта, хотя и гигабит. Внешний - PCI-E. Все дешёвенькие, конечно. Ссылка на сообщение Поделиться на других сайтах
adeep 212 Опубліковано: 2010-10-09 19:40:14 Share Опубліковано: 2010-10-09 19:40:14 замените сетевушку на интел, даже десктоп интел вытянет до 300мбит, у вас процессор скушался благодаря intr Ссылка на сообщение Поделиться на других сайтах
ZuarasiZ 37 Опубліковано: 2010-10-09 20:10:05 Share Опубліковано: 2010-10-09 20:10:05 Высокий интеррапт, т.е. до проца не доходит. Нужно искать узкое место в "обвесе" - сетевые карты, жесткий диск и т.п. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-09 20:35:06 Автор Share Опубліковано: 2010-10-09 20:35:06 Ага.. большое спасибо. Буду сетевую искать. Какую кстати посоветуете? Желательно название/цена. Насколько я понял Intel - 2+ головые, т.е. одного слота PCI-E будет достаточно? Нашёл такую: http://fotomag.com.ua/Intel_E1G42ETBLK-info.html и такую http://fotomag.com.ua/Intel_EXPI9402PT-info.html (У этой в описании есть поддержка FreeBSD). Ссылка на сообщение Поделиться на других сайтах
Mobil 68 Опубліковано: 2010-10-09 21:48:04 Share Опубліковано: 2010-10-09 21:48:04 Поставьте 2х портовый Интел на шине PCI-E Ссылка на сообщение Поделиться на других сайтах
KaYot 3 710 Опубліковано: 2010-10-10 07:36:12 Share Опубліковано: 2010-10-10 07:36:12 Прилагаю скрин TOP -S на шлюзе. Как видно проц не загружен почти. Может сетевую ткнуть другую, типа Intel? Откуда вы взяли что проц не загружен? Как раз загрузка близка к 100% судя по вашему топу, 48% interrupts значит что одно ядро на 100% занято обработкой перываний. Меняйте сетевки или пилите систему, не должно быть такой загрузки даже на дешевом целероне(он ведь таки core2). Ссылка на сообщение Поделиться на других сайтах
trinity0333 11 Опубліковано: 2010-10-10 07:49:23 Share Опубліковано: 2010-10-10 07:49:23 em сетевую на шине PCI-E + драйвера от яндекса и будет даже в час-пик типа. Правда фря 8.0 last pid: 10426; load averages: 0.26, 0.22, 0.22 up 4+23:50:31 20:40:52 223 processes: 5 running, 200 sleeping, 18 waiting CPU 0: 0.0% user, 0.0% nice, 8.6% system, 0.0% interrupt, 91.4% idle CPU 1: 0.4% user, 0.0% nice, 9.4% system, 0.7% interrupt, 89.5% idle CPU 2: 0.0% user, 0.0% nice, 4.1% system, 0.0% interrupt, 95.9% idle CPU 3: 0.0% user, 0.0% nice, 15.7% system, 0.0% interrupt, 84.3% idle Mem: 391M Active, 878M Inact, 436M Wired, 428K Cache, 366M Buf, 1718M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 4 171 ki31 0K 64K RUN 0 425.2H 386.33% idle 0 root 12 -68 0 0K 176K - 3 47.4H 5.86% kernel 12 root 18 -64 - 0K 288K WAIT 0 71:43 0.00% intr 2074 mysql 38 44 0 591M 202M ucond 1 39:01 0.00% mysqld Ссылка на сообщение Поделиться на других сайтах
KaYot 3 710 Опубліковано: 2010-10-10 07:57:37 Share Опубліковано: 2010-10-10 07:57:37 А зачем такие сложности для системы с 2 ядрами и 2 сетевками?) Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-10 08:45:45 Автор Share Опубліковано: 2010-10-10 08:45:45 Хез, наверное хочется чтоб работало. Мне всегда казалось что использование дешёвых десктопных железяк для таких целей - когда-то выйдет боком. Просто выбора особого нет. Но с чего-то ж надо начинать... начну с нормальной сетевушки. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-13 08:17:41 Автор Share Опубліковано: 2010-10-13 08:17:41 Включил polling на сетевых, изменил пару значений через sysctl. Ядро собрано правда без оции options HZ=1000 Получилось "те же яйца, но в профиль". На скринах внизу видать, что interrupt теперь хоть и невысокий, зато поднялась нагрузка на систему (оно и понятно, исполнитель сменился, а задача-то осталась). Причём постоянно. Сейчас трафик около 10Мбит в обе стороны и пакетов в совокупности около 5000. Очень надеюсь что новая сетевая исправит положение. А то уже з@е... sysctl | grep polling kern.polling.idlepoll_sleeping: 0 kern.polling.stalled: 3576 kern.polling.suspect: 870762 kern.polling.phase: 0 kern.polling.handlers: 2 kern.polling.residual_burst: 0 kern.polling.pending_polls: 0 kern.polling.lost_polls: 2410641 kern.polling.short_ticks: 118 kern.polling.reg_frac: 20 kern.polling.user_frac: 50 kern.polling.idle_poll: 1 kern.polling.each_burst: 5 kern.polling.burst_max: 300 kern.polling.burst: 171 vmstat -i interrupt total rate irq1: atkbd0 1345 0 irq19: atapci1 5528785 5 irq20: re1 1836753550 1764 cpu0: timer 2056174281 1974 irq256: re0 1944982931 1867 cpu1: timer 2056174167 1974 Total 7899615059 7586 Щас добавил в ядро "options HZ=1000", пересобрал и ребутнулся. То же самое. Помониторил вечером - нагрузка частично "перетекает" на system с interrupt. Возможно благодаря этому пинги уменьшились в 2-3 раза, но всё равно "не фонтан", ибо когда нагрузка совсем мала - пинги 1мс, сейчас 2-18. И по прежнему есть потери пакетов при этой свистопляске, 1-2%. Жду сетевую карту. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-27 22:26:24 Автор Share Опубліковано: 2010-10-27 22:26:24 Привезли сегодня двухголовый Intel. Поставил. Сейчас общий трафик порядка 10Мбит, 1500pps. Прописал: sysctl net.inet.ip.fastforwarding=1 Завтра ещё вечером при большом трафике посмотрю, но кажется - дело табак. Картинка вот такая (top -HSP 10). Ссылка на сообщение Поделиться на других сайтах
Mechanik 49 Опубліковано: 2010-10-27 22:31:58 Share Опубліковано: 2010-10-27 22:31:58 прибей еще сетевушки каждую к своему ядру Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-27 22:41:01 Автор Share Опубліковано: 2010-10-27 22:41:01 прибей еще сетевушки каждую к своему ядру Подскажите пожалуйста как это сделать на FreeBSD? Драйвер к сетевой не ставил. Просто вытащил старые, эту ткнул в материнку, поправил конфиги и стартанул сервер. Это имеет значение? Если да - где взять cвежий драйвер? Поискал в Инете, на официальном сайте Intel есть только для FreeBSD 7, а у меня 8.1. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-28 10:55:09 Автор Share Опубліковано: 2010-10-28 10:55:09 Сделал ifconfig igb0 polling, но по повторному ifconfig никаких изменений в конфигурации сетевой не появилось (нет подтверждения что polling включён). Попробовал прописать настройки в rc.onf и ребутнулся - никого. На "реалтеках" писалось про polling, теперь на "Intel® ET" - нет. Это нормально? Ссылка на сообщение Поделиться на других сайтах
VitalyMoiseev 112 Опубліковано: 2010-10-28 11:01:26 Share Опубліковано: 2010-10-28 11:01:26 на igb пулинг не нужен! Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-28 13:59:45 Автор Share Опубліковано: 2010-10-28 13:59:45 Ок. Куда тогда ещё копнуть по поводу высокого interrupt? Правил ipfw порядка 900, есть шейп юзеров. Трансляция и проброс ip делает pf. И что посоветуете на счёт драйвера? Ссылка на сообщение Поделиться на других сайтах
adeep 212 Опубліковано: 2010-10-28 14:29:31 Share Опубліковано: 2010-10-28 14:29:31 Ок. Куда тогда ещё копнуть по поводу высокого interrupt? Правил ipfw порядка 900, есть шейп юзеров. Трансляция и проброс ip делает pf. И что посоветуете на счёт драйвера? Поллинг надо выкинуть из конфига ядра вообще. Драйвер в базе свежий, менять не надо (если есть желание, то можно обновиться до 8-STABLE). Откажитесь от pf в пользу ipfw nat. Покажите systat -vm 1 Покажите sysctl dev.igb Ссылка на сообщение Поделиться на других сайтах
alex_o 1 194 Опубліковано: 2010-10-28 14:38:44 Share Опубліковано: 2010-10-28 14:38:44 У меня на фре 7.2 igb выкобенивалась до тех пор, пока не сделал ifconfig igb0 -lro Попробуй, может на 8.1 этот рецепт еще актуален. Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2010-10-28 14:46:39 Share Опубліковано: 2010-10-28 14:46:39 и правила файрвола бы посмотреть небось таблицами и пайпами по маске там и не пахнет Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-10-28 15:03:06 Share Опубліковано: 2010-10-28 15:03:06 /boot/loader.conf hw.em.rx_process_limit="-1" hw.em.rx_abs_int_delay="33" hw.em.rxd="4096" hw.em.txd="4096" hw.em.rx_int_delay=800 hw.em.tx_int_delay=800 И живём без прерываний Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-28 15:48:02 Автор Share Опубліковано: 2010-10-28 15:48:02 Поллинг надо выкинуть из конфига ядра вообще. Т.е. его обязательно надо выкинуть? Откажитесь от pf в пользу ipfw nat. Не хотелось бы, он мне нравится, к тому же у меня на нём завязано кое-что. Покажите systat -vm 1Покажите sysctl dev.igb systat: sysctl: dev.igb.0.%desc: Intel(R) PRO/1000 Network Connection version - 1.7.3 dev.igb.0.%driver: igb dev.igb.0.%location: slot=0 function=0 dev.igb.0.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000 dev.igb.0.%parent: pci1 dev.igb.0.debug: -1 dev.igb.0.stats: -1 dev.igb.0.flow_control: 3 dev.igb.0.enable_aim: 1 dev.igb.0.low_latency: 128 dev.igb.0.ave_latency: 450 dev.igb.0.bulk_latency: 1200 dev.igb.0.rx_processing_limit: 100 dev.igb.1.%desc: Intel(R) PRO/1000 Network Connection version - 1.7.3 dev.igb.1.%driver: igb dev.igb.1.%location: slot=0 function=1 dev.igb.1.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000 dev.igb.1.%parent: pci1 dev.igb.1.debug: -1 dev.igb.1.stats: -1 dev.igb.1.flow_control: 3 dev.igb.1.enable_aim: 1 dev.igb.1.low_latency: 128 dev.igb.1.ave_latency: 450 dev.igb.1.bulk_latency: 1200 dev.igb.1.rx_processing_limit: 100 ipfw list: #Пропускает драфик для DNS и NTP 00004 allow udp from any 123 to any dst-port 123 00005 allow ip from any 22 to any dst-port 22 00015 allow udp from 127.0.0.1 53 to any 00016 allow udp from any to 127.0.0.1 dst-port 53 00040 allow icmp from 10.0.0.0/24 to any via igb0 icmptypes 0,8 00041 allow icmp from 10.0.1.0/24 to any via igb0 icmptypes 0,8 00042 allow icmp from 10.0.2.0/24 to any via igb0 icmptypes 0,8 00043 allow icmp from 10.0.3.0/24 to any via igb0 icmptypes 0,8 00044 allow icmp from 10.0.4.0/24 to any via igb0 icmptypes 0,8 00045 allow icmp from 10.0.5.0/24 to any via igb0 icmptypes 0,8 00046 allow icmp from 10.0.6.0/24 to any via igb0 icmptypes 0,8 #Попытка пропускать VPN-трафик 00051 allow tcp from any to me dst-port 1723 setup 00052 allow tcp from me to any dst-port 1723 setup 00053 allow gre from me to any 00054 allow gre from any to me 00059 deny log logamount 100 icmp from any to any frag 00060 allow icmp from any to any via igb1 00070 deny log logamount 100 ip from any to 127.0.0.0/8 00080 deny log logamount 100 ip from 127.0.0.0/8 to any 00100 allow ip from any to any via lo0 #Правила для авторизатора 00299 allow udp from any 8888 to 192.168.0.0/24 dst-port 8888 via igb0 00300 allow udp from any 8888 to 10.0.0.0/24 dst-port 8888 via igb0 00301 allow udp from any 8888 to 10.0.1.0/24 dst-port 8888 via igb0 00302 allow udp from any 8888 to 10.0.2.0/24 dst-port 8888 via igb0 00303 allow udp from any 8888 to 10.0.3.0/24 dst-port 8888 via igb0 00304 allow udp from any 8888 to 10.0.4.0/24 dst-port 8888 via igb0 00305 allow udp from any 8888 to 10.0.5.0/24 dst-port 8888 via igb0 00306 allow udp from any 8888 to 10.0.6.0/24 dst-port 8888 via igb0 #Правила для конфигуратора 00314 allow tcp from 10.0.0.10 5555 to 10.0.1.2 via igb0 00315 allow tcp from 10.0.1.2 to 10.0.0.10 dst-port 5555 via igb0 00320 allow tcp from 10.0.0.10 5555 to 10.0.1.5 via igb0 00321 allow tcp from 10.0.1.5 to 10.0.0.10 dst-port 5555 via igb0 00322 allow tcp from 10.0.0.10 5555 to 10.0.2.5 via igb0 00323 allow tcp from 10.0.2.5 to 10.0.0.10 dst-port 5555 via igb0 00324 allow tcp from 10.0.0.10 5555 to 10.0.3.5 via igb0 00325 allow tcp from 10.0.3.5 to 10.0.0.10 dst-port 5555 via igb0 #Разрешить подсетям ходит на внутренний WEB-сервер без подключения к Инету 00400 allow tcp from me 80 to 10.0.0.0/24 00410 allow tcp from 10.0.0.0/24 to me dst-port 80 00420 allow tcp from me 80 to 10.0.1.0/24 00430 allow tcp from 10.0.1.0/24 to me dst-port 80 00440 allow tcp from me 80 to 10.0.2.0/24 00450 allow tcp from 10.0.2.0/24 to me dst-port 80 00460 allow tcp from me 80 to 10.0.3.0/24 00470 allow tcp from 10.0.3.0/24 to me dst-port 80 00480 allow tcp from me 80 to 10.0.4.0/24 00480 allow tcp from me 80 to 10.0.5.0/24 00480 allow tcp from me 80 to 10.0.6.0/24 00490 allow tcp from 10.0.4.0/24 to me dst-port 80 00490 allow tcp from 10.0.5.0/24 to me dst-port 80 00490 allow tcp from 10.0.6.0/24 to me dst-port 80 #Счётчик для графиков 00500 count ip from any to any out via igb0 00510 count ip from any to any in via igb0 00520 count ip from any to any via igb0 00600 count ip from 10.0.0.0/8 to any out via igb0 00610 count ip from 172.16.0.0/12 to any out via igb0 00620 count ip from 192.168.0.0/24 to any out via igb0 00630 count ip from 91.201.176.0/22 to any out via igb0 00700 count ip from any to 10.0.0.0/8 in via igb0 00710 count ip from any to 172.16.0.0/12 in via igb0 00720 count ip from any to 192.168.0.0/24 in via igb0 00750 count ip from any to 192.168.0.10 via igb0 00751 count ip from 192.168.0.10 to any via igb0 00760 count ip from 10.0.0.0/8 to 192.168.0.10 via igb0 00761 count ip from 172.16.0.0/12 to 192.168.0.10 via igb0 00762 count ip from 192.168.0.0/24 to 192.168.0.10 via igb0 00770 count ip from 192.168.0.10 to 10.0.0.0/8 via igb0 00771 count ip from 192.168.0.10 to 172.16.0.0/12 via igb0 00772 count ip from 192.168.0.10 to 192.168.0.0/24 via igb0 00773 count ip from 192.168.0.10 to 91.201.176.0/22 via igb0 #разрешить DNS для подсетей, даже если Нет доступа в Инет 19040 allow udp from 10.0.0.0/24 to any dst-port 53 via igb0 19049 allow udp from any 53 to 192.168.0.0/24 via igb0 19050 allow udp from any 53 to 10.0.0.0/24 via igb0 19051 allow udp from any 53 to 10.0.1.0/24 via igb0 19052 allow udp from any 53 to 10.0.2.0/24 via igb0 19053 allow udp from any 53 to 10.0.3.0/24 via igb0 19054 allow udp from any 53 to 10.0.4.0/24 via igb0 19055 allow udp from any 53 to 10.0.5.0/24 via igb0 19056 allow udp from any 53 to 10.0.6.0/24 via igb0 19056 allow udp from any 53 to 192.168.0.0/24 via igb0 #Правила для юзеров 29008 allow icmp from 10.0.1.56 to any icmptypes 0,3,4,11,12 29009 pipe 29001 ip from any to 10.0.1.56 via igb0 29010 pipe 29002 ip from 10.0.1.56 to any via igb0 #Правила для юзеров 50020 deny log logamount 100 ip from 10.0.0.0/24 to 10.0.0.10 via igb0 50021 deny log logamount 100 ip from 192.168.10.0/24 to 192.168.20.1 via igb0 50022 deny log logamount 100 ip from 192.168.10.0/24 to 192.168.30.1 via igb0 50029 allow tcp from any to any out via igb1 setup 50030 allow tcp from any to any via igb1 established 50031 allow udp from any to any out via igb1 50032 allow udp from any to any in recv igb1 65534 deny log logamount 100 ip from any to any 65535 deny ip from any to any alex_o, andryas - спасибо за помощь, попробую как только смогу. У меня на фре 7.2 igb выкобенивалась до тех пор, пока не сделал ifconfig igb0 -lroПопробуй, может на 8.1 этот рецепт еще актуален. Попробовал, к сожалению не помогло. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас