John_obn Опубликовано 20 января, 2021 · Жалоба 1 минуту назад, dryukov сказал: может быть даже flow control пакеты которые не поддерживаются картой. flow control отключен как со стороны сервера, так и со стороны коммутатора, куда он подключен. 8 часов назад, boco сказал: на эти "дропы" можно смело забить. это не потери, это отброшенные левые пакеты. https://www.suse.com/support/kb/doc/?id=000017478 В более современных доках от Intel пишут, что этот счетчик означает, что не успели опустошиться очереди сетевой карты. Пример Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dryukov Опубликовано 20 января, 2021 · Жалоба Наверное можно покрутить размеры rx буфферов, таймеры и количество до вызова НАПИ, и механизм группировки пакетов в очереди, частоту прерываний на обработчик и режим прерывания ядра, настройки таймингов планировщика. Однозначно никто пальцем не ткнет .... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 20 января, 2021 · Жалоба 8 минут назад, dryukov сказал: Наверное можно покрутить размеры rx буфферов, таймеры и количество до вызова НАПИ, и механизм группировки пакетов в очереди, частоту прерываний на обработчик и режим прерывания ядра, настройки таймингов планировщика. Однозначно никто пальцем не ткнет .... Я понимаю, что проблема редкая, да и мало кто на такой полосе трафика запускает все на штатном линуксе с conntrack, без всяких DPDK и прочих XDP. Поэтому осознаю, что однозначного ответа не получу, но коллективный разум может вывести на что то, что я еще не проверил. rx буферы выкручены на максимум (при меньших значениях были потери еще больше) под таймерами и частотой прерываний вы понимаете значения, которые можно выставить через ethtool -C ? механизм группировки пакетов в очереди , режим прерывания ядра, настройки таймингов планировщика - можете подробнее, про какие именно параметры вы говорите? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dryukov Опубликовано 20 января, 2021 · Жалоба Я о том что за обработчиком soft_irq выше стоит планировщик процессов, который режет время для него и ограничивает его время исполнения. Если очень мало времени выделено на выполнение потока то куча ресурсов будет уходить на переключение контекста и перегруз кешей. Про буфера карты - на стенде у меня система показывала худшую производительность с большими буферами, видимо всё зависит от размеров кешей проца и если буфер очень большой то много ожиданий подгрузки кеша при перекладке пакета из DMA буфера в память, потому как из буфера хоть как копирование идет в оперативку. При сборке ядра частота тактирования планировщика выбирается, либо может быть собрано без него tickless, ну и разумеется HPET должен быть включен, хотя в этом плане думаю в курсе. Я крутил мудрил и в итоге по всем тестам вынес RX на 2 ядра 4 потока 4 очереди, а уже фильтрацию и TX раскидал по другим процессорам через RPS что там дальше после приема и какие задержки будут для меня было не так критично. Можно попробовать покрутить на живую опции планировщика. kernel.sched_child_runs_first = 0 kernel.sched_min_granularity_ns = 3000000 kernel.sched_latency_ns = 15000000 kernel.sched_wakeup_granularity_ns = 3000000 kernel.sched_tunable_scaling = 1 kernel.sched_features = 7279 kernel.sched_migration_cost = 500000 kernel.sched_nr_migrate = 32 kernel.sched_time_avg = 1000 kernel.sched_shares_window = 10000000 kernel.timer_migration = 1 kernel.sched_rt_period_us = 1000000 kernel.sched_rt_runtime_us = 950000 kernel.sched_compat_yield = 0 kernel.sched_rr_timeslice_ms = 100 kernel.sched_autogroup_enabled = 0 kernel.sched_cfs_bandwidth_slice_us = 5000 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dryukov Опубликовано 20 января, 2021 · Жалоба ethtool -c rx-usecs tx-usecs - я в 100 и пакетов минимальных тоже не 0, иначе на каждый новый пакет будет NAPI вызываться это куча пустых переключений контекста и шедулера. по мне это не верно. Тут 0 использую только на yate --- "E1 Эльф-02 Парабел" с тюном ядра для вызова драйвера почаще, чтобы голос гонять с низким джитером. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 23 января, 2021 (изменено) · Жалоба On 1/20/2021 at 12:59 PM, John_obn said: редкая, да и мало кто на такой полосе трафика запускает не надо вспонить INTEL tulip. :) GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0 quiet splash bert_disable intel_idle.max_cstate=0 processor.max_cstate=0 mitigations=off nmi_watchdog=0 selinux=0" Изменено 23 января, 2021 пользователем h3ll1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 24 января, 2021 · Жалоба On 1/12/2021 at 10:07 PM, John_obn said: ведь idle у ядер не становится меньше 18-19% смотрите на LOCK > slow...и тд. в perf Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 27 января, 2021 (изменено) · Жалоба <?php /** * test6.php * * @package default */ $i=0; while ($i<10) { $url = "https://forum.nag.ru/index.php?/profile/".$i."-1"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-With: XMLHttpRequest")); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)"); $result[] = curl_exec($ch); $i++; } curl_close($ch); foreach ($result as $rk => $rv) { $n_r = preg_split("#[\r\n]+#", $rv); foreach ($n_r as $nrg) { if (strpos(trim($nrg), '"name"') !== false && strpos(trim($nrg), ',') === false) { $fe=explode(': ', trim($nrg)); echo "username : ".$fe[1]. " id: ".$rk." password : guess :)\n"; } } } $i=?; // max(id)? Изменено 28 января, 2021 пользователем h3ll1 Добавил текст Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 11 февраля, 2021 · Жалоба Коллеги, не подскажете как размазать равномерно прерывания от Local timer interrupts, ну или подсказать в чём может быть причина неравномерности? egrep -e "(Local|CPU)" /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 LOC: 7475489 168479421 9326661 10982429 27785212 25958481 66395942 32991791 Local timer interrupts Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 11 февраля, 2021 · Жалоба @pppoetest А resсheduling тоже большой? Система с NUMA? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 11 февраля, 2021 · Жалоба 3 часа назад, jffulcrum сказал: @pppoetest А resсheduling тоже большой? Система с NUMA? egrep -e "(Resched|CPU)" /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 RES: 2834381 7134926 2499862 4152040 2744999 2573530 3193218 2668302 Rescheduling interrupts Система скомпилена с NUMA, но оно вроде не включено, т.к. камень один user@server:~$ dmesg | grep -i numa user@server:~$ user@server:~$ cat /sys/devices/system/node/online 0 user@server:~$ grep NUMA=y /boot/config-`uname -r` CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_ACPI_NUMA=y Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 11 февраля, 2021 · Жалоба Обычно такая хрень возникает на NUMA, когда приватный объем процесса превышает размер домена, и его начинает размазывать на соседей. Другая причина - context switching, выполните sar -w 5 15 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 11 февраля, 2021 · Жалоба 1 час назад, jffulcrum сказал: context switching Небольшой, ~1.7-1.8k в ЧНН, прерываний - да дохрена, в ЧНН до 300k 1 час назад, jffulcrum сказал: sar -w 5 15 user@server:~$ sar -w 5 15 Linux 3.18.19 (server) 02/12/2021 _x86_64_ (8 CPU) 04:17:11 AM proc/s cswch/s 04:17:16 AM 0.80 702.00 04:17:21 AM 0.00 634.60 04:17:26 AM 0.80 669.00 04:17:31 AM 0.00 731.00 04:17:36 AM 0.80 732.20 04:17:41 AM 0.00 598.80 04:17:46 AM 0.80 678.40 04:17:51 AM 0.00 634.40 04:17:56 AM 0.80 696.40 04:18:01 AM 0.00 636.60 04:18:06 AM 0.80 715.40 04:18:11 AM 0.00 691.60 04:18:16 AM 0.80 744.20 04:18:21 AM 0.00 662.60 04:18:26 AM 0.80 714.00 Average: 0.43 682.75 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 12 февраля, 2021 · Жалоба Ну, в моей практике когда наблюдается товарный CS и рост LTI/RS, то это означает, что уперлось в производительность проца или (было два раза и такое) ПСП памяти. Соответственно, виртуалка - ехала на новый хост, ну а с хоста - снималась пара самых тяжелых виртуалок. Что в вашем случае делать сказать сложно, я, конечно, могу начать советовать, но а) не факт, что это будет заметно лучше простого перебора выдачи Гугла по context switching б) не кончится, как в анекдоте про Горбачева: - Ну как коровы? - Да все попередохли. - Жаль, а у меня было еще столько замечательных идей! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 13 февраля, 2021 (изменено) · Жалоба On 2/11/2021 at 6:30 PM, jffulcrum said: А resсheduling тоже большой? Система с NUMA? Quote <?php /** * php-irq.php * * @package default */ $interf=shell_exec("cat /proc/interrupts | grep -o 'eth[0-9]\+' | uniq"); $interfaces=preg_split("#[\r\n]+#", $interf); $interfaces = array_filter($interfaces); $threads_=shell_exec("lscpu | grep Thread"); $threads__=explode(':', $threads_); $threads=trim($threads__[1]); $cnt_int=count($interfaces); $cc=1; foreach ($interfaces as $key => $value) { $n=1; $p = exec("cat /proc/cpuinfo | grep MHz | wc | awk '{print $1}'"); $interr = "cat /proc/interrupts | grep $value | awk '{print $(1)}' | sed -e 's/\://g'"; $result = shell_exec($interr); $oparray = preg_split("#[\r\n]+#", $result); $res = array_filter($oparray); $i=$n; $i1=0; $count_res=(count($res)-1); if (count($res) > 1){ array_pop($res); } foreach ($res as $line) { $p1=$p; exec("echo 0-$p1 > /proc/irq/$line/smp_affinity_list"); if ($i1 < $count_res) { exec("echo ffffffff,ffffffff,ffffffff,ffffffff > /sys/class/net/$value/queues/rx-".$i1."/rps_cpus"); } $cc_plus=($cc*$threads*2); if ($count_res==0) { exec("echo ".dechex($cc_plus)." > /proc/irq/$line/smp_affinity"); } else { $i2=dechex($i); exec("echo $i2 > /proc/irq/$line/smp_affinity"); $i=($i)*2; $i1++; } } $n=$n*2; $cc++; } ?> Я думаю, что работает. Изменено 13 февраля, 2021 пользователем h3ll1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 13 февраля, 2021 · Жалоба извините... а кде там WY6EPT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Maxim Опубликовано 12 марта, 2021 · Жалоба Не могу победить следующую проблему. Растут счетчики Quote xeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether f8:f2:1e:7b:23:24 txqueuelen 10000 (Ethernet) RX packets 106758992892 bytes 112216041527408 (102.0 TiB) RX errors 908113 dropped 0 overruns 0 frame 886 TX packets 78478220532 bytes 48411724541704 (44.0 TiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Quote NIC statistics: rx_packets: 106762064583 tx_packets: 78480786615 rx_bytes: 112218951912304 tx_bytes: 48413738354258 rx_errors: 908138 rx_csum_offload_errors: 907201 Пачкорды, модули уже менял. Не знаю уже и куда копать. Карта: Quote 0e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 0e:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) Вывод DDM Quote Identifier : 0x03 (SFP) Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID) Connector : 0x07 (LC) Transceiver codes : 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Transceiver type : 10G Ethernet: 10G Base-ER [SFF-8472 rev10.4 onwards] Encoding : 0x06 (64B/66B) BR, Nominal : 10300MBd Rate identifier : 0x00 (unspecified) Length (SMF,km) : 40km Length (SMF) : 25500m Length (50um) : 0m Length (62.5um) : 0m Length (Copper) : 0m Length (OM3) : 0m Laser wavelength : 1330nm Vendor name : OEM Vendor OUI : 00:00:00 Vendor PN : SFP+ BIDI-40 Vendor rev : A Option values : 0x00 0x1a Option : RX_LOS implemented Option : TX_FAULT implemented Option : TX_DISABLE implemented BR margin, max : 0% BR margin, min : 0% Vendor SN : SFAF840003 Date code : 151024 Optical diagnostics support : Yes Laser bias current : 28.202 mA Laser output power : 1.7269 mW / 2.37 dBm Receiver signal average optical power : 0.4372 mW / -3.59 dBm Module temperature : 39.62 degrees C / 103.31 degrees F Module voltage : 3.3002 V Alarm/warning flags implemented : Yes Laser bias current high alarm : Off Laser bias current low alarm : Off Laser bias current high warning : Off Laser bias current low warning : Off Laser output power high alarm : Off Laser output power low alarm : Off Laser output power high warning : Off Laser output power low warning : Off Module temperature high alarm : Off Module temperature low alarm : Off Module temperature high warning : Off Module temperature low warning : Off Module voltage high alarm : Off Module voltage low alarm : Off Module voltage high warning : Off Module voltage low warning : Off Laser rx power high alarm : Off Laser rx power low alarm : Off Laser rx power high warning : Off Laser rx power low warning : Off Laser bias current high alarm threshold : 90.000 mA Laser bias current low alarm threshold : 2.000 mA Laser bias current high warning threshold : 80.000 mA Laser bias current low warning threshold : 3.000 mA Laser output power high alarm threshold : 3.9811 mW / 6.00 dBm Laser output power low alarm threshold : 1.0000 mW / 0.00 dBm Laser output power high warning threshold : 3.1623 mW / 5.00 dBm Laser output power low warning threshold : 1.2589 mW / 1.00 dBm Module temperature high alarm threshold : 90.00 degrees C / 194.00 degrees F Module temperature low alarm threshold : -25.00 degrees C / -13.00 degrees F Module temperature high warning threshold : 85.00 degrees C / 185.00 degrees F Module temperature low warning threshold : -20.00 degrees C / -4.00 degrees F Module voltage high alarm threshold : 3.6000 V Module voltage low alarm threshold : 3.0000 V Module voltage high warning threshold : 3.5000 V Module voltage low warning threshold : 3.0500 V Laser rx power high alarm threshold : 1.2589 mW / 1.00 dBm Laser rx power low alarm threshold : 0.0158 mW / -18.01 dBm Laser rx power high warning threshold : 1.0000 mW / 0.00 dBm Laser rx power low warning threshold : 0.0199 mW / -17.01 dBm Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 16 марта, 2021 · Жалоба В 13.03.2021 в 03:27, Maxim сказал: Receiver signal average optical power : 0.4372 mW / -3.59 dBm Не многовато ли? Может по приему до -6 сигнал понизить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Maxim Опубликовано 16 марта, 2021 · Жалоба Это 40 километровки воткнули для проверки. До этого 20-ки стояли, ничего не помогает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
QWE Опубликовано 16 марта, 2021 · Жалоба 26 минут назад, Maxim сказал: rx_csum_offload_errors - как быстро накручивается счетчик? что именно в драйвере сетевого интерфейса означает ошибка? жалобы есть на потери пакетов? потери при ping есть? или просто не нравится что счетчик накручивается? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Maxim Опубликовано 16 марта, 2021 · Жалоба Quote Tue Mar 16 16:22:33 +08 2021 NIC statistics: rx_packets: 25777616641 tx_packets: 17640710378 rx_bytes: 27794359621088 tx_bytes: 10483317055740 rx_errors: 116499 rx_csum_offload_errors: 116499 Quote Tue Mar 16 16:24:31 +08 2021 NIC statistics: rx_packets: 25790971139 tx_packets: 17649701854 rx_bytes: 27808846394108 tx_bytes: 10487955274543 rx_errors: 116542 rx_csum_offload_errors: 116542 За 2 минуты счетчик увеличился на 43. Жалоб нет. Потерь по пингу нет. Но очень не приятно....... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
QWE Опубликовано 16 марта, 2021 · Жалоба 13 минут назад, Maxim сказал: За 2 минуты счетчик увеличился на 43. Жалоб нет. Потерь по пингу нет. Но очень не приятно....... У меня тоже накручивается, где то 1-2 пакета в сек. при 200к пакетов в секунду транзитного трафика. Вопрос остается - что именно в драйвере сетевого интерфейса означает ошибка? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
QWE Опубликовано 16 марта, 2021 · Жалоба 1 час назад, Maxim сказал: За 2 минуты счетчик увеличился на 43. Жалоб нет. Потерь по пингу нет. Но очень не приятно....... Раз столкнулся с ростом счетчика CRC (если не ошибаюсь) на коммутаторе ELTEX. Отзеркалил трафик, выяснилось что коммутатор так реагировал на тегированные фреймы ISL (транковый протокл Cisco) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dryukov Опубликовано 19 марта, 2021 · Жалоба Видимо заняться нечем человеку, раз комплексы из за цифр при полной работоспособности. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 25 марта, 2021 · Жалоба флоу контрол... помоему. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...