Перейти к содержимому
Калькуляторы

Всем доброго дня.

 

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 ?

 

Уповаю на помощь корифеев тазиководства )

 

Всем спасибо заранее!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

БИОСы и фирмваре на сервере самые последние?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, vlad11 сказал:

БИОСы и фирмваре на сервере самые последние?

Не поможет.

Скорее внять один проц даст больше эффекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

12 часов назад, ingvarrwvw сказал:

Проц E5450  @ 3.00GHz, два штуки

+1 к выниманию проца

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 hours ago, vlad11 said:

БИОСы и фирмваре на сервере самые последние?

Да, это все последнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 hours ago, Ivan_83 said:

Не поможет.

Скорее внять один проц даст больше эффекта.

Физическое вынимание проца и иcскуственное ограничение в виде:

 

net.isr.maxthreads=8 ---> 4
net.isr.numthreads=8 ---> 4

 

даст одинаковый эффект? Плюс по ядрам прерывания разнести ровно.

 

Впрочем, буду пробовать. Спасибо за советы!

 

Еще ,по вашему мнению, какой процессор наиболее подходящий для рутинга? Что нибудь такое:

Intel Xeon E5-2683 V4 2.1G 16C ?

На AMD стоит смотреть под такие задачи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

net.inet.ip.redirect=0 еще можно

но странно что нагрузка по iq возрастает на новой бсд

можете временно тыкнуть hw.ix.num_queues=8 или 16 для посмотреть будут ли изменения в iq

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, ingvarrwvw сказал:

Еще ,по вашему мнению, какой процессор наиболее подходящий для рутинга? Что нибудь такое:

Intel Xeon E5-2683 V4 2.1G 16C ?

На AMD стоит смотреть под такие задачи?

E3-1220 хватит на ваши нужды с запасом, сервер в сборе будет стоить в 5 раза дешевле чем ненужный проц 'E5-2683'.

АМД не нужно смотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если есть время и желание поразбираться что грузит так цпу на новой фре

вот ссылка в конце статьи

https://bsdrp.net/documentation/technical_docs/performance

и да HT лучше с биоса или с настроек бсд выключить, уменьшением очереди не факт что где то останется какое то узкое место которое будет мешать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 отключен в биосе. Разбираться буду,да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 минут назад, ingvarrwvw сказал:

Нужды до 10gbit под те же задачи. Е3-1220 хватит под такую задачу?

1220v1 с трудом. Какой-нить 1270v5 или 1680v3/v4 будут в самый раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 часов назад, ingvarrwvw сказал:

даст одинаковый эффект? Плюс по ядрам прерывания разнести ровно.

Нет.

У тебя есть общие данные которые шарятся между процами, для сихронизации доступа процы будут долго общаться между собой.

 

8 часов назад, ingvarrwvw сказал:

На AMD стоит смотреть под такие задачи?

Если только на ядрах райзена.

 

8 часов назад, paradox_ сказал:

net.inet.ip.redirect=0 еще можно

Немного не в тему.

net.inet.ip.redirect: Enable sending IP redirects

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 минут назад, Ivan_83 сказал:

Немного не в тему.

net.inet.ip.redirect: Enable sending IP redirects

это в тему про тюнинг,  а не про странную загрузку на 11

мелких админов /24 сразу можно отличить по не знаю этой опции))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, paradox_ сказал:

это в тему про тюнинг,  а не про странную загрузку на 11

Для общего тюнинга это сильно мало.

У меня по ссылке выше сильно больше всего накручено да ещё и подписано что это такое.

 

Я уже и не админ, у меня несколько /32 )

Но в ядре я колупаюсь и патчю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, vlad11 сказал:

Можете показать коммиты в общем дереве FreeBSD ?

ng_vlan.c переписал.

Куски по arp проколу тоже мои, искать мелкими частями с 2011 года.

amdtemp допинать лень, так и висит в фабрикаторе.

Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Ivan_83 сказал:

ng_vlan.c переписал.

Куски по arp проколу тоже мои, искать мелкими частями с 2011 года.

Ок.
По поводу PR187835  к вам?

 

1 час назад, Ivan_83 сказал:

Остального в дереве нет и не будет ибо или дереву не надо или это фича на которой зарабатывает контора в которой я пилю.

Интересна лицензия. GPLv3 ? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем спасибо большое за внимание к теме.

 

В ближайшее время смогу вытащить один проц и потестить на 11.1 под нагрузкой. Параметры и результаты выложу по итогу.

Плюс заказано несколько платформ для тестирования с разными процессорами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 часов назад, hsvt сказал:

В чём разница base srv work ? Какие можно взять за основу ?) У меня конфиги просто в менее красивом и удобном виде, думал переписать.

Не делайте так, как он в /etc/src.conf.

Для этого есть свой конфиг ядра, если чем-то не устраивает GENERIC.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

15 часов назад, vlad11 сказал:

По поводу PR187835  к вам?

если не тюнить sysctl  вывод в бинарке начинается раньше ? или все так же с того же номера влан ?

если раньше - то банально не хватает памяти, тюнить еще sysctl

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 и ещё кучи ненужного после пересборки системы :)))

Заодно и пачка ненужных дров уйдёт и ядро полегчает :)

Конфиги ядра я тоже подумываю сюда приложить, а то пока валяются в исходниках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вытащили один проц. На 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 - по умолчанию оставил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.