woda Posted January 19, 2012 Posted January 19, 2012 Здравствуйте! Имеется небольшая домашняя сеть(микропровайдер). После расширения внешнего канала увеличилась нагрузка на двухпроцессорный сервер-роутер (FreeBSD 7.4) 2x2.26 Intel Xeon E5607 на intel s5500bcr/ Установлены Pci-e интелевские серверные сетевые адаптеры. Интерфейсы em3-em4: лаг интерфейс, смотрит в сторону провайдера, прокачивает примерно 1Гигабит инета. em1-em2 смотрят на сервера доступа. Сервер выполняет функцию роутера и натит с помощью pf. Сейчас top -S показывает следующее: last pid: 49751; load averages: 2.94, 2.89, 3.09 up 0+13:11:26 20:38:40 126 processes: 13 running, 94 sleeping, 1 zombie, 18 waiting CPU: 0.8% user, 0.0% nice, 46.9% system, 3.1% interrupt, 49.2% idle Mem: 22M Active, 17M Inact, 181M Wired, 220K Cache, 112M Buf, 1972M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 37 root 1 -68 - 0K 8K CPU0 0 451:19 93.12% em4 taskq 36 root 1 -68 - 0K 8K CPU3 2 444:09 92.82% em3 taskq 15 root 1 171 ki31 0K 8K RUN 3 743:28 88.92% idle: cpu3 35 root 1 -68 - 0K 8K CPU5 5 458:12 82.71% em2 taskq 11 root 1 171 ki31 0K 8K CPU7 7 402:03 74.56% idle: cpu7 12 root 1 171 ki31 0K 8K RUN 6 405:20 70.61% idle: cpu6 17 root 1 171 ki31 0K 8K CPU1 1 667:33 69.58% idle: cpu1 34 root 1 -68 - 0K 8K CPU4 4 275:17 64.94% em1 taskq 18 root 1 171 ki31 0K 8K RUN 0 721:53 33.45% idle: cpu0 14 root 1 171 ki31 0K 8K RUN 4 506:06 32.03% idle: cpu4 16 root 1 171 ki31 0K 8K CPU2 2 696:58 30.08% idle: cpu2 13 root 1 171 ki31 0K 8K RUN 5 376:06 21.00% idle: cpu5 29 root 1 -68 - 0K 8K WAIT 1 93:45 18.99% irq256: em0 1217 djbcache 1 97 0 4180K 2260K select 1 35:27 6.64% dnscache 1225 djblog 1 -8 0 3156K 844K piperd 4 12:17 2.44% multilog ПО топу видно, что нагрузка на ем3-4 уже практически критическая, но при этом другие ядра простаивают. Мы планируем увеличить внешний канал до 2Гигабит/с. Что можете посоветовать чтобы повысить производительность данного сервера? либо на что его заменить, что смогло бы переваривать такой объем трафика. Вставить ник Quote
Alex/AT Posted January 19, 2012 Posted January 19, 2012 (edited) Кууууды столько. 2 Гбит при ~250 Kpps спокойно один Core2 E8500 осиляет на Linux/e1000e. RPS бы неплохо, но насколько помню в *BSD его нема. Да и PF не распараллеливается, может как раз быть причиной затыка на em'ах. Попробуйте-таки на Linux пересесть, не скажу, что в вашем случае 100% поможет - надо понимать характер трафика + что конкретно за сетевухи, но с распараллеливанием в последних ядрах Linux всё куда интереснее. Сервер такого класса явно способен на много большее, чем 2 гига в ipmix'е... Edited January 19, 2012 by Alex/AT Вставить ник Quote
woda Posted January 19, 2012 Author Posted January 19, 2012 (edited) Кууууды столько. 2 Гбит при ~250 Kpps спокойно один Core2 E8500 осиляет на Linux/e1000e. RPS бы неплохо, но насколько помню в *BSD его нема. Да и PF не распараллеливается, может как раз быть причиной затыка на em'ах. Попробуйте-таки на Linux пересесть, не скажу, что в вашем случае 100% поможет - надо понимать характер трафика + что конкретно за сетевухи, но с распараллеливанием в последних ядрах Linux всё куда интереснее. Сервер такого класса явно способен на много большее, чем 2 гига в ipmix'е... характер трафика стандартный-торренты) модель сетевух сейчас точно не скажу, помню что из серии ServerPRO adapter. Две однопортовых, и одна двухпортовая.и две встренные в мать, тоже интелевские Edited January 19, 2012 by woda Вставить ник Quote
tunny Posted January 20, 2012 Posted January 20, 2012 Кууууды столько. 2 Гбит при ~250 Kpps спокойно один Core2 E8500 осиляет на Linux/e1000e. RPS бы неплохо, но насколько помню в *BSD его нема. Да и PF не распараллеливается, может как раз быть причиной затыка на em'ах. Попробуйте-таки на Linux пересесть, не скажу, что в вашем случае 100% поможет - надо понимать характер трафика + что конкретно за сетевухи, но с распараллеливанием в последних ядрах Linux всё куда интереснее. Сервер такого класса явно способен на много большее, чем 2 гига в ipmix'е... Xто за бред? У вас тоже на коре2 Е8500 вместе с двумя гигабитами еще всякий софт крутится? и сразу из коробки, без дополнительных настроек - в поле трафик молотить? 2топик стартер sysctl dev.em cat /boot/loader.conf тюнинг интеловских сетевок(и не только) тут обсасывали со всех сторон, поищите темки Вставить ник Quote
Tosha Posted January 20, 2012 Posted January 20, 2012 Микропровайдер на 1 Гбит внешнего трафика? Неплохой уже малыш... Может пора взрослеть? SE100 купить? Вставить ник Quote
dignity Posted January 20, 2012 Posted January 20, 2012 там поди городской бэкбон, пиринговое подключение поднято на 1Г, не на L3 коммутаторе, а на этом же сервере. Вставить ник Quote
AntonS Posted January 20, 2012 Posted January 20, 2012 потому что драйвера от яндекса надо поставить и будет тебе счастье Вставить ник Quote
Alex/AT Posted January 20, 2012 Posted January 20, 2012 (edited) Xто за бред? У вас тоже на коре2 Е8500 вместе с двумя гигабитами еще всякий софт крутится? А при чём тут софт, кстате? Трафик отдельно, софт отдельно. На такой машине, как у ТС, можно кроме 2 Гбит еще и целый вагон прочих сервисов гонять, если уж на то пошло. Понятно, что в здравом уме этого никто делать не станет, но в теории какие проблемы? 8 честных ядер, два набора L1/L2/L3. Edited January 20, 2012 by Alex/AT Вставить ник Quote
NiTr0 Posted January 20, 2012 Posted January 20, 2012 Может, прикупить AS и забыть о геморрое с натом? А так да, какая-то корка или 2-головый атлон/феном с парой 82576 вполне без ната пережуют пару гигабит под линем, и не подавятся. С натом - смотря как коннтрак подтюнить, если хеш поболее ему задать - тоже проблем особо быть не должно. Хотя не экспериментировал с такими скоростями и натом. Вставить ник Quote
zurz Posted January 20, 2012 Posted January 20, 2012 если нужен НАТ - вынесите его на отдельный тазик Вставить ник Quote
Dyr Posted January 20, 2012 Posted January 20, 2012 Тема тюнинга FreeBSD (ну и линукса тоже, кстати) под NAT/роутинг действительно здесь многократно обсуждалась. Рекомендую перейти на FreeBSD 9.0 уже, там много добавлений по сетевой части (4-tuple привязка обработки соединений к процессору, появилось RSS), а главное, меняйте сетевые карты на поддерживающие несколько TX/RX очередей, классика - на Intel 82576. Ну или покажите точнее, что у вас за карты (pciconf -lv) Вставить ник Quote
Ilya Evseev Posted January 21, 2012 Posted January 21, 2012 1) Рекомендации по настройке параметров драйвера: http://forum.nag.ru/forum/index.php?showtopic=56150&view=findpost&p=494846 2) Настройки pf на всякий случай покажите. Вставить ник Quote
woda Posted January 24, 2012 Author Posted January 24, 2012 Кууууды столько. 2 Гбит при ~250 Kpps спокойно один Core2 E8500 осиляет на Linux/e1000e. RPS бы неплохо, но насколько помню в *BSD его нема. Да и PF не распараллеливается, может как раз быть причиной затыка на em'ах. Попробуйте-таки на Linux пересесть, не скажу, что в вашем случае 100% поможет - надо понимать характер трафика + что конкретно за сетевухи, но с распараллеливанием в последних ядрах Linux всё куда интереснее. Сервер такого класса явно способен на много большее, чем 2 гига в ipmix'е... Xто за бред? У вас тоже на коре2 Е8500 вместе с двумя гигабитами еще всякий софт крутится? и сразу из коробки, без дополнительных настроек - в поле трафик молотить? 2топик стартер sysctl dev.em cat /boot/loader.conf тюнинг интеловских сетевок(и не только) тут обсасывали со всех сторон, поищите темки dev.em.0.%desc: Intel® PRO/1000 Network Connection 7.1.9 dev.em.0.%driver: em dev.em.0.%location: slot=0 function=0 handle=\_SB_.PCI0.MRP1.HART dev.em.0.%pnpinfo: vendor=0x8086 device=0x10d3 subvendor=0x8086 subdevice=0x34da class=0x020000 dev.em.0.%parent: pci1 dev.em.0.nvm: -1 dev.em.0.debug: -1 dev.em.0.rx_int_delay: 0 dev.em.0.tx_int_delay: 66 dev.em.0.rx_abs_int_delay: 66 dev.em.0.tx_abs_int_delay: 66 dev.em.0.rx_processing_limit: 100 dev.em.0.flow_control: 3 dev.em.0.link_irq: 4632 dev.em.0.mbuf_alloc_fail: 0 dev.em.0.cluster_alloc_fail: 0 dev.em.0.dropped: 0 dev.em.0.tx_dma_fail: 0 dev.em.0.rx_overruns: 0 dev.em.0.watchdog_timeouts: 0 dev.em.0.device_control: 1477444168 dev.em.0.rx_control: 67141634 dev.em.0.fc_high_water: 18432 dev.em.0.fc_low_water: 16932 dev.em.0.queue0.txd_head: 3320 dev.em.0.queue0.txd_tail: 3320 dev.em.0.queue0.tx_irq: 1198637833 dev.em.0.queue0.no_desc_avail: 0 dev.em.0.queue0.rxd_head: 1023 dev.em.0.queue0.rxd_tail: 1006 dev.em.0.queue0.rx_irq: 1161024396 dev.em.0.mac_stats.excess_coll: 0 dev.em.0.mac_stats.single_coll: 0 dev.em.0.mac_stats.multiple_coll: 0 dev.em.0.mac_stats.late_coll: 0 dev.em.0.mac_stats.collision_count: 0 dev.em.0.mac_stats.symbol_errors: 0 dev.em.0.mac_stats.sequence_errors: 0 dev.em.0.mac_stats.defer_count: 0 dev.em.0.mac_stats.missed_packets: 4633 dev.em.0.mac_stats.recv_no_buff: 490472 dev.em.0.mac_stats.recv_undersize: 0 dev.em.0.mac_stats.recv_fragmented: 0 dev.em.0.mac_stats.recv_oversize: 0 dev.em.0.mac_stats.recv_jabber: 0 dev.em.0.mac_stats.recv_errs: 0 dev.em.0.mac_stats.crc_errs: 0 dev.em.0.mac_stats.alignment_errs: 0 dev.em.0.mac_stats.coll_ext_errs: 0 dev.em.0.mac_stats.xon_recvd: 0 dev.em.0.mac_stats.xon_txd: 386830 dev.em.0.mac_stats.xoff_recvd: 0 dev.em.0.mac_stats.xoff_txd: 391463 dev.em.0.mac_stats.total_pkts_recvd: 4479682679 dev.em.0.mac_stats.good_pkts_recvd: 4479678046 dev.em.0.mac_stats.bcast_pkts_recvd: 5848 dev.em.0.mac_stats.mcast_pkts_recvd: 0 dev.em.0.mac_stats.rx_frames_64: 223338337 dev.em.0.mac_stats.rx_frames_65_127: 431756102 dev.em.0.mac_stats.rx_frames_128_255: 159227621 dev.em.0.mac_stats.tx_frames_256_511: 35680343 dev.em.0.mac_stats.tx_frames_512_1023: 59231313 dev.em.0.mac_stats.tx_frames_1024_1522: 670987799 dev.em.0.mac_stats.tso_txd: 736 dev.em.0.mac_stats.tso_ctx_fail: 0 dev.em.0.interrupts.asserts: 4619 dev.em.0.interrupts.rx_pkt_timer: 3 dev.em.0.interrupts.rx_abs_timer: 0 dev.em.0.interrupts.tx_pkt_timer: 0 dev.em.0.interrupts.tx_abs_timer: 1 dev.em.0.interrupts.tx_queue_empty: 0 dev.em.0.interrupts.tx_queue_min_thresh: 0 dev.em.0.interrupts.rx_desc_min_thresh: 0 dev.em.0.interrupts.rx_overrun: 0 dev.em.1.%desc: Intel® PRO/1000 Network Connection 7.1.9 dev.em.1.%driver: em dev.em.1.%location: slot=25 function=0 handle=\_SB_.PCI0.ILAN dev.em.1.%pnpinfo: vendor=0x8086 device=0x10cc subvendor=0x8086 subdevice=0x34da class=0x020000 dev.em.1.%parent: pci0 dev.em.1.nvm: -1 dev.em.1.debug: -1 dev.em.1.rx_int_delay: 0 dev.em.1.tx_int_delay: 66 dev.em.1.rx_abs_int_delay: 66 dev.em.1.tx_abs_int_delay: 66 dev.em.1.rx_processing_limit: 100 dev.em.1.flow_control: 3 dev.em.1.link_irq: 0 dev.em.1.mbuf_alloc_fail: 0 dev.em.1.cluster_alloc_fail: 0 dev.em.1.dropped: 0 dev.em.1.tx_dma_fail: 0 dev.em.1.rx_overruns: 0 dev.em.1.watchdog_timeouts: 0 dev.em.1.device_control: 1074790976 dev.em.1.rx_control: 67141634 dev.em.1.fc_high_water: 8192 dev.em.1.fc_low_water: 6692 dev.em.1.queue0.txd_head: 2547 dev.em.1.queue0.txd_tail: 2551 dev.em.1.queue0.tx_irq: 0 dev.em.1.queue0.no_desc_avail: 0 dev.em.1.queue0.rxd_head: 3696 dev.em.1.queue0.rxd_tail: 3691 dev.em.1.queue0.rx_irq: 0 dev.em.1.mac_stats.excess_coll: 0 dev.em.1.mac_stats.single_coll: 0 dev.em.1.mac_stats.multiple_coll: 0 dev.em.1.mac_stats.late_coll: 0 dev.em.1.mac_stats.collision_count: 0 dev.em.1.mac_stats.symbol_errors: 0 dev.em.1.mac_stats.sequence_errors: 0 dev.em.1.mac_stats.defer_count: 0 dev.em.1.mac_stats.missed_packets: 0 dev.em.1.mac_stats.recv_no_buff: 0 dev.em.1.mac_stats.recv_undersize: 0 dev.em.1.mac_stats.recv_fragmented: 0 dev.em.1.mac_stats.recv_oversize: 0 dev.em.1.mac_stats.recv_jabber: 0 dev.em.1.mac_stats.recv_errs: 0 dev.em.1.mac_stats.crc_errs: 0 dev.em.1.mac_stats.alignment_errs: 0 dev.em.1.mac_stats.coll_ext_errs: 0 dev.em.1.mac_stats.xon_recvd: 0 dev.em.1.mac_stats.xon_txd: 0 dev.em.1.mac_stats.xoff_recvd: 0 dev.em.1.mac_stats.xoff_txd: 0 dev.em.1.mac_stats.total_pkts_recvd: 3800368159 dev.em.1.mac_stats.good_pkts_recvd: 3800368159 dev.em.1.mac_stats.bcast_pkts_recvd: 12703181 dev.em.1.mac_stats.mcast_pkts_recvd: 23327 dev.em.1.mac_stats.rx_frames_64: 0 dev.em.1.mac_stats.rx_frames_65_127: 0 dev.em.1.mac_stats.rx_frames_128_255: 0 dev.em.1.mac_stats.rx_frames_256_511: 0 dev.em.1.mac_stats.rx_frames_512_1023: 0 dev.em.1.mac_stats.rx_frames_1024_1522: 0 dev.em.1.mac_stats.good_octets_recvd: 1375456205170 dev.em.1.mac_stats.good_octets_txd: 5125930590241 dev.em.1.mac_stats.total_pkts_txd: 5403755226 dev.em.1.mac_stats.good_pkts_txd: 5403755226 dev.em.1.mac_stats.bcast_pkts_txd: 263502 dev.em.1.mac_stats.mcast_pkts_txd: 0 dev.em.1.mac_stats.tx_frames_64: 0 dev.em.1.mac_stats.tx_frames_65_127: 0 dev.em.1.mac_stats.tx_frames_128_255: 0 dev.em.1.mac_stats.tx_frames_256_511: 0 dev.em.1.mac_stats.tx_frames_512_1023: 0 dev.em.1.mac_stats.tx_frames_1024_1522: 0 dev.em.1.mac_stats.tso_txd: 7260 dev.em.1.mac_stats.tso_ctx_fail: 0 dev.em.1.interrupts.asserts: 1402236450 dev.em.1.interrupts.rx_pkt_timer: 0 dev.em.1.interrupts.rx_abs_timer: 0 dev.em.1.interrupts.tx_pkt_timer: 0 dev.em.1.interrupts.tx_abs_timer: 0 dev.em.1.interrupts.tx_queue_empty: 0 dev.em.1.interrupts.tx_queue_min_thresh: 0 dev.em.1.interrupts.rx_desc_min_thresh: 0 dev.em.1.interrupts.rx_overrun: 0 dev.em.1.wake: 0 loader.conf hw.em.rxd=4096 hw.em.txd=4096 что с этим делать-то? Тема тюнинга FreeBSD (ну и линукса тоже, кстати) под NAT/роутинг действительно здесь многократно обсуждалась. Рекомендую перейти на FreeBSD 9.0 уже, там много добавлений по сетевой части (4-tuple привязка обработки соединений к процессору, появилось RSS), а главное, меняйте сетевые карты на поддерживающие несколько TX/RX очередей, классика - на Intel 82576. Ну или покажите точнее, что у вас за карты (pciconf -lv) а что в 9ке тюнить надо? em0@pci0:2:0:0: class=0x020000 card=0x115e8086 chip=0x105e8086 rev=0x06 hdr=0x00 vendor = 'Intel Corporation' device = 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)' class = network subclass = ethernet em1@pci0:2:0:1: class=0x020000 card=0x115e8086 chip=0x105e8086 rev=0x06 hdr=0x00 vendor = 'Intel Corporation' device = 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)' class = network subclass = ethernet em2@pci0:3:0:0: class=0x020000 card=0x10828086 chip=0x107d8086 rev=0x06 hdr=0x00 vendor = 'Intel Corporation' device = 'PRO/1000 PT' class = network subclass = ethernet em4@pci0:4:0:0: class=0x020000 card=0x10828086 chip=0x107d8086 rev=0x06 hdr=0x00 vendor = 'Intel Corporation' device = 'PRO/1000 PT' class = network subclass = ethernet em5@pci0:5:0:0: class=0x020000 card=0x35788086 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' device = 'Intel 82574L Gigabit Ethernet Controller (82574L)' class = network subclass = ethernet Одна из немаловажных проблем, это отсутствие грамотного сисадмина в нашем городке. Поэтому приходится админить самому. А сам я в этом чайник. Вставить ник Quote
Shiva Posted January 24, 2012 Posted January 24, 2012 Офф. Наймите по удалёнке. У нас одного оператора обслуживают два парня с Украины, они довольны. Вставить ник Quote
woda Posted January 24, 2012 Author Posted January 24, 2012 Офф. Наймите по удалёнке. У нас одного оператора обслуживают два парня с Украины, они довольны. а где можно взять их контакты? Вставить ник Quote
vlad11 Posted January 31, 2012 Posted January 31, 2012 ПО топу видно, что нагрузка на ем3-4 уже практически критическая, но при этом другие ядра простаивают. Мы планируем увеличить внешний канал до 2Гигабит/с. Что можете посоветовать чтобы повысить производительность данного сервера? либо на что его заменить, что смогло бы переваривать такой объем трафика. Могу взять на обслуживание по удаленке:) Вставить ник Quote
Dyr Posted January 31, 2012 Posted January 31, 2012 (edited) В очередь, сукины дети! ;) Edited January 31, 2012 by Dyr Вставить ник Quote
Ilya Evseev Posted February 2, 2012 Posted February 2, 2012 На ловца и зверь бежит. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.