kayot Posted June 24, 2014 · Report post Снести grub2, поставить 0.9х, прописать опции вручную в grub.conf и забыть. Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Решилось. Тупо выключением/включением машины по питанию. По каким-то странным причинам reboot/shutdown -r не ребутали машину полностью. Мистика да и только :) Теперь все ок, intel_idle пропал напрочь. Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Да, intel_idle выпилен, но все равно perf еще немного смущает: Events: 2M cycles 6.85% [ixgbe] [k] ixgbe_poll 5.55% [kernel] [k] irq_entries_start 4.30% [kernel] [k] skb_copy_bits 3.61% [pf_ring] [k] copy_data_to_ring 3.19% [pf_ring] [k] skb_ring_handler 2.92% fastnetmon [.] boost::unordered::detail::ptr_node<std::pair<unsigned int const, map_element> >* boost::unordered::detail:: 2.31% [kernel] [k] add_interrupt_randomness 2.28% [kernel] [k] atomic_add_return 2.11% [kernel] [k] rcu_needs_cpu 1.90% [pf_ring] [k] add_skb_to_ring 1.49% fastnetmon [.] belongs_to_networks(std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned in 1.44% [kernel] [k] __netif_receive_skb 1.37% [pf_ring] [k] parse_raw_pkt.part.18 1.03% [kernel] [k] __alloc_skb 0.97% fastnetmon [.] boost::unordered::detail::buckets<std::allocator<std::pair<unsigned int const, map_element> >, boost::unord 0.95% fastnetmon [.] __gnu_cxx::__normal_iterator<std::pair<unsigned int, unsigned int>*, std::vector<std::pair<unsigned int, un 0.95% [kernel] [k] __write_lock_failed 0.93% [kernel] [k] tick_nohz_stop_sched_tick 0.93% fastnetmon [.] std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > > 0.92% [pf_ring] [k] add_pkt_to_ring 0.90% [pf_ring] [k] parse_pkt.isra.19 0.88% [kernel] [k] atomic_inc Что-то можно сделать либо с ixgbe_poll либо с irq_entries_start? Share this post Link to post Share on other sites
DVM-Avgoor Posted June 24, 2014 · Report post Можно: выключить сетевую или вынуть кабель. Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Эх, а я так надеялся на чудо после такого легкого отдирания жручего intel_idle =) Share this post Link to post Share on other sites
DVM-Avgoor Posted June 24, 2014 · Report post Вы писали что трафик 4Гбит/с, это кто-то бесплатно должен пропускать? На все есть свои расходы. Но там же копейки, есть ли смысл перелопатить пол-инета чтобы выжать скажем еще 1% за счет оптимизации/отдирания чего-либо? Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Сейчас трафика гигабита 2 от силы. Хочется выжать все возможное из железа, чтобы на 10Ge снова не бегать в поисказ ресурсов или новых платформ. Share this post Link to post Share on other sites
s.lobanov Posted June 24, 2014 · Report post что за шлак такой fastnetmon ? судя по всему он нехило отъедает Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Это как раз мой софт :) Share this post Link to post Share on other sites
s.lobanov Posted June 24, 2014 · Report post он всё и кушает, ещё наверное и кеши вымывает. и оно что, юзерспейс чтоли? судя по описанию это какой-то ддос-детектор, в юзерспейсе ему явно не место хотя судя по тому что оно написано на c++, сделать это модулем ядра - переписать почти полностью Share this post Link to post Share on other sites
pavel.odintsov Posted June 24, 2014 · Report post Зачем его тащить в кернелспейс? :) Он итак ну очень быстр и ест не более 5% cpu на потоке в 500 kpps :) Share this post Link to post Share on other sites
DVM-Avgoor Posted June 25, 2014 · Report post Вы используете PF_RING а не магию, часть структур ядра как и в netmap все равно остаются работать. Это как минимум фетч, интеррапты, синхронизация рингов. Могу посоветовать разве что DNA, если вы его еще не втыкали. Share this post Link to post Share on other sites
s.lobanov Posted June 25, 2014 · Report post Зачем его тащить в кернелспейс? :) Он итак ну очень быстр и ест не более 5% cpu на потоке в 500 kpps :) проведите простой эксперимент - смаршрутизируйте трафик через сервер без вашей софтины, посмотрите сколько он прожуёт и с запущенным вашим софтом. Share this post Link to post Share on other sites
pavel.odintsov Posted June 25, 2014 · Report post s.lobanov, я могу так сказать - 2mpps. С монитором он выдает 1 Mpps, что меня устраивает. При хреновых алгоритмах перенос в ядро не творит чудеса, а доступ к памяти что в ядре, что у меня прямой. Share this post Link to post Share on other sites
DVM-Avgoor Posted June 25, 2014 · Report post Ядро и не может творить чудес - у него локов тьма. PF_RING вполне жизнеспособное решение, чуть-чуть улучшить положение, ИМХО, может лишь DNA (а ныне ZC). Но это даст, мне кажется, лишь копейки профита. Share this post Link to post Share on other sites
zulu_radist Posted September 8, 2014 · Report post коллеги, помогите с проблемой есть сервер доступа на акцеле astra / # uname -a Linux astra 3.3.8-gentoo #2 SMP Sun Oct 14 04:01:37 EEST 2012 i686 Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz GenuineIntel GNU/Linux на борту сетевые 04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 05:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection в последнее время после прохождения порога в 750 сессий и примерно 350 мбит, начинает жутко все тупить, в тоннеле больше 3-4 мегабит не прокачать( top показывал большую нагрузку ksoftirqd, в htop все красиво, 4 ядра ровненько не более 40% раскидал сетевые по ядрам, немного помогло, в тоннелях поднялась скорость, но странное событие обе сетевухи имеют по 2 очереди eth0-rx-0 и eth0-tx-0 ессна раскидал ровненько на 4 ядра теперь htop показывает бешенную нагрузку 2 и 3 ядра, 2 - до 100%, 3 - до 80% первое и второе нагрузка ни о чем - до 10% последующая игра с перекидыванием очередей по ядрам не помогла, грузят именно прерывания на eth0-rx-0 и eth1-rx-0 куда рыть? Share this post Link to post Share on other sites
alex_001 Posted September 8, 2014 · Report post perf top покажи. Share this post Link to post Share on other sites
NiTr0 Posted September 8, 2014 · Report post грузят именно прерывания на eth0-rx-0 и eth1-rx-0 Ессно. Обработка пакета - на том же ядре идет, которое его приняло. куда рыть? Чтобы параллелить - RPS заюзать (и на интерфейсе и на туннеле). Ну и файрвол/шейпер покрутить. Т.к. что-то чересчур мало 350 мбит, у меня 350-400 мбит жевал древний атлон 5000+... Share this post Link to post Share on other sites
zulu_radist Posted September 8, 2014 · Report post perf top покажи. показал бы, да систему не обновлял пару лет, теперь пакет не могу поставить обновил дерево портежей теперь вообще тупик, гребаный генту) Ессно. Обработка пакета - на том же ядре идет, которое его приняло. ага это я уже нагуглил Чтобы параллелить - RPS заюзать (и на интерфейсе и на туннеле). можно подробней ? Ну и файрвол/шейпер покрутить. в файрволе нефик крутить там только для акцела: -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu а шейпер был украден тут: http://abills.net.ua/wiki/doku.php/abills:docs:linux:pppd_radattr:ru шейпер вызываем через pppd-compat Share this post Link to post Share on other sites
zulu_radist Posted September 8, 2014 · Report post Чтобы параллелить - RPS заюзать (и на интерфейсе и на туннеле). по теме нашел http://forum.nag.ru/forum/index.php?showtopic=59217&view=findpost&p=594166 это мне че, ручками на всех ppp ифейсах? Share this post Link to post Share on other sites
alex_001 Posted September 8, 2014 · Report post RPS - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/network-rps.html Принцип тот же что и irq affinity , но софтовое , можно применять к любум интерфейсам а не только физическим , но не факт что поможет в твоем случае. Насчет генты необновляемой (у самого на ней все :) ) - можно собрать где нибудь binary пакет (желательно с USE='static' чтоб от либ не зависело) и установить в target систему. Далее. На 4 ядра раскидывать не стоит (irq_affinity) - одну сетевую на 1е 2 ядра 2ю на вторые , так как кэш общий у 2х ядер. (т.е affinity 0x3 , 0x0C). Увеличить буферы (ethtool -G). Показать conntrack -S (если с ним нет проблемы как с perf конечно :) ) Какой clocksource (/sys/devices/system/clocksource/clocksource0/current_clocksource) - должен быть tsc. Share this post Link to post Share on other sites
zulu_radist Posted September 8, 2014 · Report post astra / # cat /sys/devices/system/clocksource/clocksource0/current_clocksourcetsc Показать conntrack -S (если с ним нет проблемы как с perf конечно :) ) печаль, у меня ничего теперь не собирается))) как вернуть обратно дерево?) Увеличить буферы (ethtool -G). насколько? astra / # ethtool -g eth0Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256 зы astra / # ethtool -k eth0Offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp-segmentation-offload: off udp-fragmentation-offload: off generic-segmentation-offload: off generic-receive-offload: off large-receive-offload: off rx-vlan-offload: on tx-vlan-offload: on ntuple-filters: off receive-hashing: off Share this post Link to post Share on other sites
alex_001 Posted September 8, 2014 · Report post Буферы - можно на max. Обратно - можно поискать .. Portage - находится гуглом запросто http://mexmat.sgu.ru/soft/Linux/distributions/gentoo/portage/ например. Share this post Link to post Share on other sites
NiTr0 Posted September 9, 2014 · Report post а шейпер был украден тут: Вроде как нечему там вообще грузить. Ну т.е. совсем нечему. Страно однако. Что за туннели юзаются? Шифрование/сжатие надеюсь отключено? это мне че, ручками на всех ppp ифейсах? Изначально - да. Новосозданные - в ip_up скрипте добавить. так как кэш общий у 2х ядер Там вообще-то всего 2 ядра, с гипертредингом. Который стоило бы попробовать выключить вообще нафиг. Share this post Link to post Share on other sites
zulu_radist Posted September 9, 2014 · Report post во блин я все время думал что там 4 физических ядра) http://ark.intel.com/ru/products/43546/Intel-Core-i5-650-Processor-4M-Cache-3_20-GHz это у меня получается НТ включен в биосе? Share this post Link to post Share on other sites