ingvarrwvw Posted May 30, 2018 · Report post Всем доброго дня. 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 ? Уповаю на помощь корифеев тазиководства ) Всем спасибо заранее! Share this post Link to post Share on other sites
Ivan_83 Posted May 30, 2018 · Report post 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 Share this post Link to post Share on other sites
vlad11 Posted May 30, 2018 · Report post БИОСы и фирмваре на сервере самые последние? Share this post Link to post Share on other sites
Ivan_83 Posted May 30, 2018 · Report post 1 час назад, vlad11 сказал: БИОСы и фирмваре на сервере самые последние? Не поможет. Скорее внять один проц даст больше эффекта. Share this post Link to post Share on other sites
rdc Posted May 30, 2018 · Report post 12 часов назад, ingvarrwvw сказал: Проц E5450 @ 3.00GHz, два штуки +1 к выниманию проца Share this post Link to post Share on other sites
ingvarrwvw Posted May 31, 2018 · Report post 11 hours ago, vlad11 said: БИОСы и фирмваре на сервере самые последние? Да, это все последнее. Share this post Link to post Share on other sites
ingvarrwvw Posted May 31, 2018 · Report post 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 стоит смотреть под такие задачи? Share this post Link to post Share on other sites
paradox_ Posted May 31, 2018 · Report post net.inet.ip.redirect=0 еще можно но странно что нагрузка по iq возрастает на новой бсд можете временно тыкнуть hw.ix.num_queues=8 или 16 для посмотреть будут ли изменения в iq Share this post Link to post Share on other sites
kayot Posted May 31, 2018 · Report post 1 час назад, ingvarrwvw сказал: Еще ,по вашему мнению, какой процессор наиболее подходящий для рутинга? Что нибудь такое: Intel Xeon E5-2683 V4 2.1G 16C ? На AMD стоит смотреть под такие задачи? E3-1220 хватит на ваши нужды с запасом, сервер в сборе будет стоить в 5 раза дешевле чем ненужный проц 'E5-2683'. АМД не нужно смотреть. Share this post Link to post Share on other sites
paradox_ Posted May 31, 2018 · Report post если есть время и желание поразбираться что грузит так цпу на новой фре вот ссылка в конце статьи https://bsdrp.net/documentation/technical_docs/performance и да HT лучше с биоса или с настроек бсд выключить, уменьшением очереди не факт что где то останется какое то узкое место которое будет мешать Share this post Link to post Share on other sites
ingvarrwvw Posted May 31, 2018 · Report post 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 отключен в биосе. Разбираться буду,да. Share this post Link to post Share on other sites
kayot Posted May 31, 2018 · Report post 8 минут назад, ingvarrwvw сказал: Нужды до 10gbit под те же задачи. Е3-1220 хватит под такую задачу? 1220v1 с трудом. Какой-нить 1270v5 или 1680v3/v4 будут в самый раз. Share this post Link to post Share on other sites
Ivan_83 Posted May 31, 2018 · Report post 8 часов назад, ingvarrwvw сказал: даст одинаковый эффект? Плюс по ядрам прерывания разнести ровно. Нет. У тебя есть общие данные которые шарятся между процами, для сихронизации доступа процы будут долго общаться между собой. 8 часов назад, ingvarrwvw сказал: На AMD стоит смотреть под такие задачи? Если только на ядрах райзена. 8 часов назад, paradox_ сказал: net.inet.ip.redirect=0 еще можно Немного не в тему. net.inet.ip.redirect: Enable sending IP redirects Share this post Link to post Share on other sites
paradox_ Posted May 31, 2018 · Report post 5 минут назад, Ivan_83 сказал: Немного не в тему. net.inet.ip.redirect: Enable sending IP redirects это в тему про тюнинг, а не про странную загрузку на 11 мелких админов /24 сразу можно отличить по не знаю этой опции)) Share this post Link to post Share on other sites
Ivan_83 Posted May 31, 2018 · Report post 6 минут назад, paradox_ сказал: это в тему про тюнинг, а не про странную загрузку на 11 Для общего тюнинга это сильно мало. У меня по ссылке выше сильно больше всего накручено да ещё и подписано что это такое. Я уже и не админ, у меня несколько /32 ) Но в ядре я колупаюсь и патчю. Share this post Link to post Share on other sites
vlad11 Posted May 31, 2018 · Report post В 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 ? Share this post Link to post Share on other sites
Ivan_83 Posted June 1, 2018 · Report post 2 часа назад, vlad11 сказал: Можете показать коммиты в общем дереве FreeBSD ? ng_vlan.c переписал. Куски по arp проколу тоже мои, искать мелкими частями с 2011 года. amdtemp допинать лень, так и висит в фабрикаторе. Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю. Share this post Link to post Share on other sites
vlad11 Posted June 1, 2018 · Report post 1 час назад, Ivan_83 сказал: ng_vlan.c переписал. Куски по arp проколу тоже мои, искать мелкими частями с 2011 года. Ок. По поводу PR187835 к вам? 1 час назад, Ivan_83 сказал: Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю. Интересна лицензия. GPLv3 ? :) Share this post Link to post Share on other sites
ingvarrwvw Posted June 1, 2018 · Report post Всем спасибо большое за внимание к теме. В ближайшее время смогу вытащить один проц и потестить на 11.1 под нагрузкой. Параметры и результаты выложу по итогу. Плюс заказано несколько платформ для тестирования с разными процессорами. Share this post Link to post Share on other sites
hsvt Posted June 1, 2018 · Report post В 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 ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать. Share this post Link to post Share on other sites
vlad11 Posted June 1, 2018 · Report post 9 часов назад, hsvt сказал: В чём разница base srv work ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать. Не делайте так, как он в /etc/src.conf. Для этого есть свой конфиг ядра, если чем-то не устраивает GENERIC. Share this post Link to post Share on other sites
paradox_ Posted June 1, 2018 · Report post 15 часов назад, vlad11 сказал: По поводу PR187835 к вам? если не тюнить sysctl вывод в бинарке начинается раньше ? или все так же с того же номера влан ? если раньше - то банально не хватает памяти, тюнить еще sysctl Share this post Link to post Share on other sites
Ivan_83 Posted June 2, 2018 · Report post 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 и ещё кучи ненужного после пересборки системы :))) Заодно и пачка ненужных дров уйдёт и ядро полегчает :) Конфиги ядра я тоже подумываю сюда приложить, а то пока валяются в исходниках. Share this post Link to post Share on other sites
ingvarrwvw Posted June 8, 2018 · Report post Вытащили один проц. На 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 - по умолчанию оставил. Share this post Link to post Share on other sites
ingvarrwvw Posted June 8, 2018 · Report post 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 Share this post Link to post Share on other sites