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

Снести grub2, поставить 0.9х, прописать опции вручную в grub.conf и забыть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решилось. Тупо выключением/включением машины по питанию. По каким-то странным причинам reboot/shutdown -r не ребутали машину полностью. Мистика да и только :) Теперь все ок, intel_idle пропал напрочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно: выключить сетевую или вынуть кабель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эх, а я так надеялся на чудо после такого легкого отдирания жручего intel_idle =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы писали что трафик 4Гбит/с, это кто-то бесплатно должен пропускать? На все есть свои расходы. Но там же копейки, есть ли смысл перелопатить пол-инета чтобы выжать скажем еще 1% за счет оптимизации/отдирания чего-либо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас трафика гигабита 2 от силы. Хочется выжать все возможное из железа, чтобы на 10Ge снова не бегать в поисказ ресурсов или новых платформ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что за шлак такой fastnetmon ? судя по всему он нехило отъедает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это как раз мой софт :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

он всё и кушает, ещё наверное и кеши вымывает. и оно что, юзерспейс чтоли? судя по описанию это какой-то ддос-детектор, в юзерспейсе ему явно не место

 

хотя судя по тому что оно написано на c++, сделать это модулем ядра - переписать почти полностью

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем его тащить в кернелспейс? :) Он итак ну очень быстр и ест не более 5% cpu на потоке в 500 kpps :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы используете PF_RING а не магию, часть структур ядра как и в netmap все равно остаются работать. Это как минимум фетч, интеррапты, синхронизация рингов. Могу посоветовать разве что DNA, если вы его еще не втыкали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем его тащить в кернелспейс? :) Он итак ну очень быстр и ест не более 5% cpu на потоке в 500 kpps :)

проведите простой эксперимент - смаршрутизируйте трафик через сервер без вашей софтины, посмотрите сколько он прожуёт и с запущенным вашим софтом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

s.lobanov, я могу так сказать - 2mpps. С монитором он выдает 1 Mpps, что меня устраивает. При хреновых алгоритмах перенос в ядро не творит чудеса, а доступ к памяти что в ядре, что у меня прямой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ядро и не может творить чудес - у него локов тьма. PF_RING вполне жизнеспособное решение, чуть-чуть улучшить положение, ИМХО, может лишь DNA (а ныне ZC). Но это даст, мне кажется, лишь копейки профита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

коллеги, помогите с проблемой

есть сервер доступа на акцеле

 

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

 

куда рыть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

грузят именно прерывания на eth0-rx-0 и eth1-rx-0

Ессно. Обработка пакета - на том же ядре идет, которое его приняло.

 

куда рыть?

Чтобы параллелить - RPS заюзать (и на интерфейсе и на туннеле).

Ну и файрвол/шейпер покрутить. Т.к. что-то чересчур мало 350 мбит, у меня 350-400 мбит жевал древний атлон 5000+...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чтобы параллелить - RPS заюзать (и на интерфейсе и на туннеле).

по теме нашел http://forum.nag.ru/forum/index.php?showtopic=59217&view=findpost&p=594166

это мне че, ручками на всех ppp ифейсах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

astra / # cat /sys/devices/system/clocksource/clocksource0/current_clocksource

tsc

 

Показать conntrack -S (если с ним нет проблемы как с perf конечно :) )

печаль, у меня ничего теперь не собирается))) как вернуть обратно дерево?)

 

Увеличить буферы (ethtool -G).

насколько?

 

astra / # ethtool -g eth0

Ring 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 eth0

Offload 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Буферы - можно на max. Обратно - можно поискать ..

Portage - находится гуглом запросто http://mexmat.sgu.ru/soft/Linux/distributions/gentoo/portage/ например.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а шейпер был украден тут:

Вроде как нечему там вообще грузить. Ну т.е. совсем нечему. Страно однако.

Что за туннели юзаются? Шифрование/сжатие надеюсь отключено?

 

это мне че, ручками на всех ppp ифейсах?

Изначально - да. Новосозданные - в ip_up скрипте добавить.

 

так как кэш общий у 2х ядер

Там вообще-то всего 2 ядра, с гипертредингом. Который стоило бы попробовать выключить вообще нафиг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

во блин я все время думал что там 4 физических ядра)

http://ark.intel.com/ru/products/43546/Intel-Core-i5-650-Processor-4M-Cache-3_20-GHz

это у меня получается НТ включен в биосе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.