Dmitry
понт, 120-150к
Dmitry
это тотал, ин и аут. до этого strace гонялся, по pid процесса раздающего и принимающего, не на дебаг ядре, так там времени много тратится write и мало на read
Dmitry
там по одному из тредов я стрейсил. было 8 сокетов с которых читались данные и 8 которые читали, репрокси такое себе
G72K
strace сильно меняет поведение системы, его для такого использовать нельзя. В perf есть свой strace -c
Dmitry
Dmitry
и по каждому fd выше я агрегировал за секунду время проведенное в write сисколе. а вот график переданных данных по каждому fd за это время
Dmitry
Dmitry
ну и предполдожил, что деградация из-за приницпа strace наблюдается существенная. потому перешел на perf
Dmitry
вот топ swapper, в одном случае это EC2, в другом свои сервера с OpenVZ ядром
Dmitry
https://i.stack.imgur.com/XdnBT.png
Dmitry
https://i.stack.imgur.com/BCtil.png
Dmitry
ну и перекос огромный. подозревая что debug ядро на Linux AMI 2017.09 отличается в чем-то от vzkernel7-debug, потому что на последнем куча save_stack, dump_trace и тп сисколов. могу предположить, что именно из-за этих медленных сисколов я вижу такой разброс
Dmitry
но почему их нет на AMI - непонятно
Dmitry
ну и разгружен EC2 инстанс был больше при меньшей вычислительной мощности
G72K
Напомните что за swapper
Dmitry
раньше назывался процесс init, это scheduler походу и ранер остальных процессов
Dmitry
так-то он в idle должен торчать, либо реагировать на softirq от девайсов, в моем случае от NIC
G72K
Это что то openvz специфичное? В любом случае много ack можно подкрутить tcp_delack_min
G72K
Чтобы слать пореже
Dmitry
но не только в нем грабли. любой процесс что делат write в сетевой fd приводит к вызову tcp_write_xmit и начинает тупить
G72K
накиньте памяти сокетам
Dmitry
тюнилось ядро
G72K
sysctl что то там wmem
Dmitry
и там настройки что при аналогичных ситуациях тянули по 20гбит трафика
Dmitry
дада, wmem, mem, rmem - это первым делом
Dmitry
еще до perf, по признакам проявляемым - безрезультатно, как и тюнинг TSO/MSO и смена карточки
Dmitry
ибо был Broadcom 5720, а воткнули X540 для теста
Dmitry
никакой разницы
G72K
Ну отправка пакетов при write это нормально.
G72K
Вы сейчас сколько прокачиваете?
Dmitry
все те же грабли с медленным write, на уровне сискола, а дальше perf по цепочке показывает на уровне кода драйвера. код драйвера читал тоже, на предмет проблем с DMA, но ничего не нашел. заткнулся на том что не знаю особенностей работы с perf и почему save_stack колится
Dmitry
100ин, 200аут на этих железках. максимум 1 гбит возможен на этом конфиге, но с проблемами латенси и большим разбросом
Dmitry
сейчас на 10г карте живем
Dmitry
т.е. ядро намного раньше упирается. бтв, не в контейнере гоняли эксперименты, просто на vzkernel7
G72K
save_stack это точно не артифакт perf?
G72K
Если нет, мож оно в dmesg срет стактрейсами :)
Dmitry
вот не знаю артефакт ли. по работе perf не так много инфы
Dmitry
в vger.kernel.org по листу perf написал, но он полудохлый
G72K
вот не знаю артефакт ли. по работе perf не так много инфы
Если артефакт, то наверху всех флеймов он будет
G72K
Если он только в kfree вызовах то это не артефаки
Dmitry
бтв, про delack, в коде сишном запись в сокет с TCP_NODELAY, потому Нагель выключен
Dmitry
так что не должно быть tcp ack delay в принципе
G72K
бтв, про delack, в коде сишном запись в сокет с TCP_NODELAY, потому Нагель выключен
Епт, а что ж вы хотите тогда ) сами просите слать пакет на каждый write
G72K
Это я про tcp_no delay. Delack он вроде на принимающей стороне
G72K
save_stack все равно подозрительно
Roman
а использовал кто dm-integrity/dm-raid?
G72K
https://i.stack.imgur.com/BCtil.png
Похоже артефакт перф. Но на предыдущей нет этого save_stack. Может флаги какие нибудь нещадящие использовались?
Dmitry
Похоже артефакт перф. Но на предыдущей нет этого save_stack. Может флаги какие нибудь нещадящие использовались?
вот я тоже не знаю так ли это. почему-то в других сисколах, не касающихся сетевой активности, sace_stack отсутсвует
Dmitry
есть flame graph полный в svg, если интересно
Roman
https://i.stack.imgur.com/XdnBT.png
у тебя тут xen в топе
Dmitry
там xennet_start_xmit, а на графие другом на его месте будет bnx2_start_xmit
Dmitry
это кол функции драйвера NIC
Dmitry
https://www.dropbox.com/s/gh0uxltxa1ws0ir/ec2_all_processes.svg?dl=0 - EC2 - all processes
Dmitry
https://www.dropbox.com/s/n2g2cywakhl58mb/vzkernel7_all_processes.svg?dl=0 - Our system all processes
Dmitry
детализация по swapper, net_rx_action
Dmitry
https://www.dropbox.com/s/td37qi9h7jdlrod/ec2_all_processes_net_rx_action.png?dl=0 - EC2
Dmitry
https://www.dropbox.com/s/olki993iby2gigp/vzkernel7_all_processes_net_rx_action.png?dl=0 - our system
G72K
вот я тоже не знаю так ли это. почему-то в других сисколах, не касающихся сетевой активности, sace_stack отсутсвует
Слушайте, а может у вас через старый kprobe/ftrace что то подцеплено и мониторит вызовы?
G72K
Там в /sys были какие то невменяемые крутилки как раз для такого. Там была опция трейсить определенные вызовы и как раз собирать стэки
Dmitry
я тоже так думал, но по flamegraph есть взовы что не закачниваются стек трейсами, а значит они эпизодические и провялются только в нетворкинг подсистеме
Dmitry
если бы только сеттингс ядра, то было бы на каждом коле такое имхо
shazo
Коллеги, а может есть тематичный канал по Hadoop?
Dmitry
https://t.me/hadoopusers
shazo
sps
Igor
https://pbs.twimg.com/media/DTsNw7QWkAAqOIU.jpg:large
Igor
я бы не беспокоил покой чатика, если бы не имя автора
Bogdan (SirEdvin)
Уже было, вроде
Igor
:'(
Sergey
Вот если б послушать 😊
Womchik
В исполнении?
Aleksey
лепса конечно
Aleksey
а 12-ую что бы бритни спирса
Nklya
Это в чяте хенгопса родилось btw
kevit
дорогие товарищи, а есть ли у кого на примете ubuntu/debian докерфайлы с systemd, нужно для автотестов
Igor
Это в чяте хенгопса родилось btw
а что за чат? где такой?
Tadeusz
в слеке есть hangops.slack.com