ingvarrwvw Опубликовано 30 мая, 2018 · Жалоба Всем доброго дня. FreeBSD 10.3 Сеть на ix 82599ES 10-Gigabit Сервер ProLiant DL360 G5 Проц E5450 @ 3.00GHz, два штуки по 4 ядра HT выключен. Из сервисов только pf nat и bgp на квагге. Фильтрация не используется. Трафика 1.5 гбит, суммарная загрузка процов доходит до 30%. Прерывания распределяются ровно: vmstat -i interrupt total rate irq1: atkbd0 18 0 irq14: ata0 280694 0 irq22: uhci4 24 0 cpu0:timer 440402789 1045 irq256: ix0:q0 2936855695 6971 irq257: ix0:q1 3216167594 7634 irq258: ix0:q2 3437776130 8160 irq259: ix0:q3 3002407789 7126 irq260: ix0:q4 2982675851 7079 irq261: ix0:q5 3324595248 7891 irq262: ix0:q6 2966543606 7041 irq263: ix0:q7 3035602172 7205 irq264: ix0:link 1 0 irq265: ix1:q0 2913150425 6914 irq266: ix1:q1 3224929543 7655 irq267: ix1:q2 3454122927 8199 irq268: ix1:q3 3011195104 7147 irq269: ix1:q4 3001954609 7125 irq270: ix1:q5 3301233480 7836 irq271: ix1:q6 2970392567 7050 irq272: ix1:q7 3066342775 7278 irq273: ix1:link 1 0 Смущает много софтовых прерываний: vmstat -s 366097786 cpu context switches 3426668849 device interrupts 832478312 software interrupts 201457044 traps 1583558136 system calls sysctl.conf kern.random.sys.harvest.ethernet=0 kern.random.sys.harvest.point_to_point=0 kern.random.sys.harvest.interrupt=0 kern.ipc.maxsockbuf=83886080 loader.conf hint.p4tcc.0.disabled=1 hint.acpi_throttle.0.disabled=1 dev.ix.0.rx_processing_limit=4096 dev.ix.1.rx_processing_limit=4096 hw.ix.tx_process_limit=-1 hw.ix.rx_process_limit=-1 hw.ix.rxd=4096 hw.ix.txd=4096 cc_htcp_load="YES" net.link.ifqmaxlen=8192 # (default 50) net.isr.defaultqlimit=8192 # (default 256) hw.ix.max_interrupt_rate=32000 # (default 8000) kern.ipc.nmbclusters=5242880 kern.ipc.nmbjumbop=2621440 hw.intr_storm_threshold=9000 net.inet.tcp.syncache.hashsize=1024 net.inet.tcp.syncache.bucketlimit=100 hw.ix.enable_aim=0 net.isr.bindthreads=1 net.isr.maxthreads=8 net.isr.numthreads=8 Можно ли что-то еще подкрутить для улучшения? И основной вопрос. Решил перейти на 11 FreeBSD. Загружаюсь на этом же сервере под FreeBSD 11.1,настройки по части сети идентичные, единственно добавляется harvest_mask=351. Прерывания начинают грузить процы в 2-3 раза сильнее,и на пиках доходят до 100% на этом же трафике, т.е. 1.5 гбит. Есть у кого в работе 11 ветка, какие новшества я не учел в части настройки сети? Будет ли профит по производительности с 10.3 на 11 ? Уповаю на помощь корифеев тазиководства ) Всем спасибо заранее! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 30 мая, 2018 · Жалоба 5 часов назад, ingvarrwvw сказал: harvest_mask=351 Что мешает поставить на 0 или более разумно там немного оставить, скажем дисковые и клавиатурные события? Мои конфиги тут лежат: http://www.netlab.linkpc.net/download/software/os_cfg/FBSD/11/ base+srv сверху. Сам сервер под роутер так себе, на меж CPU связи производительность сильно проседает, жалкий I5 там будет ощутимо лучше работать. https://www.freebsd.org/releases/11.1R/errata.html https://www.freebsd.org/releases/11.0R/errata.html Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 30 мая, 2018 · Жалоба БИОСы и фирмваре на сервере самые последние? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 30 мая, 2018 · Жалоба 1 час назад, vlad11 сказал: БИОСы и фирмваре на сервере самые последние? Не поможет. Скорее внять один проц даст больше эффекта. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rdc Опубликовано 30 мая, 2018 · Жалоба 12 часов назад, ingvarrwvw сказал: Проц E5450 @ 3.00GHz, два штуки +1 к выниманию проца Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 31 мая, 2018 · Жалоба 11 hours ago, vlad11 said: БИОСы и фирмваре на сервере самые последние? Да, это все последнее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 31 мая, 2018 · Жалоба 10 hours ago, Ivan_83 said: Не поможет. Скорее внять один проц даст больше эффекта. Физическое вынимание проца и иcскуственное ограничение в виде: net.isr.maxthreads=8 ---> 4net.isr.numthreads=8 ---> 4 даст одинаковый эффект? Плюс по ядрам прерывания разнести ровно. Впрочем, буду пробовать. Спасибо за советы! Еще ,по вашему мнению, какой процессор наиболее подходящий для рутинга? Что нибудь такое: Intel Xeon E5-2683 V4 2.1G 16C ? На AMD стоит смотреть под такие задачи? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 31 мая, 2018 · Жалоба net.inet.ip.redirect=0 еще можно но странно что нагрузка по iq возрастает на новой бсд можете временно тыкнуть hw.ix.num_queues=8 или 16 для посмотреть будут ли изменения в iq Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 31 мая, 2018 · Жалоба 1 час назад, ingvarrwvw сказал: Еще ,по вашему мнению, какой процессор наиболее подходящий для рутинга? Что нибудь такое: Intel Xeon E5-2683 V4 2.1G 16C ? На AMD стоит смотреть под такие задачи? E3-1220 хватит на ваши нужды с запасом, сервер в сборе будет стоить в 5 раза дешевле чем ненужный проц 'E5-2683'. АМД не нужно смотреть. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 31 мая, 2018 · Жалоба если есть время и желание поразбираться что грузит так цпу на новой фре вот ссылка в конце статьи https://bsdrp.net/documentation/technical_docs/performance и да HT лучше с биоса или с настроек бсд выключить, уменьшением очереди не факт что где то останется какое то узкое место которое будет мешать Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 31 мая, 2018 · Жалоба 3 hours ago, kayot said: E3-1220 хватит на ваши нужды с запасом, сервер в сборе будет стоить в 5 раза дешевле чем ненужный проц 'E5-2683'. АМД не нужно смотреть. Нужды до 10gbit под те же задачи. Е3-1220 хватит под такую задачу? 2 hours ago, paradox_ said: если есть время и желание поразбираться что грузит так цпу на новой фре вот ссылка в конце статьи https://bsdrp.net/documentation/technical_docs/performance и да HT лучше с биоса или с настроек бсд выключить, уменьшением очереди не факт что где то останется какое то узкое место которое будет мешать HT отключен в биосе. Разбираться буду,да. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 31 мая, 2018 · Жалоба 8 минут назад, ingvarrwvw сказал: Нужды до 10gbit под те же задачи. Е3-1220 хватит под такую задачу? 1220v1 с трудом. Какой-нить 1270v5 или 1680v3/v4 будут в самый раз. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 31 мая, 2018 · Жалоба 8 часов назад, ingvarrwvw сказал: даст одинаковый эффект? Плюс по ядрам прерывания разнести ровно. Нет. У тебя есть общие данные которые шарятся между процами, для сихронизации доступа процы будут долго общаться между собой. 8 часов назад, ingvarrwvw сказал: На AMD стоит смотреть под такие задачи? Если только на ядрах райзена. 8 часов назад, paradox_ сказал: net.inet.ip.redirect=0 еще можно Немного не в тему. net.inet.ip.redirect: Enable sending IP redirects Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 31 мая, 2018 · Жалоба 5 минут назад, Ivan_83 сказал: Немного не в тему. net.inet.ip.redirect: Enable sending IP redirects это в тему про тюнинг, а не про странную загрузку на 11 мелких админов /24 сразу можно отличить по не знаю этой опции)) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 31 мая, 2018 · Жалоба 6 минут назад, paradox_ сказал: это в тему про тюнинг, а не про странную загрузку на 11 Для общего тюнинга это сильно мало. У меня по ссылке выше сильно больше всего накручено да ещё и подписано что это такое. Я уже и не админ, у меня несколько /32 ) Но в ядре я колупаюсь и патчю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 31 мая, 2018 · Жалоба В 30.05.2018 в 20:27, Ivan_83 сказал: Не поможет. Это минимальное, но не достаточное требование. 18 часов назад, ingvarrwvw сказал: Да, это все последнее. Можете это как-то подтвердить? В 30.05.2018 в 08:39, ingvarrwvw сказал: Решил перейти на 11 FreeBSD. Загружаюсь на этом же сервере под FreeBSD 11.1,настройки по части сети идентичные, единственно добавляется harvest_mask=351. Прерывания начинают грузить процы в 2-3 раза сильнее,и на пиках доходят до 100% на этом же трафике, т.е. 1.5 гбит. Покажите топ процессов. Покажите вывод sysctl -a kern.eventtimer netstat -m 9 часов назад, Ivan_83 сказал: Но в ядре я колупаюсь и патчю. Можете показать коммиты в общем дереве FreeBSD ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 1 июня, 2018 · Жалоба 2 часа назад, vlad11 сказал: Можете показать коммиты в общем дереве FreeBSD ? ng_vlan.c переписал. Куски по arp проколу тоже мои, искать мелкими частями с 2011 года. amdtemp допинать лень, так и висит в фабрикаторе. Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 1 июня, 2018 · Жалоба 1 час назад, Ivan_83 сказал: ng_vlan.c переписал. Куски по arp проколу тоже мои, искать мелкими частями с 2011 года. Ок. По поводу PR187835 к вам? 1 час назад, Ivan_83 сказал: Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю. Интересна лицензия. GPLv3 ? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 1 июня, 2018 · Жалоба Всем спасибо большое за внимание к теме. В ближайшее время смогу вытащить один проц и потестить на 11.1 под нагрузкой. Параметры и результаты выложу по итогу. Плюс заказано несколько платформ для тестирования с разными процессорами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hsvt Опубликовано 1 июня, 2018 · Жалоба В 30.05.2018 в 13:58, Ivan_83 сказал: Что мешает поставить на 0 или более разумно там немного оставить, скажем дисковые и клавиатурные события? Мои конфиги тут лежат: http://www.netlab.linkpc.net/download/software/os_cfg/FBSD/11/ base+srv сверху. Сам сервер под роутер так себе, на меж CPU связи производительность сильно проседает, жалкий I5 там будет ощутимо лучше работать. https://www.freebsd.org/releases/11.1R/errata.html https://www.freebsd.org/releases/11.0R/errata.html В чём разница base srv work ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 1 июня, 2018 · Жалоба 9 часов назад, hsvt сказал: В чём разница base srv work ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать. Не делайте так, как он в /etc/src.conf. Для этого есть свой конфиг ядра, если чем-то не устраивает GENERIC. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 1 июня, 2018 · Жалоба 15 часов назад, vlad11 сказал: По поводу PR187835 к вам? если не тюнить sysctl вывод в бинарке начинается раньше ? или все так же с того же номера влан ? если раньше - то банально не хватает памяти, тюнить еще sysctl Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 2 июня, 2018 · Жалоба 23 часа назад, vlad11 сказал: По поводу PR187835 к вам? Нет. Скорее всего он упёрся в лимит буфера нетграф сокета, тюнить сисцтл. 23 часа назад, vlad11 сказал: Интересна лицензия. GPLv3 ? :) Нет. С чего бы? 17 часов назад, hsvt сказал: В чём разница base srv base - общие файлы, типа первыми накатывается srv/wks - кастомизация под сервер/рабочую станцию, накатывается вторым. Хотя они пока не пересекаются с base, всмысле не содержат файлов с одинаковыми именами. Да, с моими конфигами нужно осторожнее, а то можно огрести проблем если бездумно накатить всё что есть. 8 часов назад, vlad11 сказал: Не делайте так, как он в /etc/src.conf. Для этого есть свой конфиг ядра, если чем-то не устраивает GENERIC. Ну подумаешь не будет openssh, ntp, telnet, sendmail, unbound и ещё кучи ненужного после пересборки системы :))) Заодно и пачка ненужных дров уйдёт и ядро полегчает :) Конфиги ядра я тоже подумываю сюда приложить, а то пока валяются в исходниках. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 8 июня, 2018 · Жалоба Вытащили один проц. На 800 мбит загрузка 60%. uname -na FreeBSD GW_1 11.2-RC1 FreeBSD 11.2-RC1 #0 r334470: top -SCHIP 164 processes: 10 running, 122 sleeping, 32 waiting CPU 0: 0.0% user, 0.0% nice, 2.3% system, 39.5% interrupt, 58.1% idle CPU 1: 0.0% user, 0.0% nice, 2.3% system, 51.2% interrupt, 46.5% idle CPU 2: 0.0% user, 0.0% nice, 2.3% system, 62.8% interrupt, 34.9% idle CPU 3: 2.3% user, 0.0% nice, 4.7% system, 46.5% interrupt, 46.5% idle Mem: 438M Active, 303M Inact, 2113M Wired, 1159M Buf, 13G Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 1 660:00 53.04% idle{idle: cpu1} 11 root 155 ki31 0K 64K RUN 0 662:32 52.36% idle{idle: cpu0} 11 root 155 ki31 0K 64K RUN 3 663:58 49.69% idle{idle: cpu3} 11 root 155 ki31 0K 64K RUN 2 654:38 49.38% idle{idle: cpu2} 12 root -92 - 0K 560K WAIT 3 23:40 37.04% intr{irq259: ix0:q3} 12 root -92 - 0K 560K WAIT 2 24:00 32.73% intr{irq258: ix0:q2} 12 root -92 - 0K 560K CPU0 0 23:27 31.79% intr{irq256: ix0:q0} 12 root -92 - 0K 560K WAIT 1 24:50 23.33% intr{irq257: ix0:q1} 12 root -92 - 0K 560K CPU1 1 17:31 20.06% intr{irq262: ix1:q1} 12 root -92 - 0K 560K WAIT 2 15:20 15.48% intr{irq263: ix1:q2} 12 root -92 - 0K 560K RUN 0 13:50 13.74% intr{irq261: ix1:q0} 12 root -92 - 0K 560K WAIT 3 13:32 11.57% intr{irq264: ix1:q3} 4277 root 20 0 7916K 4328K CPU1 1 0:00 2.70% top 12 root -72 - 0K 560K WAIT 1 3:35 2.47% intr{swi1: pfsync} 663 root -16 - 0K 16K pftm 1 4:59 1.98% pf purge 12 root -92 - 0K 560K WAIT 0 12:22 1.32% intr{irq267: bce0} sysctl.conf net.inet.carp.preempt=1 net.inet.ip.redirect=0 hw.ix.enable_aim=1 kern.ipc.nmbclusters=5242880 kern.ipc.maxsockbuf=83886080 loader.conf carp_load="YES" net.isr.defaultqlimit=4096 # (default 256) hw.ix.max_interrupt_rate=16000 # (default 8000) hw.ix.rx_process_limit=-1 hw.ix.tx_process_limit=-1 hw.ix.num_queues=4 hw.ix.rxd=4096 hw.ix.txd=4096 net.isr.bindthreads=1 net.isr.maxthreads=4 net.isr.numthreads=4 vmstat -i interrupt total rate irq1: atkbd0 6 0 irq14: ata0 28447 1 irq20: hpet0 18878914 440 irq22: uhci4 1708 0 irq256: ix0:q0 82997235 1935 irq257: ix0:q1 84871725 1979 irq258: ix0:q2 88312220 2059 irq259: ix0:q3 82268600 1918 irq260: ix0:link 53 0 irq261: ix1:q0 57475063 1340 irq262: ix1:q1 60558888 1412 irq263: ix1:q2 54806017 1278 irq264: ix1:q3 51703498 1205 irq265: ix1:link 2 0 irq266: ciss0 92935 2 irq267: bce0 62646697 1460 Total 644642008 15028 sysctl -a kern.eventtimer kern.eventtimer.periodic: 0 kern.eventtimer.timer: HPET kern.eventtimer.idletick: 0 kern.eventtimer.singlemul: 2 kern.eventtimer.choice: HPET(450) HPET1(440) HPET2(440) LAPIC(100) i8254(100) RTC(0) kern.eventtimer.et.RTC.quality: 0 kern.eventtimer.et.RTC.frequency: 32768 kern.eventtimer.et.RTC.flags: 17 kern.eventtimer.et.HPET2.quality: 440 kern.eventtimer.et.HPET2.frequency: 14318180 kern.eventtimer.et.HPET2.flags: 3 kern.eventtimer.et.HPET1.quality: 440 kern.eventtimer.et.HPET1.frequency: 14318180 kern.eventtimer.et.HPET1.flags: 3 kern.eventtimer.et.HPET.quality: 450 kern.eventtimer.et.HPET.frequency: 14318180 kern.eventtimer.et.HPET.flags: 3 kern.eventtimer.et.i8254.quality: 100 kern.eventtimer.et.i8254.frequency: 1193182 kern.eventtimer.et.i8254.flags: 1 kern.eventtimer.et.LAPIC.quality: 100 kern.eventtimer.et.LAPIC.frequency: 0 kern.eventtimer.et.LAPIC.flags: 15 netstat -m 35400/11925/47325 mbufs in use (current/cache/total) 34861/8159/43020/5242880 mbuf clusters in use (current/cache/total/max) 34861/8149 mbuf+clusters out of packet secondary zone in use (current/cache) 0/12/12/509479 4k (page size) jumbo clusters in use (current/cache/total/max) 0/0/0/150956 9k jumbo clusters in use (current/cache/total/max) 0/0/0/84913 16k jumbo clusters in use (current/cache/total/max) 78572K/19347K/97919K bytes allocated to network (current/cache/total) harvest_mask - по умолчанию оставил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingvarrwvw Опубликовано 8 июня, 2018 · Жалоба pmcstat -TS instructions -w1 %SAMP IMAGE FUNCTION CALLERS 49.7 kernel sched_idletd fork_exit 2.6 kernel cpu_search_highest cpu_search_highest:1.6 sched_idletd:0.5 2.2 libc.so.7 bsearch 0x64db 2.0 pf.ko pf_test pf_check_in:1.1 pf_check_out:1.0 1.9 kernel lock_delay __mtx_lock_sleep:1.1 _mtx_lock_spin_cookie:0.8 1.7 kernel cpu_search_lowest cpu_search_lowest 1.7 kernel rn_match fib4_lookup_nh_basic 1.6 pf.ko pf_test_rule pf_test 1.4 kernel _rm_rlock pfil_run_hooks:0.5 in_localip:0.5 1.1 kernel bzero 1.1 kernel murmur3_32_hash32 pf_find_state 1.1 kernel ixgbe_rxeof ixgbe_msix_que 1.0 kernel sched_switch mi_switch 0.9 pf.ko pf_test_state_tcp pf_test 0.8 pf.ko pf_normalize_ip pf_test 0.7 kernel ip_tryforward ip_input 0.7 pf.ko pf_match_translation pf_get_translation 0.6 kernel bcopy 0.6 pf.ko pf_normalize_tcp pf_test 0.6 kernel critical_exit Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...