Как-то закисла тема последнее время.
Вобщем для начала опишу сетап. У роутера нету свободных 10G портов для миррора и он сам не тянет экспорт нетфлоу. Пришли к супер-идее, заменили оптические патчкорды на сплиттеры 1:2. В итоге получили два волокна - в одном RX, во втором TX. Воткнули это дело в двухпортовую сетевуху. Трафик видно. На eth2 видим RX, на eth3 - TX.
Есть нюанс, трафик, который надо вытащить - тэгированный. VLAN 5.
Делаем следующее. Создаем eth2.5, eth3.5, бриджим эти интерфейсы в br5. Если этого не делать - трафик в цепочки iptables вообще не попадает.
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2120M 1709G NETFLOW all -- br5 * 0.0.0.0/0 0.0.0.0/0 NETFLOW
2120M 1709G DROP all -- br5 * 0.0.0.0/0 0.0.0.0/0
Счетчики бегут, трафик идет, тут все зашибись.
Теперь собственно к проблеме. Сразу поставили последний релиз (2.0), (1.8 не пробовали пока).
Машинка - 2 проца по 4 ядра.
Аптайм порядка 40-45 минут:
Топ:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29 root 20 0 0 0 0 R 50.1 0.0 31:08.29 ksoftirqd/6
41 root 20 0 0 0 0 R 49.8 0.0 31:19.24 events/6
2115 root 20 0 15028 1360 992 R 0.3 0.0 0:00.03 top
Выжрато ядро 6 в 100%.
# cat /proc/net/stat/ipt_netflow
ipt_NETFLOW version 2.0, srcversion (null); aggr llist
Flows: active 8388608 (peak 8388610 reached 0d0h58m ago), mem 1179648K, worker delay 1/1000 (1043537 ms, 564360000 us, 6685370:0 548139 [6]).
Hash: size 33554432 (mem 262144K), metric 1.02 [1.00, 1.00, 1.00]. MemTraf: 639516873 pkt, 545446637 K (pdu 73, 11635), Out 1296179830 pkt, 1096417171 K.
Rate: 3236060272 bits/sec, 463781 packets/sec; Avg 1 min: 3283345621 bps, 468409 pps; 5 min: 3331017617 bps, 475227 pps
cpu# stat: <search found new [metric], trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total stat: 66149293 1914345635 401704429 [1.02], 0 5403230 0 380353434, sock: 432059 20 0, 617708 K, traffic: 1935696630, 1603382 MB, drop: 380394700, 180060658 K
cpu0 stat: 2915373 80791502 17704298 [1.02], 0 245531 0 16640252, sock: 0 0 0, 0 K, traffic: 81855548, 68386 MB, drop: 16640252, 8038183 K
cpu1 stat: 2986425 83220187 18278036 [1.02], 0 252849 0 17208452, sock: 69325 0 0, 99112 K, traffic: 84289771, 70513 MB, drop: 17208452, 8270421 K
cpu2 stat: 2822755 78549678 17225977 [1.02], 0 240272 0 16194842, sock: 0 0 0, 0 K, traffic: 79580813, 66391 MB, drop: 16194842, 7797547 K
cpu3 stat: 3453036 114923126 20861532 [1.02], 0 337446 0 17775181, sock: 0 0 0, 0 K, traffic: 118009477, 96530 MB, drop: 17775181, 8561261 K
cpu4 stat: 2785497 77483781 16990190 [1.02], 0 234650 0 15966125, sock: 0 0 0, 0 K, traffic: 78507846, 65492 MB, drop: 15966125, 7691030 K
cpu5 stat: 3092238 86109483 18881798 [1.02], 0 263828 0 17774989, sock: 0 0 0, 0 K, traffic: 87216292, 73133 MB, drop: 17774989, 8569047 K
cpu6 stat: 45055804 1308927750 273327582 [1.02], 0 3574141 0 261494774, sock: 362734 20 0, 518596 K, traffic: 1320760558, 1091455 MB, drop: 261536040, 122787723 K
cpu7 stat: 3038166 84340143 18435019 [1.02], 0 254513 0 17298822, sock: 0 0 0, 0 K, traffic: 85476340, 71479 MB, drop: 17298822, 8345442 K
Protocol version 5 (netflow). Timeouts: active 1800s, inactive 15s. Maxflows 8388608
sock0: x.x.x.x:3090, sndbuf 124928, filled 1, peak 125529; err: sndbuf reached 20, connect 0, other 0
Трафика, как видно, до 4Gbit. Дроп нехилый. Куда копать?
p.s. пока писал, вылезли ошибки с sndbuf в messages. Увеличили вдвое.
Ситуация несколько изменилась. Но основная проблема не исчезла :(
Аптайм машины 6 минут.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17 root 20 0 0 0 0 R 99.3 0.0 4:08.86 ksoftirqd/3
35 root 20 0 0 0 0 S 5.0 0.0 0:11.79 events/0
38 root 20 0 0 0 0 S 0.7 0.0 0:01.52 events/3
4 root 20 0 0 0 0 S 0.3 0.0 0:00.62 ksoftirqd/0
1701 root 20 0 15028 1360 988 R 0.3 0.0 0:00.05 top
# cat /proc/net/stat/ipt_netflow
ipt_NETFLOW version 2.0, srcversion (null); aggr llist
Flows: active 599148 (peak 627646 reached 0d0h1m ago), mem 84255K, worker delay 1/1000 (0 ms, 0 us, 288:0 0 [0]).
Hash: size 33554432 (mem 262144K), metric 1.01 [1.00, 1.00, 1.00]. MemTraf: 101703658 pkt, 84540272 K (pdu 54, 8633), Out 76262730 pkt, 54314700 K.
Rate: 3496815744 bits/sec, 541951 packets/sec; Avg 1 min: 3451231576 bps, 539759 pps; 5 min: 3033944030 bps, 474634 pps
cpu# stat: <search found new [metric], trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total stat: 2533405 166755468 11210866 [1.01], 0 319949 0 0, sock: 353723 0 0, 505713 K, traffic: 177966334, 135600 MB, drop: 0, 0 K
cpu0 stat: 100198 6064573 432780 [1.01], 0 17496 0 0, sock: 353723 0 0, 505713 K, traffic: 6497353, 5109 MB, drop: 0, 0 K
cpu1 stat: 84733 5150951 370848 [1.01], 0 15036 0 0, sock: 0 0 0, 0 K, traffic: 5521799, 4291 MB, drop: 0, 0 K
cpu2 stat: 93071 5658780 405349 [1.01], 0 16395 0 0, sock: 0 0 0, 0 K, traffic: 6064129, 4726 MB, drop: 0, 0 K
cpu3 stat: 1884789 127550043 8401617 [1.01], 0 205825 0 0, sock: 0 0 0, 0 K, traffic: 135951660, 102809 MB, drop: 0, 0 K
cpu4 stat: 97883 5905317 422811 [1.01], 0 17302 0 0, sock: 0 0 0, 0 K, traffic: 6328128, 4946 MB, drop: 0, 0 K
cpu5 stat: 88348 5312464 381908 [1.01], 0 15564 0 0, sock: 0 0 0, 0 K, traffic: 5694372, 4433 MB, drop: 0, 0 K
cpu6 stat: 89846 5410288 388253 [1.01], 0 15567 0 0, sock: 0 0 0, 0 K, traffic: 5798541, 4509 MB, drop: 0, 0 K
cpu7 stat: 94537 5703060 407300 [1.01], 0 16764 0 0, sock: 0 0 0, 0 K, traffic: 6110360, 4773 MB, drop: 0, 0 K
Protocol version 5 (netflow). Timeouts: active 1800s, inactive 15s. Maxflows 8388608
sock0: x.x.x.x:3090, sndbuf 249856, filled 1, peak 17681; err: sndbuf reached 0, connect 0, other 0