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

ng_queue 100% ipfw и многоядерность

Добрый день

FreeBSD 9.3-STABLE #0 r282089M: Tue Apr 28 00:29:17 FET 2015

I350 Gigabit Fiber Network Connection двухголовая

mpd 5.7 pptp с нетфловом из мпд, шейпером из мпд, фаерволом ipfw. ната нет.

hw.machine: amd64

hw.model: Intel® Xeon® CPU L5430 @ 2.66GHz

hw.ncpu: 8

hw.machine_arch: amd64

 

loader

net.graph.maxdata=65536
net.graph.maxalloc=65536
#network cards.
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000
######
hw.igb.rx_process_limit="-1"
hw.igb.num_queues=4
#####
net.link.ifqmaxlen=10240
net.isr.defaultqlimit=4096
#
kern.maxfiles = "25000"

sysctl

dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096
dev.igb.0.fc=0
dev.igb.1.fc=0
#netgraph
net.graph.maxdgram=4194304
net.graph.recvspace=4194304
#
net.route.netisr_maxqlen=4096
net.inet.ip.redirect=0
#
#kernel memory to networks buff
#kern.ipc.nmbclusters=400000
kern.ipc.maxsockbuf=83886080
#
net.inet.ip.fastforwarding=1
#
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim_output=0
net.inet.icmp.icmplim=100
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.tcp.drop_synfin=1
#
net.inet.ip.intr_queue_maxlen=10240
#
net.graph.pptpgre.reorder_max=16
net.graph.pptpgre.reorder_timeout=2
#fix broken tunnel (ng_mppc_decompress: too many (4094) packets dropped, disabling node 0xc7020900!)
net.graph.mppe.max_rekey=-1000
#message to log
net.graph.mppe.log_max_rekey=1
#not block broken node
net.graph.mppe.block_on_max_rekey=0
#
kern.random.sys.harvest.ethernet=0
kern.random.sys.harvest.point_to_point=0
kern.random.sys.harvest.interrupt=0
#
#Sendmsg() cat't send messages more than maxdgram length. Default value causes routing software to fail with OSPF if jumbo frames is turned on.
net.inet.raw.maxdgram=16384
net.inet.raw.recvspace=16384

ipfw

ipfw show
00100        515972         95110370 allow ip from any to any via lo0
00200             0                0 deny ip from any to 127.0.0.0/8
00300             0                0 deny ip from 127.0.0.0/8 to any
02001           294            15049 deny ip from table(11) to any dst-port 25
02002             0                0 deny ip from table(6) to table(6) via ng*
02006        426968         32254185 fwd 10.10.1.2 ip from table(6) to not table(10) via ng*
02020          9331           681971 fwd 10.10.1.2 ip from not table(4) to table(5) dst-port 1-65535 via ng*
65000 2118470447957 1553120778722064 allow ip from any to any
65100             0                0 check-state
65535            11             1578 deny ip from any to any

ipfw table 5 list| wc -l

340

ipfw table 6 list| wc -l

1

ipfw table 10 list | wc -l

1

ipfw table 4 list | wc -l

0

ipfw table 11 list | wc -l

6

 

В чнн начали рости пинги и судя по графику, вход уперся в 400мбит.

 

top -SHPI

last pid: 70884;  load averages:  3.39,  3.45,  3.35                                                             up 177+14:42:46 22:22:30
195 processes: 11 running, 154 sleeping, 30 waiting
CPU 0:  0.0% user,  0.0% nice, 26.3% system,  8.9% interrupt, 64.7% idle
CPU 1:  0.0% user,  0.0% nice, 16.5% system, 16.1% interrupt, 67.4% idle
CPU 2:  0.0% user,  0.0% nice, 21.0% system, 10.3% interrupt, 68.8% idle
CPU 3:  0.0% user,  0.0% nice, 22.3% system,  8.0% interrupt, 69.6% idle
CPU 4:  0.4% user,  0.0% nice, 21.9% system, 15.2% interrupt, 62.5% idle
CPU 5:  0.0% user,  0.0% nice, 25.4% system, 13.4% interrupt, 61.2% idle
CPU 6:  0.0% user,  0.0% nice, 22.8% system, 17.9% interrupt, 59.4% idle
CPU 7:  0.0% user,  0.0% nice, 23.7% system, 12.5% interrupt, 63.8% idle
Mem: 36M Active, 432M Inact, 587M Wired, 417M Buf, 2882M Free
Swap: 3052M Total, 3052M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
  13 root       -16    -     0K   128K CPU5    5 426.8H  99.17% ng_queue{ng_queue4}
  11 root       155 ki31     0K   128K RUN     1 3507.9  70.65% idle{idle: cpu1}
  11 root       155 ki31     0K   128K RUN     2 3504.9  69.58% idle{idle: cpu2}
  11 root       155 ki31     0K   128K RUN     3 3513.4  66.55% idle{idle: cpu3}
  11 root       155 ki31     0K   128K RUN     6 3380.5  66.06% idle{idle: cpu6}
  11 root       155 ki31     0K   128K CPU4    4 3376.8  65.58% idle{idle: cpu4}
  11 root       155 ki31     0K   128K RUN     0 3495.5  64.16% idle{idle: cpu0}
  11 root       155 ki31     0K   128K RUN     7 3382.4  63.77% idle{idle: cpu7}
  11 root       155 ki31     0K   128K RUN     5 3376.5  62.50% idle{idle: cpu5}
  12 root       -92    -     0K   480K WAIT    7 466.4H  13.87% intr{irq266: igb1:que}
  12 root       -92    -     0K   480K WAIT    6 464.0H  13.87% intr{irq265: igb1:que}
  12 root       -92    -     0K   480K WAIT    5 469.5H  13.67% intr{irq264: igb1:que}
  12 root       -92    -     0K   480K WAIT    4 463.7H  13.57% intr{irq263: igb1:que}
  13 root       -16    -     0K   128K sleep   2 425.8H  13.38% ng_queue{ng_queue1}
  13 root       -16    -     0K   128K CPU4    4 426.6H  13.18% ng_queue{ng_queue3}
  13 root       -16    -     0K   128K sleep   5 426.7H  12.99% ng_queue{ng_queue6}
  13 root       -16    -     0K   128K sleep   6 424.6H  12.89% ng_queue{ng_queue7}
  13 root       -16    -     0K   128K sleep   2 427.8H  12.79% ng_queue{ng_queue5}
  12 root       -92    -     0K   480K WAIT    1 228.1H  12.60% intr{irq259: igb0:que}
  13 root       -16    -     0K   128K sleep   6 426.6H  12.50% ng_queue{ng_queue2}
  13 root       -16    -     0K   128K sleep   5 427.0H  11.96% ng_queue{ng_queue0}
  12 root       -92    -     0K   480K WAIT    2 207.2H  11.67% intr{irq260: igb0:que}

 

vmstat -z

ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP

UMA Kegs:               208,      0,      95,       7,      95,   0,   0
UMA Zones:             1408,      0,      95,       1,      95,   0,   0
UMA Slabs:              568,      0,   22478,      27,1040764785,   0,   0
UMA RCntSlabs:          568,      0,   36153,       2,   36153,   0,   0
UMA Hash:               256,      0,       2,      13,       6,   0,   0
16 Bucket:              152,      0,     196,       4,     196,   0,   0
32 Bucket:              280,      0,     308,       0,     308,   0,   0
64 Bucket:              536,      0,     401,       5,     401,  61,   0
128 Bucket:            1048,      0,    2900,       1,    2900,3286,   0
VM OBJECT:              232,      0,   57214,     962,131624668,   0,   0
MAP:                    240,      0,       8,      24,       8,   0,   0
KMAP ENTRY:             128, 169969,     292,    3014,3111692590,   0,   0
MAP ENTRY:              128,      0,     840,    1306,268173743,   0,   0
fakepg:                 120,      0,       0,       0,       0,   0,   0
mt_zone:               4112,      0,     328,      15,     328,   0,   0
16:                      16,      0,    3609,    1599,1852798434,   0,   0
32:                      32,      0,   12639,   30286,380185494494,   0,   0
64:                      64,      0,    7068,    1388,799512768,   0,   0
128:                    128,      0,   59014,    4090,325933228,   0,   0
256:                    256,      0,   12240,    1320,132232040,   0,   0
512:                    512,      0,    4551,    1098,24984662,   0,   0
1024:                  1024,      0,     868,     468, 8840433,   0,   0
2048:                  2048,      0,     847,     595,  674079,   0,   0
4096:                  4096,      0,    4853,    1230,19133578,   0,   0
Files:                   80,      0,     882,    1098,148575257,   0,   0
TURNSTILE:              136,      0,     967,     153,     967,   0,   0
rl_entry:                40,      0,     287,     469,     287,   0,   0
umtx pi:                 96,      0,       0,       0,       0,   0,   0
MAC labels:              40,      0,       0,       0,       0,   0,   0
PROC:                  1192,      0,      38,     268, 1968667,   0,   0
THREAD:                1160,      0,     463,     503,84636282,   0,   0
SLEEPQUEUE:              80,      0,     967,     193,     967,   0,   0
VMSPACE:                400,      0,      22,     302, 1968643,   0,   0
cpuset:                  72,      0,     173,      77,     181,   0,   0
audit_record:           960,      0,       0,       0,       0,   0,   0
mbuf_packet:            256, 1613145,   41925,   30009,717798296387,   0,   0
mbuf:                   256, 1613145,     205,    6716,1029164853097,   0,   0
mbuf_cluster:          2048, 252054,   71934,       6,   71936,   0,   0
mbuf_jumbo_page:       4096, 126026,       0,     183,  800079,   0,   0
mbuf_jumbo_9k:         9216,  37341,       0,       0,       0,   0,   0
mbuf_jumbo_16k:       16384,  21004,       0,       0,       0,   0,   0
mbuf_ext_refcnt:          4,      0,       0,       0,       0,   0,   0
NetGraph items:          72,  65540,     125,     890,405857606397,   0,   0
NetGraph data items:     72,  65540,    9300,   29038,716211803742,   0,   0
g_bio:                  248,      0,       0,    3285, 8910391,   0,   0
ttyinq:                 160,      0,     240,     528,    3465,   0,   0
ttyoutq:                256,      0,     126,     309,    1816,   0,   0
ata_request:            328,      0,       0,     240, 2970081,   0,   0
ata_composite:          336,      0,       0,       0,       0,   0,   0
vtnet_tx_hdr:            24,      0,       0,       0,       0,   0,   0
FPU_save_area:          576,      0,       0,       0,       0,   0,   0
VNODE:                  504,      0,   92673,     967,164715320,   0,   0
VNODEPOLL:              112,      0,       0,       0,       0,   0,   0
S VFS Cache:            108,      0,   97014,    2052,99546802,   0,   0
STS VFS Cache:          148,      0,       0,       0,       0,   0,   0
L VFS Cache:            328,      0,    2450,   36466,65774029,   0,   0
LTS VFS Cache:          368,      0,       0,       0,       0,   0,   0
NAMEI:                 1024,      0,       0,     256,289050805,   0,   0
DIRHASH:               1024,      0,    6312,    1076, 2458311,   0,   0
NCLNODE:                568,      0,       0,       0,       0,   0,   0
pipe:                   728,      0,       5,     215,  216071,   0,   0
Mountpoints:            824,      0,       2,       6,       2,   0,   0
ksiginfo:               112,      0,     298,     923,  533291,   0,   0
itimer:                 344,      0,       1,      21,       1,   0,   0
KNOTE:                  128,      0,       0,     551,  384028,   0,   0
socket:                 680,  25002,    1632,    1260,97617617,   0,   0
sdp_sock:               816,  25000,       0,       0,       0,   0,   0
ipq:                     56,   7938,       0,    1764,517272875,   0,   0
udp_inpcb:              392,  25000,      13,     347,88432950,   0,   0
udpcb:                   16,  25032,      13,    1499,88432950,   0,   0
tcp_inpcb:              392,  25000,     802,    1188, 2127975,   0,   0
tcpcb:                  976,  25000,     802,    1022, 2127975,   0,   0
tcptw:                   72,   5000,       0,     750,   65529,   0,   0
syncache:               152,  15375,       0,    4325, 2863001,   0,   0
hostcache:              136,  15372,      89,    1395,  185662,   0,   0
tcpreass:                40,  15792,       0,    1008,   12885,   0,   0
sackhole:                32,      0,       0,    1010,   26162,   0,   0
sctp_ep:               1376,  25000,       0,       0,       0,   0,   0
sctp_asoc:             2288,  40000,       0,       0,       0,   0,   0
sctp_laddr:              48,  80064,       0,    1296,   30570,   0,   0
sctp_raddr:             696,  80000,       0,       0,       0,   0,   0
sctp_chunk:             136, 400008,       0,       0,       0,   0,   0
sctp_readq:             104, 400032,       0,       0,       0,   0,   0
sctp_stream_msg_out:    104, 400032,       0,       0,       0,   0,   0
sctp_asconf:             40, 400008,       0,       0,       0,   0,   0
sctp_asconf_ack:         48, 400032,       0,       0,       0,   0,   0
ripcb:                  392,  25000,     795,     775, 2115761,   0,   0
unpcb:                  240,  25008,       8,     328,   86286,   0,   0
rtentry:                200,      0,    1625,     617,  837886,   0,   0
ib_mad:                 448,      0,       0,       0,       0,   0,   0
selfd:                   56,      0,     907,    2621,701563335669,   0,   0
SWAPMETA:               288, 504114,       0,       0,       0,   0,   0
FFS inode:              168,      0,   92648,     742,164713204,   0,   0
FFS1 dinode:            128,      0,       0,       0,       0,   0,   0
FFS2 dinode:            256,      0,   92648,     847,164713204,   0,   0
IPFW dynamic rule:      120,   4123,       0,       0,       0,   0,   0
NetFlow IPv4 cache:      88, 262160,   10768,   23249,40401085410,   0,   0

 

netstat -Q

Configuration:
Setting                        Current        Limit
Thread count                         1            1
Default queue limit               4096        10240
Dispatch policy                 direct          n/a
Threads bound to CPUs         disabled          n/a

Protocols:
Name   Proto QLimit Policy Dispatch Flags
ip         1  10240   flow  default   ---
igmp       2   4096 source  default   ---
rtsock     3   4096 source  default   ---
arp        7   4096 source  default   ---
ether      9   4096 source   direct   ---

Workstreams:
WSID CPU   Name     Len WMark   Disp'd  HDisp'd   QDrops   Queued  Handled
  0   0   ip         0     3 108597909844        0        0    10589 108597895434
  0   0   igmp       0     0        0        0        0        0        0
  0   0   rtsock     0     7        0        0        0  6530264  6530264
  0   0   arp        0     0  5345502        0        0        0  5345502
  0   0   ether      0     0 65847891927        0        0        0 65847891927

 

vmstat -i

interrupt                          total       rate
irq19: uhci1+                    2970098          0
cpu0:timer                   17126755805       1116
irq258: igb0:que 0          101182756739       6593
irq259: igb0:que 1          106276377553       6925
irq260: igb0:que 2          105192519282       6854
irq261: igb0:que 3          107535740266       7007
irq262: igb0:link                      2          0
irq263: igb1:que 0           94211209550       6139
irq264: igb1:que 1           98744481988       6434
irq265: igb1:que 2           96051745377       6259
irq266: igb1:que 3           99641453694       6492
irq267: igb1:link                     54          0
cpu3:timer                   17054357533       1111
cpu1:timer                   17065458436       1112
cpu5:timer                   16993720884       1107
cpu2:timer                   17048594636       1110
cpu4:timer                   16841894701       1097
cpu7:timer                   16958819134       1105
cpu6:timer                   16854170474       1098
Total                       944783026206      61564

 

netstat -m

43344/35511/78855 mbufs in use (current/cache/total)
43065/28875/71940/252054 mbuf clusters in use (current/cache/total/max)
43065/28869 mbuf+clusters out of packet secondary zone in use (current/cache)
0/183/183/126026 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/37341 9k jumbo clusters in use (current/cache/total/max)
0/0/0/21004 16k jumbo clusters in use (current/cache/total/max)
97149K/67359K/164509K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters delayed (4k/9k/16k)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

 

sysctl -a | grep dev.igb

dev.igb.0.%desc: Intel(R) PRO/1000 Network Connection version - 2.4.0
dev.igb.0.%driver: igb
dev.igb.0.%location: slot=0 function=0
dev.igb.0.%pnpinfo: vendor=0x8086 device=0x1522 subvendor=0x1d1a subdevice=0x0000 class=0x020000
dev.igb.0.%parent: pci9
dev.igb.0.nvm: -1
dev.igb.0.enable_aim: 1
dev.igb.0.fc: 0
dev.igb.0.down_disables_link: 0
dev.igb.0.max_interrupt_rate: 32000
dev.igb.0.rx_processing_limit: 4096
dev.igb.0.dmac: 0
dev.igb.0.eee_disabled: 0
dev.igb.0.link_irq: 2
dev.igb.0.dropped: 0
dev.igb.0.tx_dma_fail: 0
dev.igb.0.rx_overruns: 0
dev.igb.0.watchdog_timeouts: 0
dev.igb.0.device_control: 1490033345
dev.igb.0.rx_control: 67141634
dev.igb.0.interrupt_mask: 4
dev.igb.0.extended_int_mask: 2147483678
dev.igb.0.tx_buf_alloc: 0
dev.igb.0.rx_buf_alloc: 0
dev.igb.0.fc_high_water: 33168
dev.igb.0.fc_low_water: 33152
dev.igb.0.queue0.interrupt_rate: 5347
dev.igb.0.queue0.txd_head: 590
dev.igb.0.queue0.txd_tail: 592
dev.igb.0.queue0.no_desc_avail: 0
dev.igb.0.queue0.tx_packets: 93217000210
dev.igb.0.queue0.rxd_head: 1172
dev.igb.0.queue0.rxd_tail: 1171
dev.igb.0.queue0.rx_packets: 65785267348
dev.igb.0.queue0.rx_bytes: 30321325479722
dev.igb.0.queue0.lro_queued: 0
dev.igb.0.queue0.lro_flushed: 0
[b]dev.igb.0.queue1.interrupt_rate: 11764[/b]
dev.igb.0.queue1.txd_head: 3943
dev.igb.0.queue1.txd_tail: 3943
dev.igb.0.queue1.no_desc_avail: 0
dev.igb.0.queue1.tx_packets: 98422514237
dev.igb.0.queue1.rxd_head: 1061
dev.igb.0.queue1.rxd_tail: 1060
dev.igb.0.queue1.rx_packets: 83689862182
dev.igb.0.queue1.rx_bytes: 45669295252359
dev.igb.0.queue1.lro_queued: 0
dev.igb.0.queue1.lro_flushed: 0
[b]dev.igb.0.queue2.interrupt_rate: 100000[/b]
dev.igb.0.queue2.txd_head: 3584
dev.igb.0.queue2.txd_tail: 3585
dev.igb.0.queue2.no_desc_avail: 0
dev.igb.0.queue2.tx_packets: 100152910222
dev.igb.0.queue2.rxd_head: 2488
dev.igb.0.queue2.rxd_tail: 2487
dev.igb.0.queue2.rx_packets: 72161479096
dev.igb.0.queue2.rx_bytes: 33873666314852
dev.igb.0.queue2.lro_queued: 0
dev.igb.0.queue2.lro_flushed: 0
[b]dev.igb.0.queue3.interrupt_rate: 62500[/b]
dev.igb.0.queue3.txd_head: 1470
dev.igb.0.queue3.txd_tail: 1470
dev.igb.0.queue3.no_desc_avail: 0
dev.igb.0.queue3.tx_packets: 96989665416
dev.igb.0.queue3.rxd_head: 1870
dev.igb.0.queue3.rxd_tail: 1868
dev.igb.0.queue3.rx_packets: 85008901966
dev.igb.0.queue3.rx_bytes: 42806464091508
dev.igb.0.queue3.lro_queued: 0
dev.igb.0.queue3.lro_flushed: 0
dev.igb.0.mac_stats.excess_coll: 0
dev.igb.0.mac_stats.single_coll: 0
dev.igb.0.mac_stats.multiple_coll: 0
dev.igb.0.mac_stats.late_coll: 0
dev.igb.0.mac_stats.collision_count: 0
dev.igb.0.mac_stats.symbol_errors: 0
dev.igb.0.mac_stats.sequence_errors: 0
dev.igb.0.mac_stats.defer_count: 0
dev.igb.0.mac_stats.missed_packets: 0
dev.igb.0.mac_stats.recv_length_errors: 54
dev.igb.0.mac_stats.recv_no_buff: 0
dev.igb.0.mac_stats.recv_undersize: 0
dev.igb.0.mac_stats.recv_fragmented: 0
dev.igb.0.mac_stats.recv_oversize: 54
dev.igb.0.mac_stats.recv_jabber: 0
dev.igb.0.mac_stats.recv_errs: 0
dev.igb.0.mac_stats.crc_errs: 0
dev.igb.0.mac_stats.alignment_errs: 0
dev.igb.0.mac_stats.tx_no_crs: 0
dev.igb.0.mac_stats.coll_ext_errs: 0
dev.igb.0.mac_stats.xon_recvd: 0
dev.igb.0.mac_stats.xon_txd: 0
dev.igb.0.mac_stats.xoff_recvd: 0
dev.igb.0.mac_stats.xoff_txd: 0
dev.igb.0.mac_stats.unsupported_fc_recvd: 0
dev.igb.0.mac_stats.mgmt_pkts_recvd: 0
dev.igb.0.mac_stats.mgmt_pkts_drop: 0
dev.igb.0.mac_stats.mgmt_pkts_txd: 0
dev.igb.0.mac_stats.total_pkts_recvd: 306648735529
dev.igb.0.mac_stats.good_pkts_recvd: 306645496589
dev.igb.0.mac_stats.bcast_pkts_recvd: 5103350
dev.igb.0.mac_stats.mcast_pkts_recvd: 742
dev.igb.0.mac_stats.rx_frames_64: 3689937458
dev.igb.0.mac_stats.rx_frames_65_127: 174712807478
dev.igb.0.mac_stats.rx_frames_128_255: 29660269260
dev.igb.0.mac_stats.rx_frames_256_511: 6327942574
dev.igb.0.mac_stats.rx_frames_512_1023: 7146117612
dev.igb.0.mac_stats.rx_frames_1024_1522: 85108422207
dev.igb.0.mac_stats.good_octets_recvd: 153897327984322
dev.igb.0.mac_stats.total_octets_recvd: 153897818532130
dev.igb.0.mac_stats.good_octets_txd: 386935524610469
dev.igb.0.mac_stats.total_octets_txd: 386935524610469
dev.igb.0.mac_stats.total_pkts_txd: 388782070285
dev.igb.0.mac_stats.good_pkts_txd: 388782070284
dev.igb.0.mac_stats.bcast_pkts_txd: 23576
dev.igb.0.mac_stats.mcast_pkts_txd: 0
dev.igb.0.mac_stats.tx_frames_64: 15411781811
dev.igb.0.mac_stats.tx_frames_65_127: 86716465552
dev.igb.0.mac_stats.tx_frames_128_255: 22537923360
dev.igb.0.mac_stats.tx_frames_256_511: 7287992426
dev.igb.0.mac_stats.tx_frames_512_1023: 8319439784
dev.igb.0.mac_stats.tx_frames_1024_1522: 248508467352
dev.igb.0.mac_stats.tso_txd: 0
dev.igb.0.mac_stats.tso_ctx_fail: 0
dev.igb.0.interrupts.asserts: 420189964008
dev.igb.0.interrupts.rx_pkt_timer: 306639759829
dev.igb.0.interrupts.rx_abs_timer: 0
dev.igb.0.interrupts.tx_pkt_timer: 0
dev.igb.0.interrupts.tx_abs_timer: 0
dev.igb.0.interrupts.tx_queue_empty: 388776673905
dev.igb.0.interrupts.tx_queue_min_thresh: 683492531447
dev.igb.0.interrupts.rx_desc_min_thresh: 0
dev.igb.0.interrupts.rx_overrun: 0
dev.igb.0.host.breaker_tx_pkt: 0
dev.igb.0.host.host_tx_pkt_discard: 0
dev.igb.0.host.rx_pkt: 5736761
dev.igb.0.host.breaker_rx_pkts: 0
dev.igb.0.host.breaker_rx_pkt_drop: 0
dev.igb.0.host.tx_good_pkt: 5396381
dev.igb.0.host.breaker_tx_pkt_drop: 0
dev.igb.0.host.rx_good_bytes: 153897331877658
dev.igb.0.host.tx_good_bytes: 386935524612114
dev.igb.0.host.length_errors: 0
dev.igb.0.host.serdes_violation_pkt: 0
dev.igb.0.host.header_redir_missed: 0
dev.igb.1.%desc: Intel(R) PRO/1000 Network Connection version - 2.4.0
dev.igb.1.%driver: igb
dev.igb.1.%location: slot=0 function=1
dev.igb.1.%pnpinfo: vendor=0x8086 device=0x1522 subvendor=0x1d1a subdevice=0x0000 class=0x020000
dev.igb.1.%parent: pci9
dev.igb.1.nvm: -1
dev.igb.1.enable_aim: 1
dev.igb.1.fc: 0
dev.igb.1.down_disables_link: 0
dev.igb.1.max_interrupt_rate: 32000
dev.igb.1.rx_processing_limit: 4096
dev.igb.1.dmac: 0
dev.igb.1.eee_disabled: 0
dev.igb.1.link_irq: 54
dev.igb.1.dropped: 0
dev.igb.1.tx_dma_fail: 0
dev.igb.1.rx_overruns: 0
dev.igb.1.watchdog_timeouts: 0
dev.igb.1.device_control: 1490033345
dev.igb.1.rx_control: 67141634
dev.igb.1.interrupt_mask: 4
dev.igb.1.extended_int_mask: 2147483675
dev.igb.1.tx_buf_alloc: 0
dev.igb.1.rx_buf_alloc: 0
dev.igb.1.fc_high_water: 33168
dev.igb.1.fc_low_water: 33152
dev.igb.1.queue0.interrupt_rate: 90909
dev.igb.1.queue0.txd_head: 3865
dev.igb.1.queue0.txd_tail: 3865
dev.igb.1.queue0.no_desc_avail: 0
dev.igb.1.queue0.tx_packets: 75703755913
dev.igb.1.queue0.rxd_head: 2595
dev.igb.1.queue0.rxd_tail: 2594
dev.igb.1.queue0.rx_packets: 103656700452
dev.igb.1.queue0.rx_bytes: 95161158267143
dev.igb.1.queue0.lro_queued: 0
dev.igb.1.queue0.lro_flushed: 0
dev.igb.1.queue1.interrupt_rate: 62500
dev.igb.1.queue1.txd_head: 1649
dev.igb.1.queue1.txd_tail: 1650
dev.igb.1.queue1.no_desc_avail: 0
dev.igb.1.queue1.tx_packets: 91462701917
dev.igb.1.queue1.rxd_head: 3257
dev.igb.1.queue1.rxd_tail: 3256
dev.igb.1.queue1.rx_packets: 101911944377
dev.igb.1.queue1.rx_bytes: 95228896081490
dev.igb.1.queue1.lro_queued: 0
dev.igb.1.queue1.lro_flushed: 0
dev.igb.1.queue2.interrupt_rate: 90909
dev.igb.1.queue2.txd_head: 1850
dev.igb.1.queue2.txd_tail: 1851
dev.igb.1.queue2.no_desc_avail: 0
dev.igb.1.queue2.tx_packets: 80417049655
dev.igb.1.queue2.rxd_head: 3046
dev.igb.1.queue2.rxd_tail: 3045
dev.igb.1.queue2.rx_packets: 101880466406
dev.igb.1.queue2.rx_bytes: 94907567138265
dev.igb.1.queue2.lro_queued: 0
dev.igb.1.queue2.lro_flushed: 0
dev.igb.1.queue3.interrupt_rate: 90909
dev.igb.1.queue3.txd_head: 2887
dev.igb.1.queue3.txd_tail: 2890
dev.igb.1.queue3.no_desc_avail: 0
dev.igb.1.queue3.tx_packets: 91710106805
dev.igb.1.queue3.rxd_head: 3377
dev.igb.1.queue3.rxd_tail: 3376
dev.igb.1.queue3.rx_packets: 102239653169
dev.igb.1.queue3.rx_bytes: 95795813974681
dev.igb.1.queue3.lro_queued: 0
dev.igb.1.queue3.lro_flushed: 0
dev.igb.1.mac_stats.excess_coll: 0
dev.igb.1.mac_stats.single_coll: 0
dev.igb.1.mac_stats.multiple_coll: 0
dev.igb.1.mac_stats.late_coll: 0
dev.igb.1.mac_stats.collision_count: 0
dev.igb.1.mac_stats.symbol_errors: 0
dev.igb.1.mac_stats.sequence_errors: 0
dev.igb.1.mac_stats.defer_count: 0
dev.igb.1.mac_stats.missed_packets: 131918
dev.igb.1.mac_stats.recv_length_errors: 0
dev.igb.1.mac_stats.recv_no_buff: 41697
dev.igb.1.mac_stats.recv_undersize: 0
dev.igb.1.mac_stats.recv_fragmented: 0
dev.igb.1.mac_stats.recv_oversize: 0
dev.igb.1.mac_stats.recv_jabber: 0
dev.igb.1.mac_stats.recv_errs: 0
dev.igb.1.mac_stats.crc_errs: 0
dev.igb.1.mac_stats.alignment_errs: 0
dev.igb.1.mac_stats.tx_no_crs: 0
dev.igb.1.mac_stats.coll_ext_errs: 0
dev.igb.1.mac_stats.xon_recvd: 0
dev.igb.1.mac_stats.xon_txd: 2588
dev.igb.1.mac_stats.xoff_recvd: 0
dev.igb.1.mac_stats.xoff_txd: 128319
dev.igb.1.mac_stats.unsupported_fc_recvd: 0
dev.igb.1.mac_stats.mgmt_pkts_recvd: 0
dev.igb.1.mac_stats.mgmt_pkts_drop: 0
dev.igb.1.mac_stats.mgmt_pkts_txd: 0
dev.igb.1.mac_stats.total_pkts_recvd: 409689004919
dev.igb.1.mac_stats.good_pkts_recvd: 409688745125
dev.igb.1.mac_stats.bcast_pkts_recvd: 440
dev.igb.1.mac_stats.mcast_pkts_recvd: 10
dev.igb.1.mac_stats.rx_frames_64: 31355338266
dev.igb.1.mac_stats.rx_frames_65_127: 83061844874
dev.igb.1.mac_stats.rx_frames_128_255: 26700908488
dev.igb.1.mac_stats.rx_frames_256_511: 6660577022
dev.igb.1.mac_stats.rx_frames_512_1023: 8408367356
dev.igb.1.mac_stats.rx_frames_1024_1522: 253501709119
dev.igb.1.mac_stats.good_octets_recvd: 382732168872129
dev.igb.1.mac_stats.total_octets_recvd: 382732210364582
dev.igb.1.mac_stats.good_octets_txd: 145774571459929
dev.igb.1.mac_stats.total_octets_txd: 145774579837977
dev.igb.1.mac_stats.total_pkts_txd: 339293731791
dev.igb.1.mac_stats.good_pkts_txd: 339293600883
dev.igb.1.mac_stats.bcast_pkts_txd: 13926
dev.igb.1.mac_stats.mcast_pkts_txd: 0
dev.igb.1.mac_stats.tx_frames_64: 72856803034
dev.igb.1.mac_stats.tx_frames_65_127: 143846259815
dev.igb.1.mac_stats.tx_frames_128_255: 25357109049
dev.igb.1.mac_stats.tx_frames_256_511: 5883190621
dev.igb.1.mac_stats.tx_frames_512_1023: 7053707995
dev.igb.1.mac_stats.tx_frames_1024_1522: 84296530370
dev.igb.1.mac_stats.tso_txd: 0
dev.igb.1.mac_stats.tso_ctx_fail: 0
dev.igb.1.interrupts.asserts: 388651286272
dev.igb.1.interrupts.rx_pkt_timer: 409680785347
dev.igb.1.interrupts.rx_abs_timer: 0
dev.igb.1.interrupts.tx_pkt_timer: 0
dev.igb.1.interrupts.tx_abs_timer: 0
dev.igb.1.interrupts.tx_queue_empty: 339288906367
dev.igb.1.interrupts.tx_queue_min_thresh: 32841710260
dev.igb.1.interrupts.rx_desc_min_thresh: 0
dev.igb.1.interrupts.rx_overrun: 0
dev.igb.1.host.breaker_tx_pkt: 0
dev.igb.1.host.host_tx_pkt_discard: 0
dev.igb.1.host.rx_pkt: 7959780
dev.igb.1.host.breaker_rx_pkts: 0
dev.igb.1.host.breaker_rx_pkt_drop: 0
dev.igb.1.host.tx_good_pkt: 4694520
dev.igb.1.host.breaker_tx_pkt_drop: 0
dev.igb.1.host.rx_good_bytes: 382732188589947
dev.igb.1.host.tx_good_bytes: 145774571461494
dev.igb.1.host.length_errors: 0
dev.igb.1.host.serdes_violation_pkt: 0
dev.igb.1.host.header_redir_missed: 0

 

Во второй раз при проблеме ситуация такая:

dev.igb.0.queue0.interrupt_rate: 37037

dev.igb.0.queue1.interrupt_rate: 5464

dev.igb.0.queue2.interrupt_rate: 5347

dev.igb.0.queue3.interrupt_rate: 5235

 

netstat -w 1 -I igb0

            input         (igb0)           output
  packets  errs idrops      bytes    packets  errs      bytes colls
    36341     0     0   16952368      51570     0   53198264     0
    36879     0     0   16884007      51278     0   53219505     0
    36964     0     0   16816441      51895     0   53937965     0
    37074     0     0   16643365      52535     0   56137915     0
    37177     0     0   17525384      52812     0   55153617     0
    39106     0     0   18682093      48610     0   49520456     0
    37842     0     0   17966776      50916     0   52601460     0
    38668     0     0   18196597      49899     0   51479595     0
    37486     0     0   17793713      51200     0   52785265     0
    37563     0     0   16663613      51287     0   54207847     0
    37371     0     0   17215909      51825     0   54634721     0
    38740     0     0   17661161      50115     0   51384956     0
    37355     0     0   16560563      51299     0   53304837     0

 

 

Что крутить стоит, коллеги?

 

Изменения в ядре:

#options        INET6                   # IPv6 communications protocols
options         NETGRAPH
options         NETGRAPH_ASYNC
options         NETGRAPH_BPF
options         NETGRAPH_BRIDGE
options         NETGRAPH_CAR
options         NETGRAPH_DEFLATE
options         NETGRAPH_ETHER
options         NETGRAPH_IFACE
options         NETGRAPH_IPFW
options         NETGRAPH_KSOCKET
options         NETGRAPH_L2TP
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_NETFLOW
options         NETGRAPH_NAT
options         NETGRAPH_PPP
options         NETGRAPH_PPPOE
options         NETGRAPH_PPTPGRE
options         NETGRAPH_PRED1
options         NETGRAPH_SOCKET
options         NETGRAPH_TCPMSS
options         NETGRAPH_TEE
options         NETGRAPH_TTY
options         NETGRAPH_VJC
options         PANIC_REBOOT_WAIT_TIME=16
options         ROUTETABLES=2
#infini
options         OFED
options         SDP
device          ipoib
options         IPOIB_CM
device          mlxen
device          mlx4ib

 

kldstat

Id Refs Address            Size     Name
1    6 0xffffffff80200000 14bc340  kernel
2    2 0xffffffff81811000 10757    ipfw.ko
3    1 0xffffffff81822000 4944     ipfw_nat.ko

Share this post


Link to post
Share on other sites

Попробовать отказатся от:

net.inet.ip.fastforwarding=1

 

и задействовать isr

net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch.

net.route.netisr_maxqlen=1024 # maximum routing socket dispatch queue length

 

для 9х вроде чуть по другому тюнится, ещё в лоадер.конф:

net.isr.bindthreads=1 # Bind netisr threads to CPUs

 

Как минимум ng_queue должно сменится на isr потоки в топе.

 

dev.igb.0.queue0.interrupt_rate: 37037

Это потому что gre трафик, а карточка раскидывает по ip+port.

Share this post


Link to post
Share on other sites

Чуть-чуть продолжил поиски по Вашим наводкам.

1. fastforwarding, вероятно, для меня сомнителен: если трафик им и обработается (в моем случае есть сомнения -gre не ip же), то он не попадет в netisr и, соответственно, никак не распаралелится, а уйдет сразу в netgraph. Дальше, видимо, обработка его тредами ng_queue. Получается, вроде как и вреден фастфорвардинг.

2. netisr "по-новому", с этими профилями (гибрид и т.п.) ранее вроде бы мог приводить к паникам на машине с множеством появляющихся\исчезающих интерфейсов. к 9.3-stable что-то изменилось?

3. queue. 82576, например, может хешить трафик перед засовыванием его в очереди только по ип+tcp порт. Возможно так же и с i350. Трафик, не имеющих таких критериев, должен был попадать в queue.0. Здесь, кажется, лучше бы у меня был l2tp, чем pptp, было бы легко. Ядер 8, головы 2, на каждую по 4 очереди. По очереди на ядро, вроде бы все хорошо, никаких опасностей того, что могло бы быть с 4ядрами\2головами\8 векторами суммарно( на нулевую очередь (в которую предположительно весь gre попадет)+нулевое ядро сядет еще трафик со второй головы)). Эта проблема должна проявить себя как загрузка 1 ядра с недогрузкой остальных и с проблемой на трафике. Вроде бы, моё случай. Смотрю дальше:

vmstat -i В состоянии нормальной работы:

interrupt total rate

irq19: uhci1+ 3006253 0

cpu0:timer 17332824310 1116

irq258: igb0:que 0 102495133854 6599

irq259: igb0:que 1 107574809480 6926

irq260: igb0:que 2 106534358598 6859

irq261: igb0:que 3 108873864854 7010

irq262: igb0:link 4 0

irq263: igb1:que 0 95353449521 6140

irq264: igb1:que 1 99873590151 6431

irq265: igb1:que 2 97226730003 6260

irq266: igb1:que 3 100758915636 6488

irq267: igb1:link 56 0

cpu3:timer 17259854112 1111

cpu1:timer 17270805902 1112

cpu5:timer 17198184943 1107

cpu2:timer 17254036422 1111

cpu4:timer 17045984820 1097

cpu7:timer 17163730575 1105

cpu6:timer 17059433886 1098

Total 956278713380 61576

 

Вроде бы достаточно равномерно

Смотрю sysctl dev.igb в этот же момент:

dev.igb.0.queue0.interrupt_rate: 5347

dev.igb.0.queue1.interrupt_rate: 5347

dev.igb.0.queue2.interrupt_rate: 47619

dev.igb.0.queue3.interrupt_rate: 66666

На входящем интерфейсе перекос в двух очередях.

 

Смотрю что было ранее:

dev.igb.1.queue0.interrupt_rate: 90909

dev.igb.1.queue1.interrupt_rate: 62500

dev.igb.1.queue2.interrupt_rate: 90909

dev.igb.1.queue3.interrupt_rate: 90909

 

dev.igb.0.queue0.interrupt_rate: 37037

dev.igb.0.queue1.interrupt_rate: 5464

dev.igb.0.queue2.interrupt_rate: 5347

dev.igb.0.queue3.interrupt_rate: 5235

 

Нулевая очередь на входящем интерфейсе, но дикие цифры на всех на исходящем.

 

Смотрю ранее, тоже в момент проблемы:

dev.igb.0.queue1.interrupt_rate: 11764

dev.igb.0.queue0.interrupt_rate: 5347

dev.igb.0.queue2.interrupt_rate: 100000

dev.igb.0.queue3.interrupt_rate: 62500

Неравно, цифры большие.

 

Но ведь у меня dev.igb.0.max_interrupt_rate: 32000! Т.е. 8000 на очередь. Ну в любом случае 32000 на 4 очереди суммарно, а у меня там давно за пределами 32000.

Где я прав\не прав? Спасибо

Share this post


Link to post
Share on other sites

Чуть-чуть продолжил поиски по Вашим наводкам.

1. fastforwarding, вероятно, для меня сомнителен: если трафик им и обработается (в моем случае есть сомнения -gre не ip же)

 

Показывайте статистику траффика в разрезе протоколов (netstat -s) после суточной нагрузки.

 

Вы уверены, что включать гипертрейдинг хорошая идея?

Share this post


Link to post
Share on other sites

fastforwarding, вероятно, для меня сомнителен: если трафик им и обработается

Опция работает сама по себе, не зависимо от остального.

 

2. netisr "по-новому", с этими профилями (гибрид и т.п.) ранее вроде бы мог приводить к паникам на машине с множеством появляющихся\исчезающих интерфейсов. к 9.3-stable что-то изменилось?

Я про дефферед, гибрид не предлагал.

Насчёт паник не подскажу.

 

3. queue. 82576, например, может хешить трафик перед засовыванием его в очереди только по ип+tcp порт. Возможно так же и с i350. Трафик, не имеющих таких критериев, должен был попадать в queue.0.

Теоритически есть хак: взять карту с 4 портами, собрать LACP на коммутаторе и в системе и тогда gre может размазатся по 0 очередям четырёх сетевух. С двумя портами аналогично.

Share this post


Link to post
Share on other sites

tcp:

358972912 packets sent

244965799 data packets (5006541835 bytes)

710879 data packets (22253188 bytes) retransmitted

56625 data packets unnecessarily retransmitted

0 resends initiated by MTU discovery

111195837 ack-only packets (97072219 delayed)

0 URG only packets

0 window probe packets

518 window update packets

2101394 control packets

417348196 packets received

243446913 acks (for 4989168706 bytes)

2061217 duplicate acks

0 acks for unsent data

245005807 packets (5132659982 bytes) received in-sequence

95486 completely duplicate packets (1311480 bytes)

15468 old duplicate packets

48 packets with some dup. data (1156 bytes duped)

12915 out-of-order packets (3791624 bytes)

33 packets (0 bytes) of data after window

0 window probes

4720 window update packets

6646 packets received after close

195 discarded for bad checksums

0 discarded for bad header offset fields

0 discarded because packet too short

0 discarded due to memory problems

891 connection requests

2152172 connection accepts

0 bad connection attempts

16 listen queue overflows

89954 ignored RSTs in the windows

2152673 connections established (including accepts)

2152639 connections closed (including 141761 drops)

2090355 connections updated cached RTT on close

2135456 connections updated cached RTT variance on close

1520265 connections updated cached ssthresh on close

0 embryonic connections dropped

243343161 segments updated rtt (of 238747379 attempts)

721043 retransmit timeouts

44083 connections dropped by rexmit timeout

0 persist timeouts

0 connections dropped by persist timeout

0 Connections (fin_wait_2) dropped because of timeout

204 keepalive timeouts

198 keepalive probes sent

6 connections dropped by keepalive

159508206 correct ACK header predictions

165851118 correct data packet header predictions

2888909 syncache entries added

2104439 retransmitted

1709979 dupsyn

1 dropped

2152172 completed

3650 bucket overflow

0 cache overflow

41782 reset

691187 stale

16 aborted

0 badack

121 unreach

0 zone failures

2888833 cookies sent

19 cookies received

188240 hostcache entries added

0 bucket overflow

259 SACK recovery episodes

30 segment rexmits in SACK recovery episodes

9596 byte rexmits in SACK recovery episodes

80957 SACK options (SACK blocks) received

6221 SACK options (SACK blocks) sent

0 SACK scoreboard overflow

0 packets with ECN CE bit set

0 packets with ECN ECT(0) bit set

0 packets with ECN ECT(1) bit set

0 successful ECN handshakes

0 times ECN reduced the congestion window

udp:

2332636108 datagrams received

0 with incomplete header

0 with bad data length field

63 with bad checksum

58396262 with no checksum

1549080 dropped due to no socket

51407892 broadcast/multicast datagrams undelivered

2894 dropped due to full socket buffers

0 not for hashed pcb

2279676179 delivered

4005325298 datagrams output

0 times multicast source filter matched

sctp:

0 input packets

0 datagrams

0 packets that had data

0 input SACK chunks

0 input DATA chunks

0 duplicate DATA chunks

0 input HB chunks

0 HB-ACK chunks

0 input ECNE chunks

0 input AUTH chunks

0 chunks missing AUTH

0 invalid HMAC ids received

0 invalid secret ids received

0 auth failed

0 fast path receives all one chunk

0 fast path multi-part data

0 output packets

0 output SACKs

0 output DATA chunks

0 retransmitted DATA chunks

0 fast retransmitted DATA chunks

0 FR's that happened more than once to same chunk

0 output HB chunks

0 output ECNE chunks

0 output AUTH chunks

0 ip_output error counter

Packet drop statistics:

0 from middle box

0 from end host

0 with data

0 non-data, non-endhost

0 non-endhost, bandwidth rep only

0 not enough for chunk header

0 not enough data to confirm

0 where process_chunk_drop said break

0 failed to find TSN

0 attempt reverse TSN lookup

0 e-host confirms zero-rwnd

0 midbox confirms no space

0 data did not match TSN

0 TSN's marked for Fast Retran

Timeouts:

0 iterator timers fired

0 T3 data time outs

0 window probe (T3) timers fired

0 INIT timers fired

0 sack timers fired

0 shutdown timers fired

0 heartbeat timers fired

0 a cookie timeout fired

0 an endpoint changed its cookiesecret

0 PMTU timers fired

0 shutdown ack timers fired

0 shutdown guard timers fired

0 stream reset timers fired

0 early FR timers fired

0 an asconf timer fired

0 auto close timer fired

0 asoc free timers expired

0 inp free timers expired

0 packet shorter than header

0 checksum error

0 no endpoint for port

0 bad v-tag

0 bad SID

0 no memory

0 number of multiple FR in a RTT window

0 RFC813 allowed sending

0 RFC813 does not allow sending

0 times max burst prohibited sending

0 look ahead tells us no memory in interface

0 numbers of window probes sent

0 times an output error to clamp down on next user send

0 times sctp_senderrors were caused from a user

0 number of in data drops due to chunk limit reached

0 number of in data drops due to rwnd limit reached

0 times a ECN reduced the cwnd

0 used express lookup via vtag

0 collision in express lookup

0 times the sender ran dry of user data on primary

0 same for above

0 sacks the slow way

0 window update only sacks sent

0 sends with sinfo_flags !=0

0 unordered sends

0 sends with EOF flag set

0 sends with ABORT flag set

0 times protocol drain called

0 times we did a protocol drain

0 times recv was called with peek

0 cached chunks used

0 cached stream oq's used

0 unread messages abandonded by close

0 send burst avoidance, already max burst inflight to net

0 send cwnd full avoidance, already max burst inflight to net

0 number of map array over-runs via fwd-tsn's

ip:

1028486637714 total packets received

435 bad header checksums

0 with size smaller than minimum

3782908 with data size < data length

0 with ip length > max ip packet size

0 with header length < data size

0 with data length < header length

9 with bad options

0 with incorrect version number

1040445263 fragments received

2 fragments dropped (dup or out of space)

57230 fragments dropped after timeout

520193992 packets reassembled ok

310069951016 packets for this host

35511480 packets for unknown/unsupported protocol

717688261988 packets forwarded (414241041968 packets fast forwarded)

3606193 packets not forwardable

0 packets received for unknown multicast group

0 redirects sent

394001171795 packets sent from this host

1 packet sent with fabricated ip header

519247 output packets dropped due to no bufs, etc.

0 output packets discarded due to no route

8946634319 output datagrams fragmented

17892859240 fragments created

8721452 datagrams that can't be fragmented

0 tunneling packets that can't find gif

19265 datagrams with bad address in header

icmp:

212810240 calls to icmp_error

1979205 errors not generated in response to an icmp message

Output histogram:

echo reply: 6084383

destination unreachable: 8723734

time exceeded: 201751747

time stamp reply: 8

7 messages with bad code fields

0 messages less than the minimum length

1719 messages with bad checksum

59 messages with bad length

0 multicast echo requests ignored

0 multicast timestamp requests ignored

Input histogram:

echo reply: 423

#1: 3

#2: 2

destination unreachable: 8510050

source quench: 15

routing redirect: 250846

#6: 4

#7: 3

echo: 12969353

router advertisement: 4

router solicitation: 2

time exceeded: 132409

parameter problem: 3

time stamp: 8

time stamp reply: 8

information request: 4

information request reply: 2

address mask request: 3

address mask reply: 1

#19: 3

#20: 2

#21: 4

#23: 3

#24: 1

#25: 9

#26: 3

#27: 4

#28: 6

#29: 4

icmp traceroute: 4

datagram conversion error: 3

IPv6 where-are-you: 2

IPv6 i-am-here: 1

mobile registration req: 3

mobile registration reply: 1

domain name request: 5

domain name reply: 1

icmp SKIP: 3

icmp photuris: 3

6084391 message responses generated

0 invalid return addresses

0 no return routes

ICMP address mask responses are disabled

igmp:

17949300 messages received

0 messages received with too few bytes

0 messages received with wrong TTL

0 messages received with bad checksum

16291116 V1/V2 membership queries received

19 V3 membership queries received

0 membership queries received with invalid field(s)

16291135 general queries received

0 group queries received

0 group-source queries received

0 group-source queries dropped

1000641 membership reports received

28062 membership reports received with invalid field(s)

0 membership reports received for groups to which we belong

326705 V3 reports received without Router Alert

0 membership reports sent

arp:

37902 ARP requests sent

895498 ARP replies sent

5352581 ARP requests received

36230 ARP replies received

5388811 ARP packets received

3906 total packets dropped due to no ARP entry

6730 ARP entrys timed out

0 Duplicate IPs seen

Больше, чем после суток. Гипертрейдинг выключен, это 2 процессора

Share this post


Link to post
Share on other sites

Используйте теги код - читать невозможно.

 

Навскидку, большие значения out-of-order packets. Евгений Гроссбейн в свое время жаловался на баг с переупорядачиванием пакетов.

 

Еще какой MTU на выходе? и дальше по трассе к аплинкам?

Доля размеров пакетов между клиентами и вашим NAS ?

 

Я не уверен, что net.graph.maxdata надо такое огромное число. Погуглите. Имхо, 2х максимального числа пользователей.

Share this post


Link to post
Share on other sites

Ivan_83 Я всё думал о роли gre в моем pptp трафике и должна ли интеловская сетевушка разбрасывать этот трафик по очередям; думал, не начать ли использовать l2tp (соответсвующий бандл настроен и запущен вместе с pptp на всех брасах). Пришел к выводу, что разницы особой быть не должно, но перейти на использование isr-a, что бы обработка была не в контексте прерываний, попробовать стоит. Думаю, утром сегодня\завтра так и сделаю. Только биндить наверное в моем случае не стоит: кол-во очередей карты равно у меня кол-ву ядер. Все верно?

vlad11 Наверное, переупорядочивание пакетов было бы страшно с шифрованием. Шифрование трафика не использую. Его патч, кстати, наложен и используется с глубиной очереди в 16 и таймаутом в 2мс.

net.graph.pptpgre.reorder_max=16
net.graph.pptpgre.reorder_timeout=2

MTU туннелям ограничено в MPD

 set link mtu 1460

, на интерфейсах входном и выходном - 1500, дальше и до на оборудовании - 1500, q-n-q нету, поэтому не увеличивал. Если посмотреть ifconfig, то абсолютное большинство клиентов с 1420, в целом же 1400 - 1460. Вы это имели ввиду под долей?

Я не уверен, что net.graph.maxdata надо такое огромное число. Погуглите. Имхо, 2х максимального числа пользователей.

Я сегодня с помощью автора раскопал эту проблему. При массовом отключении сессий генерируется огромное количество сообщений к нодам netgraph ядра. Такое же может быть и в другом случае - если какое-то клиентское устройство сойдет с ума и начнет флудить сервер запросами на подключение на скорости линка. Тоже генерируется огромное количество сообщений. Для этих сообщений в ядре есть очередь дефолтного размера 4096, текущий размер можно посмотреть через sysctl net.graph.maxalloc (r/o). Посмотреть статистику по ней можно командой vmstat -z|egrep 'ITEM|NetGraph', она покажет и вторую очередь, размер которой net.graph.maxdata. Поменять размеры только через loader.conf и перезагрузку. Столбец FAILURES показывает, сколько раз очереди переполнялись.

Так вот, при переполнении очереди mpd55 получает от ядра ENOMEM при попытке создать новое соединение и по какой-то причине оно остаётся "полусобранным" - часть нод создана, часть нет. И почему-то mpd55 не прибирает полученный мусор и когда позже очередь разгребается, наталкивается на эти осколки в ядерном netgraph и не может их обойти. Я попробовал увеличить размеры очередей до 65536, погляжу что получится.

(с) Гросбеин.

Дефолт 4096 и с ним гарантированно спустя несколько дней нельзя уже было посмотреть ngctl list. Значения действительно просто были скопипащены. С другой стороны, они больше дефолтных в 10 раз. Возможно, на реальном примере, при аналогичной нагрузке, когда нет FAIL для ITEM|NetGraph, Вы можете рекомендовать конкретные значения из опыта? Значение данного параметра в работе не изменить, только с рестартом, поэтому хотелось бы обдуманно это делать. Может быть у Вас есть мысли каким образом резкое завышение данного параметра мне может мешать?

 

...

Посмотрел я вывод ngctl list тут

 Name: igb0            Type: ether           ID: 00000003   Num hooks: 0
 Name: igb1            Type: ether           ID: 00000004   Num hooks: 0
 Name: mpd691-lso      Type: socket          ID: 00000007   Num hooks: 621
 Name: mpd691-cso      Type: socket          ID: 00000008   Num hooks: 0
 Name: mpd691-eso      Type: socket          ID: 00000009   Num hooks: 0
 Name: mpd691-stats    Type: socket          ID: 00000024   Num hooks: 0
 Name: mpd691-nf       Type: netflow         ID: 00000026   Num hooks: 1243
 Name: mpd691-L_pptp-254-lt Type: tee             ID: 00d20027   Num hooks: 2
 Name: mpd691-nfso     Type: ksocket         ID: 00000027   Num hooks: 1
 Name: <unnamed>       Type: pptpgre         ID: 00d20029   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00d2002a   Num hooks: 1
 Name: ng88            Type: iface           ID: 00d20030   Num hooks: 1
 Name: mpd691-B_ppp-89 Type: ppp             ID: 00d20031   Num hooks: 3
 Name: mpd691-L_pptp-109-lt Type: tee             ID: 00328036   Num hooks: 2
 Name: mpd691-B_ppp-89-mss Type: tcpmss          ID: 00d20037   Num hooks: 2
 Name: mpd691-B_ppp-89-lim Type: bpf             ID: 00d20038   Num hooks: 14
 Name: <unnamed>       Type: pptpgre         ID: 00328038   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d20039   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00328039   Num hooks: 1
 Name: <unnamed>       Type: car             ID: 00d2003a   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d2003b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d2003c   Num hooks: 2
 Name: ng535           Type: iface           ID: 00328050   Num hooks: 1
 Name: mpd691-B_ppp-536 Type: ppp             ID: 00328051   Num hooks: 3
 Name: mpd691-B_ppp-536-mss Type: tcpmss          ID: 00328069   Num hooks: 2
 Name: mpd691-B_ppp-536-lim Type: bpf             ID: 0032806a   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 0032806b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 0032806c   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 0032806d   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 0032806e   Num hooks: 2
 Name: mpd691-L_pptp-100-lt Type: tee             ID: 00d6007e   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00d60080   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00d60081   Num hooks: 1
 Name: ng90            Type: iface           ID: 00d60086   Num hooks: 1
 Name: mpd691-B_ppp-91 Type: ppp             ID: 00d60087   Num hooks: 3
 Name: mpd691-B_ppp-91-mss Type: tcpmss          ID: 00d60088   Num hooks: 2
 Name: mpd691-B_ppp-91-lim Type: bpf             ID: 00d60089   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d6008a   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6008b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6008c   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6008d   Num hooks: 2
 Name: mpd691-L_pptp-116-lt Type: tee             ID: 00d600d8   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00d600da   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00d600db   Num hooks: 1
 Name: ng157           Type: iface           ID: 00d600dc   Num hooks: 1
 Name: mpd691-B_ppp-158 Type: ppp             ID: 00d600dd   Num hooks: 3
 Name: mpd691-L_pptp-244-lt Type: tee             ID: 00d60147   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00d60149   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00d6014a   Num hooks: 1
 Name: ng30            Type: iface           ID: 00d6014b   Num hooks: 1
 Name: mpd691-B_ppp-31 Type: ppp             ID: 00d6014c   Num hooks: 3
 Name: mpd691-L_pptp-650-lt Type: tee             ID: 00c3820b   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00c3820d   Num hooks: 2
 Name: <unnamed>       Type: ksocket         ID: 00c3820e   Num hooks: 1
 Name: ng1             Type: iface           ID: 00c3820f   Num hooks: 1
 Name: mpd691-B_ppp-2  Type: ppp             ID: 00c38210   Num hooks: 3
 Name: mpd691-B_ppp-2-mss Type: tcpmss          ID: 00c38211   Num hooks: 2
 Name: mpd691-B_ppp-2-lim Type: bpf             ID: 00c38212   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00c38213   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00c38214   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00c38215   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00c38216   Num hooks: 2
 Name: mpd691-L_pptp-152-lt Type: tee             ID: 00c88225   Num hooks: 2
 Name: mpd691-B_ppp-317-mss Type: tcpmss          ID: 00d60227   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00c88227   Num hooks: 2
 Name: mpd691-B_ppp-317-lim Type: bpf             ID: 00d60228   Num hooks: 14
 Name: <unnamed>       Type: ksocket         ID: 00c88228   Num hooks: 1
 Name: <unnamed>       Type: car             ID: 00d60229   Num hooks: 2
 Name: ng96            Type: iface           ID: 00c88229   Num hooks: 1
 Name: <unnamed>       Type: car             ID: 00d6022a   Num hooks: 2
 Name: mpd691-B_ppp-97 Type: ppp             ID: 00c8822a   Num hooks: 3
 Name: <unnamed>       Type: car             ID: 00d6022b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6022c   Num hooks: 2
 Name: mpd691-B_ppp-280-mss Type: tcpmss          ID: 00d6022d   Num hooks: 2
 Name: mpd691-B_ppp-280-lim Type: bpf             ID: 00d6022e   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d6022f   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60230   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60231   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60232   Num hooks: 2
 Name: mpd691-B_ppp-332-mss Type: tcpmss          ID: 00d60233   Num hooks: 2
 Name: mpd691-B_ppp-332-lim Type: bpf             ID: 00d60234   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d60235   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60236   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60237   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60238   Num hooks: 2
 Name: mpd691-B_ppp-170-mss Type: tcpmss          ID: 00d60239   Num hooks: 2
 Name: mpd691-B_ppp-170-lim Type: bpf             ID: 00d6023a   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d6023b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6023c   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6023d   Num hooks: 2
 Name: mpd691-L_pptp-191-lt Type: tee             ID: 00d5823d   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6023e   Num hooks: 2
 Name: mpd691-B_ppp-554-mss Type: tcpmss          ID: 00d6023f   Num hooks: 2
 Name: <unnamed>       Type: pptpgre         ID: 00d5823f   Num hooks: 2
 Name: mpd691-B_ppp-554-lim Type: bpf             ID: 00d60240   Num hooks: 14
 Name: <unnamed>       Type: ksocket         ID: 00d58240   Num hooks: 1
 Name: <unnamed>       Type: car             ID: 00d60241   Num hooks: 2
 Name: ng123           Type: iface           ID: 00d58241   Num hooks: 1
 Name: <unnamed>       Type: car             ID: 00d60242   Num hooks: 2
 Name: mpd691-B_ppp-124 Type: ppp             ID: 00d58242   Num hooks: 3
 Name: <unnamed>       Type: car             ID: 00d60243   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60244   Num hooks: 2
 Name: mpd691-B_ppp-575-mss Type: tcpmss          ID: 00d60245   Num hooks: 2
 Name: mpd691-B_ppp-575-lim Type: bpf             ID: 00d60246   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d60247   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60248   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60249   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6024a   Num hooks: 2
 Name: mpd691-B_ppp-281-mss Type: tcpmss          ID: 00d6024b   Num hooks: 2
 Name: mpd691-B_ppp-281-lim Type: bpf             ID: 00d6024c   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d6024d   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6024e   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6024f   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60250   Num hooks: 2
 Name: mpd691-B_ppp-290-mss Type: tcpmss          ID: 00d60251   Num hooks: 2
 Name: mpd691-B_ppp-290-lim Type: bpf             ID: 00d60252   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d60253   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60254   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60255   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60256   Num hooks: 2
 Name: mpd691-B_ppp-145-mss Type: tcpmss          ID: 00d60257   Num hooks: 2
 Name: mpd691-B_ppp-145-lim Type: bpf             ID: 00d60258   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d60259   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6025a   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6025b   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d6025c   Num hooks: 2
 Name: mpd691-B_ppp-24-mss Type: tcpmss          ID: 00d6025d   Num hooks: 2
 Name: mpd691-B_ppp-24-lim Type: bpf             ID: 00d6025e   Num hooks: 14
 Name: <unnamed>       Type: car             ID: 00d6025f   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60260   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60261   Num hooks: 2
 Name: <unnamed>       Type: car             ID: 00d60262   Num hooks: 2
 Name: mpd691-B_ppp-416-mss Type: tcpmss          ID: 00d60263   Num hooks: 2
 Name: mpd691-B_ppp-416-lim Type: bpf             ID: 00d60264   Num hooks: 14

Не isr поможет, так следующим шагом думать как это mpd-шное оптимизировать

Edited by Sincha

Share this post


Link to post
Share on other sites

Не в пик наблюдаю следующее:

 

last pid:  4386;  load averages:  2.00,  2.23,  2.03                                                                  up 0+04:30:57  10:57:14
200 processes: 11 running, 153 sleeping, 36 waiting
CPU 0:  0.0% user,  0.0% nice,  3.1% system, 27.2% interrupt, 69.7% idle
CPU 1:  0.0% user,  0.0% nice,  4.3% system, 26.8% interrupt, 68.9% idle
CPU 2:  0.0% user,  0.0% nice,  4.3% system, 22.0% interrupt, 73.6% idle
CPU 3:  0.0% user,  0.0% nice,  1.6% system, 20.9% interrupt, 77.6% idle
CPU 4:  0.0% user,  0.0% nice, 16.9% system,  4.7% interrupt, 78.3% idle
CPU 5:  0.4% user,  0.0% nice, 19.3% system,  3.9% interrupt, 76.4% idle
CPU 6:  0.0% user,  0.0% nice, 18.5% system,  2.8% interrupt, 78.7% idle
CPU 7:  0.0% user,  0.0% nice, 13.8% system,  4.3% interrupt, 81.9% idle
Mem: 28M Active, 37M Inact, 212M Wired, 19M Buf, 3661M Free
Swap: 3052M Total, 3052M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
  11 root       155 ki31     0K   128K CPU4    4 238:35  88.48% idle{idle: cpu4}
  11 root       155 ki31     0K   128K CPU7    7 238:40  87.60% idle{idle: cpu7}
  11 root       155 ki31     0K   128K CPU5    5 238:21  84.08% idle{idle: cpu5}
  11 root       155 ki31     0K   128K CPU6    6 238:41  82.86% idle{idle: cpu6}
  11 root       155 ki31     0K   128K CPU3    3 230:52  80.57% idle{idle: cpu3}
  11 root       155 ki31     0K   128K RUN     1 230:18  79.39% idle{idle: cpu1}
  11 root       155 ki31     0K   128K CPU2    2 228:16  78.37% idle{idle: cpu2}
  11 root       155 ki31     0K   128K CPU0    0 223:42  71.19% idle{idle: cpu0}
  12 root       -72    -     0K   592K WAIT    0  36:08  23.49% intr{swi1: netisr 0}
  12 root       -72    -     0K   592K WAIT    2  32:31  20.46% intr{swi1: netisr 2}
  12 root       -72    -     0K   592K WAIT    1  30:17  20.36% intr{swi1: netisr 1}
  12 root       -72    -     0K   592K WAIT    3  29:58  18.90% intr{swi1: netisr 3}
  13 root       -16    -     0K   128K sleep   4  14:18   8.79% ng_queue{ng_queue2}
  13 root       -16    -     0K   128K sleep   6  14:16   8.59% ng_queue{ng_queue4}
  13 root       -16    -     0K   128K sleep   2  14:17   8.40% ng_queue{ng_queue6}
  13 root       -16    -     0K   128K sleep   6  14:16   8.40% ng_queue{ng_queue1}
  13 root       -16    -     0K   128K CPU7    7  14:18   8.25% ng_queue{ng_queue5}
  13 root       -16    -     0K   128K sleep   6  14:16   8.25% ng_queue{ng_queue0}
  13 root       -16    -     0K   128K sleep   4  14:16   8.25% ng_queue{ng_queue7}
  13 root       -16    -     0K   128K sleep   4  14:17   8.15% ng_queue{ng_queue3}
 721 root        22    0   154M 40900K select  7  14:07   3.56% mpd5{mpd5}
  12 root       -92    -     0K   592K WAIT    0   4:44   2.88% intr{irq258: igb0:que}
  12 root       -92    -     0K   592K WAIT    6   4:26   2.69% intr{irq265: igb1:que}
  12 root       -92    -     0K   592K WAIT    4   4:45   2.49% intr{irq263: igb1:que}
  12 root       -92    -     0K   592K WAIT    2   4:34   2.49% intr{irq260: igb0:que}
  12 root       -92    -     0K   592K CPU1    1   4:18   2.49% intr{irq259: igb0:que}
  12 root       -92    -     0K   592K WAIT    7   4:02   2.49% intr{irq266: igb1:que}
  12 root       -92    -     0K   592K WAIT    5   4:22   2.39% intr{irq264: igb1:que}
  12 root       -92    -     0K   592K WAIT    3   4:04   2.39% intr{irq261: igb0:que}

 

 sysctl net.isr
net.isr.numthreads: 8
net.isr.maxprot: 16
net.isr.defaultqlimit: 4096
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 8
net.isr.direct: 0
net.isr.direct_force: 0
net.isr.dispatch: deferred

Share this post


Link to post
Share on other sites

Я всё думал о роли gre в моем pptp трафике и должна ли интеловская сетевушка разбрасывать этот трафик по очередям; думал, не начать ли использовать l2tp (соответсвующий бандл настроен и запущен вместе с pptp на всех брасах). Пришел к выводу, что разницы особой быть не должно

Не надо думать, нужно читать про RSS тут или в датащите на чип сетевухи, это ближе к реальности, интеловцы лучше знают как их железо работает.

 

Только биндить наверное в моем случае не стоит: кол-во очередей карты равно у меня кол-ву ядер. Все верно?

Нет, не верно.

Биндить стоит всегда, когда обработчиков меньше или столько же как и ядер на которых они крутятся.

Не биндить лучше тогда когда у тебя пачка обработчиков (больше чем ядер проца) и они рандомно периодически нагружаются, это нужно для автобалансинга нагрузки по ядрам, потому что легко может случится что более одного обработчика привязанных к одному ядру будут пахать, а остальные ядра будут простаивать. Это такой вариант хреновой балансировки нагрузки, когда этим занимается планировщик потоков ОС, потому что больше не кому, и это стоит опред % потерь производительности, сколько именно зависит от настроек ОС и характера работы. Классический пример: херова гора PHP воркеров.

Share this post


Link to post
Share on other sites

Ivan_83 т.е. для браса отдавая все ресурсы, кол-во тредов=кол-ву процессоров + биндить. Как выше. Что же у меня 4 треда получилось?

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.