Jump to content
Калькуляторы

Тюнинг сетевой Intel 82599EB 10G на FreeBSD 9.3

Всем привет! Ребят помогите решить проблему увеличение пинга и падения скорости у абонентов. В инете куча инфы, но не могу систематизировать и подобрать для своей конфигурации:

 

Система: FreeBSD 9.3-RELEASE-p20
Сетевая карта: 2-х портовая 82599EB 10-Gigabit SFI/SFP+
Процессор: Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
ОЗУ: Всего 32Gb, использовано 4Gb.
ПО: dummynet нет, PF NAT, фаервол IPFW, абоненты подключаются по PPPoE mpd5
Трафика 1,5G, надо прожевать 5G

 

Подскажите какие мне параметры loader.conf и sysctl установить чтобы более-менее заработало. Спасибо. 
Про обновить систему знаю, это будет позже, есть нюансы в подготовке, сейчас главное чтобы работало. 

Share this post


Link to post
Share on other sites

1. Вы сидите на очень древней ОС. 9 была актуальна 10 лет назад

2. Надо понять, а какая нагрузка сейчас. vmstat -i, vmstat -s хоты бы вывод

3. Такой трафик ваши процессор и карта должны есть на завтрак без нужды каких-то ковыряний. Скорее, эти ковыряния были сделаны по мануалам 10-летней давности, от них и проблемы. Выложите, что сейчас в sysctl.conf и loader.conf

Share this post


Link to post
Share on other sites

Не спорю, готовимся обновится но есть нюансы с сетевой инфракструктурой. 

 

$ vmstat -i
interrupt                          total       rate
irq1: atkbd0                          18          0
irq20: ehci1                      157764          2
irq21: ehci0                       94710          1
cpu0:timer                      70492377       1117
irq274: ciss0                     116180          1
irq275: ix0:que 0              295666673       4687
irq276: ix0:que 1              180242852       2857
irq277: ix0:que 2              175591722       2784
irq278: ix0:que 3              175189421       2777
irq279: ix0:que 4              176534141       2799
irq280: ix0:que 5              170624791       2705
irq281: ix0:que 6              174998688       2774
irq282: ix0:que 7              173487851       2750
irq283: ix0:link                      10          0
irq284: ix1:que 0              349903662       5547
irq285: ix1:que 1              248295010       3936
irq286: ix1:que 2              249385356       3954
irq287: ix1:que 3              241537219       3829
irq288: ix1:que 4              256050523       4059
irq289: ix1:que 5              249567367       3957
irq290: ix1:que 6              250770039       3976
irq291: ix1:que 7              251223797       3983
irq292: ix1:link                      10          0
cpu14:timer                      7722295        122
cpu8:timer                       2722222         43
cpu17:timer                      7435385        117
cpu5:timer                      46199162        732
cpu16:timer                      7448187        118
cpu4:timer                      46063140        730
cpu19:timer                      7403627        117
cpu1:timer                      46223095        732
cpu11:timer                      7712094        122
cpu3:timer                      46197136        732
cpu15:timer                      7506871        119
cpu12:timer                      7669605        121
cpu2:timer                      45953506        728
cpu18:timer                      7417658        117
cpu13:timer                      7619743        120
cpu6:timer                      46082493        730
cpu10:timer                      7848101        124
cpu7:timer                      45808696        726
cpu9:timer                       2722975         43
Total                         4093686172      64908


 

vmstat -s
2069284061 cpu context switches
3626848245 device interrupts
 65982691 software interrupts
 28048034 traps
4039617000 system calls
       21 kernel threads created
    81578  fork() calls
    24892 vfork() calls
        0 rfork() calls
        0 swap pager pageins
        0 swap pager pages paged in
        0 swap pager pageouts
        0 swap pager pages paged out
     1004 vnode pager pageins
     6977 vnode pager pages paged in
        0 vnode pager pageouts
        0 vnode pager pages paged out
        0 page daemon wakeups
        0 pages examined by the page daemon
       15 pages reactivated
  2922432 copy-on-write faults
     2516 copy-on-write optimized faults
  7334613 zero fill pages zeroed
        0 zero fill pages prezeroed
       20 intransit blocking page faults
 19026265 total VM faults taken
        0 pages affected by kernel thread creation
 45349631 pages affected by  fork()
 12736875 pages affected by vfork()
        0 pages affected by rfork()
       57 pages cached
 54241407 pages freed
        0 pages freed by daemon
  6186539 pages freed by exiting processes
    19275 pages active
   910102 pages inactive
        0 pages in VM cache
   604499 pages wired down
  6585928 pages free
     4096 bytes per page
 10102337 total name lookups
          cache hits (89% pos + 10% neg) system 0% per-directory
          deletions 0%, falsehits 0%, toolong 0%
cat /etc/sysctl.conf

vfs.read_max=32
net.inet.ip.forwarding=1                
net.inet.ip.fastforwarding=1            
net.inet.ip.dummynet.io_fast=1          
net.inet.ip.dummynet.hash_size=65535    
net.inet.ip.dummynet.pipe_slot_limit=2048 
net.inet.ip.fw.one_pass=1               
net.inet.tcp.blackhole=2                
net.inet.udp.blackhole=1                
net.inet.icmp.drop_redirect=1           
net.inet.icmp.log_redirect=0            
net.inet.icmp.maskrepl=0                
net.inet.icmp.icmplim=100
net.inet.icmp.bmcastecho=0              
net.inet.ip.redirect=0                  
net.inet.ip.sourceroute=0               
net.inet.ip.accept_sourceroute=0        
net.inet.ip.ttl=226                     
net.inet.tcp.drop_synfin=1              
net.inet.tcp.syncookies=1               
kern.ipc.somaxconn=32768                
kern.maxfiles=204800                    
kern.maxfilesperproc=200000             
kern.ipc.nmbclusters=524288             
kern.ipc.maxsockbuf=83886080            
kern.random.sys.harvest.ethernet=0      
kern.random.sys.harvest.interrupt=0     
kern.ipc.shmmax=67108864                
net.inet.ip.intr_queue_maxlen=10240     

#MPD
net.graph.maxdgram=128000
net.graph.recvspace=128000

net.inet6.ip6.auto_linklocal=0

# for rtsock
net.route.netisr_maxqlen=4096
# for other protocols (IP & PPPoE?)
net.isr.defaultqlimit=4096

# default outgoing interface queue length
# used by lagg etc.
net.link.ifqmaxlen=10240

 

loader.conf пустой

Share this post


Link to post
Share on other sites

1. не тратте время и обновляйтесь.

2. проц не того класса: много ядер-мало частоты, лучше было бы наоборот. 4-8 ядер современного проца должно хватить.

3. лучше смотреть старые темы, я уже не помню крутилок.

 

Скорее всего оно упирается в 1-2 ядра из за особенностей PPPoE.

top -aSHIP должен это примерно и показать.

 

Share this post


Link to post
Share on other sites

Так и есть, первое ядро уже почти на максимуме 

image.thumb.png.447c9053ac19c6d36dcafd1d468c8679.png

 

Т.е. может помочь установить количество прерываний и раскидать их по ядрам? 

hw.ix.num_queues=20

Share this post


Link to post
Share on other sites

Ну в 12 ветке FreeBSD там же iflib уже используется, а по сессиям то у меня уже сейчас:

 

netstat -rn | grep -v grep | grep -c ng
870


 

Share this post


Link to post
Share on other sites

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

Так и есть, первое ядро уже почти на максимуме 

image.thumb.png.447c9053ac19c6d36dcafd1d468c8679.png

 

Т.е. может помочь установить количество прерываний и раскидать их по ядрам? 

hw.ix.num_queues=20

у Вас там pppoe и pf (на вашей версии фри) не умеют в многопроцессорность. и именно тут оно и воткнёт (и это и видно что одно ядро 85%, остальные курят). надо мало ядер, но большой частоты камень. И если с pf вроде как в свежих верисях поборолись то с пппое всё хуже в этом плане.

Share this post


Link to post
Share on other sites

10 hours ago, Tooreagen said:

Т.е. может помочь установить количество прерываний и раскидать их по ядрам? 

Установить - поможет мало, PPPoE не размазывается по прерываниям, особенности реализации хэш функции в железе.

Share this post


Link to post
Share on other sites

Читайте, на форуме всё было.

Если нет возможности раскидать по прерываниям сетевухой значит нужно раскидывать позже, это isr, в старой фре ещё нетграфом можно было, потом из нетграфа это выкинули и втащили туда тот же isr.

Патч для ng_pppoe (вроде него) я тут выкладывал, вроде его даже кто то тестил.

https://forum.nag.ru/index.php?/topic/159591-problema-na-freebsd-111-i-mpd58/&do=findComment&comment=1657001

 

И в целом тут никто не будет искать для вас ответы и вспоминать как оно было 10 лет назад, читайте форум, тут всё уже было.

 

Share this post


Link to post
Share on other sites

15 hours ago, Sacrament said:

Переходите на Линукс, там с этим куда лучше.

Готовы отвечать на вопросы по 2.6 ядру?)

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.