Перейти к содержимому
Калькуляторы

MagMike

Активный участник
  • Публикации

    132
  • Зарегистрирован

  • Посещение

Все публикации пользователя MagMike


  1. CPU utilization for five seconds: 61%/59%; следовательно, загрузка идет от большого кол-ва прерываний. так что, посмотрите тут: Troubleshooting High CPU Utilization Due to Interrupts http://www.cisco.com/en/US/products/hw/rou...0801c2af0.shtml
  2. думаю, сильно должно зависеть не столько от кол-ва туннелей, сколько от 1. pps (десяток дос-еров могут хорошо просадить сервер 2. использования MPPE. профайлинг показывает, что 30% времени ядра тратится на arc4(). не копался, но подозреваю, что оно как-то используется в MPPE. в последнее время подняли скорости, так сервера заметно стали проседать при том кол-ве юзеров, которое раньше пережевывалось без всякого напряжения.
  3. У кого-нибудь есть сетевая на базе BCM5709C или BCM5708C под линуксом? можете показать вывод "cat /proc/interrupts | grep eth" ?
  4. коряво.. у провайдера A3 несколько десятков сетей...
  5. фактически, на это сейчас и перехожу. но остается проблема с асимметричностью трафика. как исходящий трафик от разных сетей правильно распихать по каналам, чтобы не было ассимметрии. и в то же время трафик в соседние AS-ы ходил напрямую туда и обратно.
  6. Если "MSI and MSI-X allow interrupt distribution in a multi-CPU host system" (в даташите на контроллер) означает, что создаются очереди на прием/передачу по кол-ву CPU, как в intelовых и в реализации от Allied эта фича работае - то, по-видимому, подходит :) спасибо!
  7. какой критерий использовать в match, чтобы определить, что это запросы к сетям А3?
  8. есть 3 аплинка (А1, А2, А3). регулирование загрузкой каналов делаю анонсированием определенных сетей своего адресного пространства. т.е. некоторые префиксы я анонсирую в А1, некоторые а А2, остальные - в А2. обозначу их С1, С2, С3 При этом, чтобы для клиента канал был симметричный, т.е. пакеты и уходили, и приходили одним путем, исходящий от клиентов трафик заворачиваю с помощью policy-routing'а. один из аплинков - А3 - достаточно крупный местный провайдер, поэтому хотелось бы, чтобы клиенты из сетей С1 и С2 (обычно ходят наружу через два других канала А1 и А2), с адресным пространством А3 общались напрямую. Для этого в А3 кидаю анонсы о сетях С1 и С2 в сопровождении коммьюнити, которые говорят роутерам аплинка А3 не анонсировать эти сети дальше. Это все работает... но есть другая проблема - как правильно зарулить трафик от С1 и С2? ведь с помощью policy-routing они принудительно заворачиваются на A1 и А2... сейчас пока получается, что исходящий трафик от С1 и С2 в сторону А3 уходят наружу своими каналами (через А1 и А2) , доходят до А3 и от него назад уже идут прямым каналом между мной и А3, что не есть хорошо - вместо 10мс RTT получаю 200мс.
  9. с наличием супермикро тоже проблемы... других вариантов никто не знает?
  10. сегодня наткнулся на то, что у пользователь возникли проблемы с доступом к доменам, хостящимся на dns-серверах ns*.1gb.ru, т.к. весь домен 1gb.ru - в списке.
  11. Сетевые карты Intel E1G42ET резко пропали из продажи... А есть ли в природе двухпортовые сетевые карты других производителей, в которых возможно получить несколько очередей на прием-передачу, как сделано в картах на интеловых чипсетах 8257[56]?
  12. когда при affinity f работает одно ядро, попробуй сделать mpstat -P ALL 1. наверняка softirq будет под 100%, а idle, соответственно, 0. при этом обработчик не переключится на следующий процессор.
  13. как и чем смотрите? 50% - суммарная загрузка (то, что показывает vmstat) или через mpstat/top ?
  14. а какие функции у данного сервера? у меня vpn c mppe (более 1000 сессий), на каждом ppp-интерфейсе - шейпинг.сейчас 230 сессий, трафик 60 мбит/с, 9 kpps, загрузка процессоров 13% (softirq - 10%). и это с 4мя очередями... может что-то не так настроено?...
  15. +1при этом кол-во RX-TX прерываний будет пропорционально кол-ву процессоров (ядер). так что Quad лучше Duo. ага, присмотритесь к платформе SR1530HSH (3 SATA hotswap-а) или SR1530SH (без хотсвопов, но зато дешевле). сервер с Q8200 @ 2.33GHz, 2 гигами памяти и 1 винтом выходит менее чем в $1к. Но все равно сюда лучше поставить E1G42ETBLK (+7500р с райзером), т.к. интегрированные - плохо живут на больших нагрузках. особенно 82541GI, которая сама по себе считается десктопной, и подключена вроде как даже на PCI-шину.
  16. Может не PCI-X, а все же PCI-E? неделю как смог заюзать E1G42ETBLK (Portville Dual) IntelВ® Gigabit ET Dual Port. на сервере с 2мя ядрами на каждый интерфейс поднялось по 2 прерывания на прием и по 2 на передачу. На сервере с четырьмя ядрами - по 4 прерывания на прием и передачу. Вот так это выглядит вживую cat /proc/interrupts | grep eth 25: 1493239561 77439938 77302882 77399041 PCI-MSI-edge eth0-tx-0 26: 62892 1236910 59380 58811 PCI-MSI-edge eth0-tx-1 27: 53266 49923 1261063 50577 PCI-MSI-edge eth0-tx-2 28: 64327 61636 61438 1265701 PCI-MSI-edge eth0-tx-3 29: 877905728 39032382 38255781 38252879 PCI-MSI-edge eth0-rx-0 30: 36889519 883447734 36912858 36903842 PCI-MSI-edge eth0-rx-1 31: 37431066 38242615 820433663 37441971 PCI-MSI-edge eth0-rx-2 32: 37827197 38646325 37854640 811035193 PCI-MSI-edge eth0-rx-3 33: 0 2 2 2 PCI-MSI-edge eth0 34: 1540919518 81708390 81624554 82725718 PCI-MSI-edge eth1-tx-0 35: 11735 269217 11541 11606 PCI-MSI-edge eth1-tx-1 36: 271040 271033 7294078 271222 PCI-MSI-edge eth1-tx-2 37: 26868 26563 26344 479834 PCI-MSI-edge eth1-tx-3 38: 855628550 37188943 37222841 37230941 PCI-MSI-edge eth1-rx-0 39: 38400920 856238591 38414904 38405702 PCI-MSI-edge eth1-rx-1 40: 38329883 38299267 860381579 38338240 PCI-MSI-edge eth1-rx-2 41: 39224783 39201865 39232857 856900460 PCI-MSI-edge eth1-rx-3 42: 1 1 0 4 PCI-MSI-edge eth1 ethtool -i eth0 driver: igb version: 1.3.16-k2 firmware-version: 1.2-1 bus-info: 0000:01:00.0 производительность по сравнению с интегрированными картами, которые получали по прерыванию на порт и у которых не было деления прерываний на прием/передачу - разительное. когда поток был около 25000 пакетов/с, они просто уходили в softirq и начинались тормоза. А на E1G42ETBLK - 38000 пакетов/с, 250 мбит/с и загрузка процессоров где-то по 40%. правда, не уверен, что даст 100 kpps.
  17. не жалко ;) небольшой комментарий. есть route-map, в котором трафик от пользователей "распихивается" по внешним каналам. например, для пользователей, работающих через ISP3, имеется такое правило: route-map CUS_TO_INET permit 10 match ip address 20 set ip vrf border next-hop IPS3_GW Возможна ситуация, когда IPS3_GW доступен, но при этом дальше него пакеты не ходят. Такое было, например, позавчера, когда у ростелекома где-то на релейном тракте проводились работы. связь со шлюзом была, bgp-сессия не падала, но пакеты наружу не уходили идея в том, что выбираем какой-то удаленный хост в сети магистрала, например, где-то в москве и проверять связь до него. если связи нет - значит у магистрала проблемы где-то по пути из нашей глубинки. В этом случае достаточно либо переписать правило в роут-мапе, либо создать правило с меньшим порядковым номером, с указанием другого next-hop-а. причем, можно даже сделать default next-hop, потому что если нужный канал не работает, то без разницы каким из оставшихся каналов выкидывать трафик. создаем ip sla: ip sla 3 icmp-echo CHECK_HOST_ISP3 source-ip MY_SRC_IP vrf border frequency 10 ip sla schedule 3 life forever start-time now ! track 3 ip sla 3 reachability delay down 30 CHECK_HOST_ISP3 - хост, связь до которого является критерием работоспособности канала. MY_SRC_IP - ip-адрес на моем маршрутизаторе, с которого посылаются icmp echo-request. Это ip-адрес, выданный аплинком на канал между мной и им. Ну и теперь сами обработчики падения канала или его поднятия: event manager applet isp3_down event track 3 state down action 01.0 cli command "enable" action 02.0 cli command "config terminal" action 04.0 cli command "route-map CUS_TO_INET permit 5" action 06.0 cli command "match ip address 20" action 08.0 cli command "set ip default vrf border next-hop MAIN_ISP_GW" action 10.0 cli command "end" event manager applet isp3_up event track 3 state up action 01.0 cli command "enable" action 02.0 cli command "config terminal" action 04.0 cli command "no route-map CUS_TO_INET permit 5" action 10.0 cli command "exit" ! Повторюсь, если бы не vrf, то никаких наворотов не надо было бы - route-map-ы умеют использовать track-и, вот только не совместно с vrf.
  18. настроил EMM. работает, однако! :) спасибо за подсказку!
  19. Спасибо за наводку! это не прокатитNote: Only border router functionality is included зато EEM имеется! пока буду разбираться... но может есть еще какие способы?
  20. к сожалению, такой вариант не подходит.
  21. 6509 c sup720. есть vrf, в котором находится bgp, соединенный с внешним миром через несколько аплинков. загрузку каналов рулю путем анонсирования определенных сетей в соответствующий канал. это влияет только на входящий трафик. чтобы пакеты ходили симметрично, т.е. уходили тем же каналом, что и приходят, заворачивают трафик с использованием PBR. т.е. использую route-map с указанием next-hop. Но уже дважды столкнулся с тем, что если вдруг возникают проблемы у аплинка, то мои юзера завернутые через него, перестают работать - трафик к ним идет нормально, т.к. bgp отрабатывает, а вот исходящий трафик продолжает заворачиваться через "полу-мертвый" линк - он не падает, но пакеты теряются за маршрутизатором аплинка. решил использовать ip sla. выбрал у каждого аплинка удаленный маршрутизатор, при отсутствии связи до которого будет обозначать, что у данного аплинка есть проблемы. но при правке route-map-а для PBR столкнулся с тем, что в set ip vrf vrf_name next-hop нельзя использовать track. track доступен только если vrf не используется: set ip next-hop verify-availability попробовал в route-map не указывать vrf - роутер начинает весь трафик обрабатывать в RP. загрузка cpu подскакивает под 100% :( как можно в пределах vrf настроить PBR с учетом состояния ip sla? либо может есть другая схема корректного построения PBR, чтобы учитывать доступность внешних линков?
  22. 1. что показывает cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count если несколько десятков тысяч, отключите conntrack (iptables -t raw -I PREROUTING -j NOTRACK) для тех соединений, для которых оно не нужно. 2. возможно, заменить сетевые на другие. для примера. сетевая Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02) и прием и передача сидят на одном прерывании. CPU0 CPU1 CPU2 CPU3 25: 2117329339 2117676851 74 67 PCI-MSI-edge eth0 даже если распределить это прерывание на все процессоры, то как только обработка на 100% залезает в softirq, то ротация процессоров прекращается, обработкой занимается один процессор. поставил двухпортовую E1G42ETBLK (Portville Dual) Intel® Gigabit ET Dual Port (lspci определяется как Intel Corporation 82576 Gigabit Network Connection) модуль ядра - igb. CPU0 CPU1 CPU2 CPU3 25: 146799498 77439938 77302882 77399041 PCI-MSI-edge eth0-tx-0 26: 62892 171260 59380 58811 PCI-MSI-edge eth0-tx-1 27: 53266 49923 155849 50577 PCI-MSI-edge eth0-tx-2 28: 64327 61636 61438 169610 PCI-MSI-edge eth0-tx-3 29: 81686893 39032382 38255781 38252879 PCI-MSI-edge eth0-rx-0 30: 36889519 81753409 36912858 36903842 PCI-MSI-edge eth0-rx-1 31: 37431066 38242615 81572707 37441971 PCI-MSI-edge eth0-rx-2 32: 37827197 38646325 37854640 82995494 PCI-MSI-edge eth0-rx-3 т.е. в карточке по 4 очереди на прием и отправку. и каждая - своим прерыванием обрабатывается. распределил прерывания так, чтобы каждая очереди обрабатывалось своим процессором. в итоге 250мбит, 38000 пакетов в секунду, softirq - примерно по 40-50% на каждом процессоре. остальное - idle. на 82566DM-2 тоже было 100% softirq. 160мбит, 25000 пакетов/с.
  23. на R1 не только подсчет трафика... в общем, надо иметь 2 раздельных сегмента (тот что подключен через R1 и тот, что входит в vrf vpn64). если сегмент, который на рисунке подключен к vrf vpn, отделить от c6509 и вывести через отдельный маршрутизатор - это можно реализовать. но можно ли все то же самое сделать как нарисовано? попробую поделить задачу на более мелкие вопросы. 1. как из vrf border проанонсировать в vrf vpn только шлюзы аплинков? если ничего не фильтровать, а сделать ip vrf border rd 100:1 route-target export 100:1 route-target import 100:1 route-target import 100:64 ! ip vrf vpn rd 100:64 route-target export 100:64 route-target import 100:64 route-target import 100:1 ! то в vrf vpn "прилетят" все префиксы из full-view. мне же достаточно будет только маршруты на аплинковские шлюзы. для уменьшения нагрузки пробовал фильтровать по длине префиксов. ip prefix-list PL_INTERVRF seq 5 permit 0.0.0.0/0 le 19 ! route-map map-border-vpn permit 10 match ip address prefix-list PL_INTERVRF работает, но тоже хитро - можно наложить map map-border-vpn как import map в vrf vpn. почему-то не работает, если указать в export map в vrf border. 2. как из vrf vpn проанонсировать в vrf border только сети, а не хосты? по ospf в vrf vpn создаются маршруты на клиентов, подключенных по vpn. все - с префиксами /32. эти маршруты (несколько тысяч) постоянно экспортируются в vrf border (пользователи подключаются/отключаются), что не есть хорошо. В vrf vpn есть маршруты на сети (пулы адресов), из которых выдаются адреса vpn-пользователям. но чтобы не было петель, эти маршруты объявлены в vrf vpn как null0 254: ip route vrf vpn X.Y.Z.0 255.255.ZM.0 null0 254 ip route vrf vpn X.Y.V.0 255.255.VM.0 null0 254 ... Если при экспорте из vrf vpn или при импорте в vrf border вырезать маршруты с масками /32, то останутся только маршруты на крупные сети, но они будут вести в NULL0. поэтому пакеты снаружи (он аплинков) сразу будут направлены согласно таблицы маршрутов vrf border в NULL0. Есть ли более рациональный способ проанонсировать в vrf border vpn-овские адреса в виде сете?