
Lev
19.10.2018
15:51:45
При том, что маленький MTU на физике режет 10% всего.
Что-то тут не так
iperf3 упирается в CPU сам когда MTU небольшое. W-T-F?!!! Какая-то полная фигня происходит
А на физическом интерфейсе с небольшим MTU не упирается. Бред какой-то

Google

Andrey
19.10.2018
16:32:49
@AMDmi3 а подскажи, чего оно не закомичено? https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231940 как понимаю много портов нынче держит

Lev
19.10.2018
16:34:27

Andrey
19.10.2018
16:34:56
это выглядит как план :)

Lev
19.10.2018
16:35:23
Ну потому что если mtu phy/gif = 9000/8192 то разницы в скорости нет. А если mtu phy/gif = 1500/1280 — то в два раза. Это хуйня какаято.
Я бы понимал, если бы просто маленький MTU всё делал плохо. Или gif всегда жрал много.
А так…
И, главное, именно в юзерленде iperf3 жрёт целое ядро (as in core) когда gif с mtu 1280. А когда phy с 1500 — жрёт 25%
Опять же, не ядро (as in kernel) жрёт, а iperf3 в юзерленде

Andrey
19.10.2018
16:37:09
а когда phy mtu 1280?

Dmitry
19.10.2018
16:37:20

Lev
19.10.2018
16:37:30

Andrey
19.10.2018
16:37:38
ну и всякие offload'ы отключай

Google

Andrey
19.10.2018
16:37:44
т.к. с гифом их нет

Lev
19.10.2018
16:37:54
Ха.
Вот в этом и дело, скорее всего
Хотя когда mtu 9000/8192 тоже нет оффлоадов. А там пренебрежимо малая просадка скорости
Ну да, с пакетами в 1280 в 8 раз больше чексумм считать
Но... Но...

Dmitry
19.10.2018
16:40:41
@fandrey а так пни antoine, он вроде в этом шарит. Я это трогать не хочу не разбираясь в openssl, а то получится как в дебиане

Andrey
19.10.2018
16:41:05
ну ща потесчу сам, помогает ли :)

Lev
19.10.2018
16:55:00
А ещё меня заебал flow control у igb на 11-STABLE
Он ещё и включается назад при каждой смене mtu
Надо не забывать передёргивать sysctl'и.
Пошёл багу заводить

Andrey
19.10.2018
17:37:10
А вроде ж труось закапывали?
https://twitter.com/nickprincipe/status/1053330848810815488
АХАХА
https://twitter.com/bsdbcr/status/1053345738959183872
"We employ the other Alan Cox"

Volodymyr Kostyrko
19.10.2018
18:36:16
Спасибо интель, баги закрой.
И за работу дров для сетевух отдельное спасибо.

Andrey
19.10.2018
18:37:24
есть у меня сомнения на этот счёт, мне вот показалось они вон ту новую память/диск пытаются пропихнуть, остальное по старинке

Lev
19.10.2018
18:44:44
benhcmarks/iperf3 жрёт CPU явно больше чем должен
benchmarks/netperf виснет с недефолтовым буфером
benchmarks/netperfpeter не запускается без SCTP в ядре.
Ну девочка…

Andrey
19.10.2018
18:49:31
а не смотрел чем https://bsdrp.net/ он вроде иногда что то бенмарчит
хотя поди иперфом тоже :)

Google

Lev
19.10.2018
18:52:19

Andrey
19.10.2018
18:53:00
Оливер бенчит роутинг
нетмаповским pkt-gen обычно

Lev
19.10.2018
18:53:40
netmap хорошая штука, но, увы, всякие сложные штуки ей не побенчмаркать

Andrey
19.10.2018
18:54:38
ну у него лаба, есть генератор, роутер, и приёмник

Lev
19.10.2018
18:55:07
Мне бы лабу с двумя дейтсивтельно быстрыми концами! Я бы честный и VPN-раутинг потестил
https://bsdrp.net/documentation/examples/setting_up_a_vpn_ipsec_gre_etc..._performance_benchmark_lab — но столько железа у меня дома нет :-(

Andrey
19.10.2018
18:57:36
ну он там виртуализирует всё, но если по чесному железом, то да...

Lev
19.10.2018
18:58:06
Т.е. я понимаю, что я тут мамкин перформанс-инженер
Так-то вот читаю эту ссылку bsdrp — ну, вот так было бы две железки очень круто побенчмаркать. Но надо две реально мощные железки, которые всерьёз быстрее device under test

Andrey
19.10.2018
19:00:55
а у BSD нет какой лабы для девелоперов? типа заказал дали доступ побаловался, хотя подозреваю все в основном работы эксплуатируют :)

Andrey
19.10.2018
19:02:24
нету

Lev
19.10.2018
19:02:40

Andrey
19.10.2018
19:02:43
Оливер тоже там на своих железяках тестит
но ему предлагали вроде карточки хотя бы более быстрые

Lev
19.10.2018
19:03:56
Я просто набенчмаркал с помощью iperf3, а теперь сомневаюсь в результатах — ну что это такое когда на гигабите он жрёт одно ядро процессора, может я в него упёрся?
Прямо хоть сам пиши на kqueue примитивный TCP-тест
взять кусок nginx'а…

Vadim
19.10.2018
22:34:43

Google

Vadim
19.10.2018
22:35:16
я когда-то @pragus делал на kqueue демона, он говорил, почти не жрало проц, насытив гигабит

Roman
19.10.2018
22:37:12

Vadim
19.10.2018
22:37:44
не суть, главное, что описанный результат - что-то ненормальное

Roman
19.10.2018
22:37:54

Admin
ERROR: S client not available

Vadim
19.10.2018
22:37:57
не, ну может конечно iperf3 фатально через жопу написан...

Roman
19.10.2018
22:38:48
Я видел приложение, которое читает по 1 байту файлы на много сотен мб

Vadim
19.10.2018
22:39:02
xchat? =)

Roman
19.10.2018
22:40:02
xchat? =)
Нет. Да тот же imagemagick иногда в такое впадает


Lev
19.10.2018
22:43:30
В dpdk есть ipsec.
но в обычной жизни типа впн для дома, торренты, видео нет софта с dpdk. Это будет бесполезный бенчмарк
А что ты хочешь побенчить?
Так вот. Изначально я просто хотел по быстрому показать почему для раутера надо брать железку с AES-NI. Набросал тупой конфиг "гоним TCP через какую-нибудь энкапсуляцию и IPsec для шифрования" (для тестирования в три точки с железкой для тестов посередине у меня нет двух толстых железок, так что совсем тупенький тест).
Потом у меня начала падать фряха под этим тестом и я заебался его конфигурировать руками — написал скрпит.
Как только я написал скрипт я туда добавил все конфиги, которые смог придумать — gif, gre, с IPsec, без IPsec, IPsec tunnel, IPsec transport, mtu такой, mtu сякой — в общем, как только тебе не надо запускать урками сразу хочется померять БОЛЬШЕ.
И когда у меня набралось МНОГО чиселок и с большой достоверностью (много запусков, посчитал стандартное отклонение — оно небольшое) я увидел странности в этих числах — if_gif и if_gre на стандартных MTU совепшенно неправдопаодобно просаживают производительность и неправдоподобно жруть процессор. Вот это и исследую
Понятно, что нагрузка энкапсулировать пакетами по 1400 байтов и по 8192 байта — отличается а 6 раз. Ну, в 6 раз больше пакетов. А вот CPU начинаетс жраться в 10+ раз больше при скорости вдвое меньше (т.е. реально жрётся в 20 раз больше CPU), причём не только в ядре но и, что меня удивляет больше всего, в юзерленде. Хотя при одинаковых буферах юзреленду должно быть наплевать на какие пакеты режут его данные.
Пора, я чувствую, собирать стеки с помощью pmcstat
И, да, так как сеть всего гигабит, то казалось бы… Даже на дохлом Atom…


Terminator
19.10.2018
22:58:54
@blexen будет жить. Поприветствуем!

Roman
19.10.2018
23:19:01

Google

Lev
19.10.2018
23:19:22

Roman
19.10.2018
23:21:47

Vadim
19.10.2018
23:22:30

Lev
19.10.2018
23:22:57
Блин. Как pmcstat'ом стеки конкретного процесса собрать?..

Andrey
19.10.2018
23:24:45
https://twitter.com/michaeldexter/status/1053425269359276033
Если кто чего, можно быстренько спросить ;)

Lev
19.10.2018
23:43:51
pmc: ERROR: pmc_pmu_allocate failed, check for ctrname cpu_clk_unhalted.thread /o
что-то с hwpmc не так. И писал я ведь mmacy, но он сказал, что если kern.hwpmc.cpuid выставлен, то ок

El Mariachi
20.10.2018
06:25:23
всмысле последнее предложение кагбэ намекает, что привязка к одному CPU это ненормально

Lev
20.10.2018
07:04:54

El Mariachi
20.10.2018
07:05:39
ты писал что он грузит только одно ядро

Lev
20.10.2018
07:06:59
И подозрительно, что это зависит от mtu. Юзерленду должно быть пофиг.