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

FreeBSD 9 проблемы с netgraph nat Рандомно перестает ходить трафик через netgraph ноды

Есть вот такая вот машинка с фряхой

#uname

9.1-STABLE FreeBSD 9.1-STABLE #0: Fri Jan 18 16:20:47 YEKT 2013

 

Куча памяти

#top -S

last pid: 45076;  load averages:  1.54,  1.46,  1.29                                      up 0+21:13:28  19:23:46
84 processes:  2 running, 81 sleeping, 1 waiting
CPU:  3.1% user,  0.0% nice, 32.1% system,  5.3% interrupt, 59.5% idle
Mem: 390M Active, 1441M Inact, 785M Wired, 799M Buf, 5008M Free
Swap: 8192M Total, 8192M Free

 PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root          4 155 ki31     0K    64K RUN     3  71.4H 254.83% idle
  13 root          4 -16    -     0K    64K sleep   0 101:52 103.03% ng_queue
   0 root         14 -92    0     0K   224K -       2 229:44 16.55% kernel
  12 root         17 -84    -     0K   272K WAIT    0 213:32 15.67% intr
40228 root          1  22    0 51060K 25084K select  0  20:27  1.66% snmpd
15052 root          1  52    0   104M 22204K select  2   4:36  0.98% mpd5
  19 root          1  16    -     0K    16K syncer  1   0:48  0.20% syncer

 

Задачи: ng_nat, mpd5/pppoe

Трафик 300 мбит в пике, 40 kpps

Сессий pppoe 300-350 в пике.

 

ng_nat сделан так:

/usr/sbin/ngctl -f- <<-EOF                                                                            
           mkpeer ipfw: nat %s out                                                                               
           name ipfw:%s %s                                                                                       
           connect ipfw: %s: %s in                                                                               
           msg %s: setaliasaddr 1.1.%s

Всего таких нод ната 20 штук

Клиентов попадающих под нат около 150, остальные с белыми ипами.

 

Периодично, трафик через нат перестает ходить. Помогает или пересоздание ng_nat нод, или серия(!) ребутов.

 

В это время vmstat -z | grep -i netgraph

ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP
NetGraph items:          72,  10266,       1,     376,39178965,   0,   0
NetGraph data items:     72,  10266,       9,   10257,2327948820,2131611,4033

показывает кучу FAIL, и их значение растет.

 

параметры в /boot/loader.conf увеличены

net.graph.maxdata=10240                                                                                           
net.graph.maxalloc=10240

Увеличивали постепенно - складывается впечатление что сколько не поставь, сжирает так же.

 

Проблема началась недавно, проявляется рандомно но часто, и вроде бы не связана ни с числом сессий ни с трафиком.

Никаких работ и перемен на сервере не было, до этого работал месяцами. Разве что немного вырос трафик и число сессий в пике.

Было трафика 270, стало 300, было сессий 300 стало 350.

 

Никаких закономерностей обнаружить не могу.

Пожалуйста, помогите как диагностировать и как побороть эту проблему.

Share this post


Link to post
Share on other sites

Оно опять появилось.

Ребутнулся с 65536 значениями.

После старта, через несколько минут зависло, так что по питанию ребут.

На мониторе - no buffer space available.

Share this post


Link to post
Share on other sites

Опять странность с этой же машиной.

Выдернули usb клавиатуру - упала сетевая карта. ifconfig up/down вылечил.

 

Логи:

May 27 14:53:36 rubin kernel: ugen1.3: <vendor 0x099a> at usbus1 (disconnected)                                   
May 27 14:53:36 rubin kernel: ukbd1: at uhub3, port 2, addr 3 (disconnected)                                      
May 27 14:53:36 rubin kernel: uhid0: at uhub3, port 2, addr 3 (disconnected)                                      
May 27 14:53:45 rubin zebra[29538]: if_ioctl(SIOCGIFFLAGS) failed: Device not configured                          
May 27 14:54:16 rubin last message repeated 5 times                                                               
May 27 14:55:28 rubin last message repeated 25 times                                                              
May 27 14:55:30 rubin bgpd[29543]: stream_read_try: read failed on fd 12: Operation timed out                     
May 27 14:55:30 rubin bgpd[29543]: 3.4.2.6 [Error] bgp_read_packet error: Operation timed out    

 

Как это связано?

И еще момент, до этой встряски vmstat -z | grep -i netgraph

NetGraph data items:     72,  65540,       2,   19718,14399996784,   0,   0
NetGraph items:          72,  65540,       4,     402,519940398,   0,   0

 

После нее

NetGraph items:          72,  65540,       4,     402,521020093,   0,   0
NetGraph data items:     72,  65540,      16,   48356,14609646579,   0,   0

 

Откуда ж. Почему USED NetGraph data items удвоилось?

 

И блин, куда уже мигрировать/обновляться.

Edited by apm

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.