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

Роутер FreeBSD 9.1

Добрый день!

Роутер работает, может 2-3 дня работать нормально, потом резко увеличивается нагрузка по прерываниям, елееле пропускает трафик, как следствие отваливается quagga

ОС: FreeBSD 9.1

uplink с 2х провайдеров в lagg0 (igb0+igb1)

downlink в lagg1 (em0+em1)

частота глюков не зависит ни от входящей/исходящей нагрузки по трафику.

На роутере quagga (2 fullview), nat в пул /27 (tablearg)

 

Может кто то даст какие либо мысли исходя из:

 

vmstat -m:

root@router:/usr/ports/net-mgmt # vmstat -m
        Type InUse MemUse HighUse Requests  Size(s)
      ctlmem  5062 10113K       -     5062  128,2048
      ctlblk   200  1600K       -      200
     ramdisk     1  4096K       -        1
     acpidev    52     4K       -       52  64
      isadev     9     2K       -        9  128
      kbdmux     7    18K       -        7  16,512,1024,2048
         LED     8     1K       -        8  16,128
        cdev     7     2K       -        7  256
     ctlpool   532   142K       -      532  32,512
       sigio     6     1K       -       11  64
    filedesc    54    27K       -   421738  32,512,4096
        kenv    81    11K       -       90  16,32,64,128
      kqueue    10    12K       -   185331  256,512,2048
   proc-args    36     3K       -  1149948  16,32,64,128,256
       hhook     2     1K       -        2  128
     ithread   158    24K       -      158  32,128,256
    pci_link    16     2K       -       16  64,128
   acpi_perf     8     4K       -        8  512
      KTRACE   100    13K       -      100  128
      linker   163    36K       -      177  16,32,64,128,256,512,2048,4096
       lockf    29     3K       -     1725  64,128
  loginclass     2     1K       -      623  64
        temp    90    15K       -   694520  16,32,64,128,256,512,1024,2048,4096
      devbuf  9337 43800K       -     9703  16,32,64,128,256,512,1024,2048,4096
      module   348    44K       -      348  128
    mtx_pool     2    16K       -        2
      USBdev    41     5K       -       41  64,128,512
         USB    66   150K       -       67  16,32,64,128,256,2048
    pmchooks     1     1K       -        1  128
     subproc   394   386K       -   355758  512,4096
        proc     2    16K       -        2
     session    24     3K       -    25763  128
        pgrp    26     4K       -    29780  128
        cred   142    23K       - 25044950  64,256
     uidinfo     6     3K       -     1956  128,2048
      plimit    15     4K       -     8277  256
CAM dev queue     6     1K       -        6  128
   sysctltmp     0     0K       -   558631  16,32,64,128,256,4096
   sysctloid  7553   377K       -     7713  16,32,64,128
      sysctl     0     0K       -   422311  16,32,64
     tidhash     1    16K       -        1
     callout     7  3584K       -        7
        umtx  1188   149K       -     1188  128
    p1003.1b     1     1K       -        1  16
        SWAP     2   549K       -        2  64
      bus-sc   139   410K       -     4850  16,32,64,128,256,512,1024,2048,4096
         bus  1112   110K       -   235870  16,32,64,128,256,1024,2048
     devstat     8    17K       -        8  32,4096
eventhandler    90     7K       -       90  64,128
     CAM XPT    47    27K       -      165  16,32,64,128,1024,2048
        kobj   222   888K       -      373  4096
     Per-cpu     1     1K       -        1  32
     ata_pci     2     1K       -        2  64
        rman   299    35K       -      705  16,32,128
      DEVFS1   103    52K       -      120  512
        sbuf     1     1K       -    89180  16,32,64,128,256,512,1024,2048,4096
      DEVFS3   125    32K       -      161  256
       stack     0     0K       -      684  256
   taskqueue    57     5K       -       57  16,32,128
      Unitno    14     1K       -   392084  32,64
         iov     0     0K       -   862019  16,32,64,128,256,512
      select   308    39K       -      308  128
    ioctlops     0     0K       -   134561  16,32,64,128,256,512,1024
         msg     4    30K       -        4  2048,4096
         sem     4   106K       -        4  2048,4096
         shm     7    32K       -     3755  2048
         tty    20    20K       -      742  1024,2048
         pts     1     1K       -        9  256
    mbuf_tag     0     0K       - 131438615  32,64,256
       shmfd     1     8K       -        1
         pcb    28   157K       -    95665  16,32,64,128,1024,2048,4096
      soname    10     1K       -  4335379  16,32,128
         acl     0     0K       -     1401  4096
    vfscache     1  2048K       -        1
  cl_savebuf     0     0K       -     1181  64
    vfs_hash     1  1024K       -        1
       DEVFS    23     1K       -       24  16,128
      vnodes     2     1K       -        5  64,256
      DEVFSP     0     0K       -        5  64
       mount    16     1K       -       86  16,32,64,128,256
 vnodemarker     0     0K       -     6928  512
         BPF    19     3K       -       44  16,128,512
 ether_multi    49     3K       -       62  16,64
      ifaddr   108    34K       -      108  32,512,4096
       ifnet    20    39K       -       21  128,256,2048
       clone     7    28K       -        7  4096
      arpcom     9     1K       -        9  16
     lltable    66    22K       -    11054  256,512
        vlan     6     1K       -        6  64,128
    routetbl 495883 15507K       -  8049399  32,64,128,256,512
netgraph_msg     0     0K       -       14  64,128,256,1024
netgraph_node    13     4K       -       26  128,256
netgraph_hook     6     1K       -        6  128
    netgraph    13  2053K       -       13  16,64,128
netgraph_ksock     1     1K       -        1  128
netgraph_parse     0     0K       -        2  16
        igmp    19     5K       -       19  256
 ip_moptions     2     1K       -        2  64,256
    in_multi     7     2K       -        7  256
  in_mfilter     1     1K       -        1  1024
    dummynet     3     3K       -        3  512,1024
    dummynet    30    10K       -  1227854  256,512
 IpFw/IpAcct    46     8K       -      237  16,32,64,128,256,512,1024
    ipfw_tbl   178    45K       -      403  256
   sctp_iter     0     0K       -        4  256
    sctp_ifn     6     1K       -        6  128
    sctp_ifa    37     5K       -       37  128
    sctp_vrf     1     1K       -        1  64
   sctp_a_it     0     0K       -        4  16
   hostcache     1    28K       -        1
    syncache     1    96K       -        1
    libalias 735259 93888K       - 230506024  128
     sctpnat    93  1240K       -       93
         rpc     2     1K       -        2  256
audit_evclass   179     6K       -      218  32
     jblocks     2     1K       -        2  128,256
    savedino     0     0K       -     1520  256
       sbdep     0     0K       -     3440  64
     jsegdep     8     1K       -    34160  64
        jseg    20     3K       -    14850  128
   jfreefrag     0     0K       -     4364  128
     jnewblk     0     0K       -    21559  128
      jmvref     0     0K       -       12  128
     jremref     0     0K       -     4098  128
     jaddref     0     0K       -     4139  128
     freedep     0     0K       -      109  64
    freework     2     1K       -     5602  32,128
   newdirblk     0     0K       -       65  64
      dirrem     0     0K       -     3976  128
       mkdir     0     0K       -      128  128
      diradd     0     0K       -     4011  128
    freefile     0     0K       -     1958  64
    freeblks     1     1K       -     3994  128
    freefrag     1     1K       -     4364  128
    indirdep     0     0K       -     1363  128
      newblk     5   129K       -    21560  256
   bmsafemap     3     9K       -     8579  256
    inodedep     3  1025K       -     9950  512
     pagedep     1   128K       -     1034  256
 ufs_dirhash  1500   353K       -     1503  16,32,64,128,256,512
   ufs_mount     3    21K       -        3  512,4096
   vm_pgdata     2   129K       -        2  128
     UMAHash     3    17K       -        8  512,1024,2048,4096
   pfs_nodes    21     6K       -       21  256
     memdesc     1     4K       -        1  4096
        GEOM    43     9K       -     3452  16,32,64,128,256,512,1024,2048
    atkbddev     2     1K       -        2  64
     entropy  1024    64K       -     1024  64
    acpiintr     1     1K       -        1  64
      acpica  5101   557K       -   812080  16,32,64,128,256,512,1024,2048,4096
    acpitask     1     2K       -        1  2048
   CAM queue    20     1K       -       96  16,32
      apmdev     1     1K       -        1  128
      feeder     7     1K       -        7  32
  madt_table     0     0K       -        1  4096
   raid_data     0     0K       -       90  32,128,256
     acpisem    18     3K       -       18  128
      qpidrv     1     1K       -        1  16
     CAM SIM     6     2K       -        6  256
     io_apic     1     2K       -        1  2048
md_nvidia_data     0     0K       -       15  512
         MCA    18     3K       -       18  64,128
         msi    24     3K       -       24  128
    nexusdev     4     1K       -        4  16
  CAM periph     4     1K       -       22  16,32,64,128,256
 md_sii_data     0     0K       -       15  512
netflow_hash     1  3072K       -        1
netflow_general     1     1K       -        1  256
netgraph_sock     0     0K       -       22  128
netgraph_path     0     0K       -       11  16

 

vmstat -z:

root@router:/usr/ports/net-mgmt # vmstat -z
ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP

UMA Kegs:               208,      0,      91,      11,      91,   0,   0
UMA Zones:             1408,      0,      91,       1,      91,   0,   0
UMA Slabs:              568,      0,    6423,       3,   10141,   0,   0
UMA RCntSlabs:          568,      0,   11978,       6,   11978,   0,   0
UMA Hash:               256,      0,       0,      15,       3,   0,   0
16 Bucket:              152,      0,     187,      13,     187,   0,   0
32 Bucket:              280,      0,     297,      11,     297,   1,   0
64 Bucket:              536,      0,     286,       1,     286, 237,   0
128 Bucket:            1048,      0,   13191,       0,   13191,3418,   0
VM OBJECT:              232,      0,   46993,    1903, 8892198,   0,   0
MAP:                    232,      0,       7,      25,       7,   0,   0
KMAP ENTRY:             120, 150629,      50,     911,   13583,   0,   0
MAP ENTRY:              120,      0,    1070,    3363,27882008,   0,   0
fakepg:                 120,      0,       0,       0,       0,   0,   0
mt_zone:               4112,      0,     333,      10,     333,   0,   0
16:                      16,      0,    3483,    1053, 2621681,   0,   0
32:                      32,      0,  168845,  332721,10714235,   0,   0
64:                      64,      0,    5837,    2619,15384054,   0,   0
128:                    128,      0,  660702,  124241,234395712,   0,   0
256:                    256,      0,     909,    1536,145570403,   0,   0
512:                    512,      0,    1497,    1079, 1643235,   0,   0
1024:                  1024,      0,      61,     391,  429536,   0,   0
2048:                  2048,      0,    5137,    1157,  132677,   0,   0
4096:                  4096,      0,     313,     457,  501360,   0,   0
Files:                   80,      0,     123,     822, 7661265,   0,   0
TURNSTILE:              136,      0,     595,     145,     595,   0,   0
umtx pi:                 96,      0,       0,       0,       0,   0,   0
MAC labels:              40,      0,       0,       0,       0,   0,   0
PROC:                  1184,      0,      53,     286,  355614,   0,   0
THREAD:                1128,      0,     457,     137,     457,   0,   0
SLEEPQUEUE:              80,      0,     595,     188,     595,   0,   0
VMSPACE:                392,      0,      36,     274,  355424,   0,   0
cpuset:                  72,      0,     138,      62,     154,   0,   0
audit_record:           960,      0,       0,       0,       0,   0,   0
mbuf_packet:            256,      0,   19008,    4416,6155966271,   0,   0
mbuf:                   256,      0,     142,    2804,6004654979,   0,   0
mbuf_cluster:          2048, 524288,   23424,       6,   23424,   0,   0
mbuf_jumbo_page:       4096,  12800,      12,     251,  164465,   0,   0
mbuf_jumbo_9k:         9216,   6400,       0,       0,       0,   0,   0
mbuf_jumbo_16k:       16384,   3200,       0,       0,       0,   0,   0
mbuf_ext_refcnt:          4,      0,       0,     672,      24,   0,   0
NetGraph items:          72,  65540,       0,     232,      24,   0,   0
NetGraph data items:     72,  65540,       1,     695,  225163,   0,   0
g_bio:                  232,      0,       0,    6352,  489755,   0,   0
ttyinq:                 160,      0,     180,     396,     795,   0,   0
ttyoutq:                256,      0,      95,     190,     415,   0,   0
ata_request:            328,      0,       0,     228,  163270,   0,   0
ata_composite:          336,      0,       0,       0,       0,   0,   0
VNODE:                  480,      0,   81600,     272,  796510,   0,   0
VNODEPOLL:              112,      0,       0,       0,       0,   0,   0
S VFS Cache:            108,      0,   60102,   27645,  539404,   0,   0
STS VFS Cache:          148,      0,       0,       0,       0,   0,   0
L VFS Cache:            328,      0,   24885,   11511,  288745,   0,   0
LTS VFS Cache:          368,      0,       0,       0,       0,   0,   0
NAMEI:                 1024,      0,       0,     228,15400420,   0,   0
DIRHASH:               1024,      0,    5835,     113,    5837,   0,   0
NCLNODE:                568,      0,       0,       0,       0,   0,   0
Mountpoints:            792,      0,       2,       8,       2,   0,   0
pipe:                   728,      0,       1,     219,  173033,   0,   0
ksiginfo:               112,      0,     329,     727,   20956,   0,   0
itimer:                 344,      0,       0,       0,       0,   0,   0
KNOTE:                  128,      0,      12,     597, 1042881,   0,   0
socket:                 680,  25602,      48,     294, 1320341,   0,   0
unpcb:                  240,  25600,      30,     370, 1005491,   0,   0
ipq:                     56,  16443,       2,     817,    6834,   0,   0
udp_inpcb:              392,  25600,       3,     257,  120252,   0,   0
udpcb:                   16,  25704,       3,    1341,  120252,   0,   0
tcp_inpcb:              392,  25600,      17,     753,  193952,   0,   0
tcpcb:                  976,  25600,      13,     211,  193952,   0,   0
tcptw:                   72,   5150,       4,     996,  162094,   0,   0
syncache:               152,  15375,       0,     375,  167992,   0,   0
hostcache:              136,  15372,       5,     275,      46,   0,   0
tcpreass:                40,  32844,       0,     756,     475,   0,   0
sackhole:                32,      0,       0,     505,       6,   0,   0
sctp_ep:               1376,  25600,       0,       0,       0,   0,   0
sctp_asoc:             2280,  40000,       0,       0,       0,   0,   0
sctp_laddr:              48,  80064,       0,     288,      36,   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:    112, 400026,       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,  25600,       1,     119,     626,   0,   0
rtentry:                200,      0,  124151,  332096, 2944516,   0,   0
IPFW dynamic rule:      120,      0,       0,       0,       0,   0,   0
divcb:                  392,  25600,       0,       0,       0,   0,   0
selfd:                   56,      0,     471,    1419,63958350,   0,   0
SWAPMETA:               288, 116519,       0,       0,       0,   0,   0
FFS inode:              168,      0,   81572,     422,  796445,   0,   0
FFS1 dinode:            128,      0,       0,       0,       0,   0,   0
FFS2 dinode:            256,      0,   81572,     493,  796444,   0,   0
NetFlow IPv4 cache:      88, 262160,       0,   41383,   42641,   0,   0

 

ipfw:

root@router:/usr/ports/net-mgmt # ipfw show
00005        635        100242 fwd 127.0.0.1,81 tcp from 172.16.0.0/16 to table(11) dst-port 80 in
00005          0             0 fwd 127.0.0.1,81 tcp from 10.1.0.0/16 to table(11) dst-port 80 in
00040  341889007  161876395028 allow ip from table(10) to any
00040  347049349  274047279431 allow ip from any to table(10)
00700 2531906895 1122393118392 nat tablearg ip from table(17) to any out
00800   17057919    1411615143 allow ip from table(14) to any out
00900 3155834296 3074908439384 nat tablearg ip from any to table(14) in
55000     246833      14353002 allow ip from any to any via lo0
65535 5605398849 4201104425474 allow ip from any to any

Подозреваю дело в NAT, но что именно крутить?

Edited by kirush

Share this post


Link to post
Share on other sites

Поделюсь в этой теме своими результатами. Около 1.9 Gbps в пике. Shaping + NAT +Firewall + терминация VLAN (около 600). Только ipfw.

 

# uname -a

FreeBSD router 9.2-STABLE FreeBSD 9.2-STABLE #0: Mon Dec  2 19:08:41 EET 2013 	root@router:/usr/obj/usr/src/sys/ROUTER  amd64

# grep -i cpu /var/run/dmesg.boot

CPU: Intel(R) Xeon(R) CPU   		X3450  @ 2.67GHz (2666.69-MHz K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs

 

Конфиг ядра:

# Custom parametrs
device      	lagg
device      	ichwd

options 		HZ=8000

options 		LIBALIAS
options 		IPFIREWALL
options 		IPFIREWALL_FORWARD
options 		IPFIREWALL_NAT
options 		DUMMYNET

options 		ZERO_COPY_SOCKETS
options 		ROUTETABLES=4
options 		PANIC_REBOOT_WAIT_TIME=16
options 		SC_DISABLE_REBOOT
options 		SC_HISTORY_SIZE=10000

 

ifconfig_igb0="-rxcsum -txcsum -tso -lro up"
ifconfig_igb1="-rxcsum -txcsum -tso -lro up"
ifconfig_igb2="-rxcsum -txcsum -tso -lro up"
ifconfig_igb3="-rxcsum -txcsum -tso -lro up"

 

 

# cat /boot/loader.conf

# Main
loader_logo="beastie"
autoboot_delay=3

# IGB tuning
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.rx_process_limit=4096
hw.igb.max_interrupt_rate=32000
hw.igb.enable_msix=1
hw.igb.lro=0
hw.igb.fc_setting=0

# EM tuning
hw.em.rxd=4096
hw.em.txd=4096
hw.em.rx_process_limit=4096
hw.em.rx_int_delay=200
hw.em.tx_int_delay=200
hw.em.rx_abs_int_delay=4000
hw.em.tx_abs_int_delay=4000
hw.em.enable_msix=1
hw.em.fc_setting=0

# IXBGE tuning
hw.ix.rxd=4096
hw.ix.txd=4096
hw.ix.num_queues=4
hw.ix.rx_process_limit=4096
hw.ix.tx_process_limit=4096
hw.ix.max_interrupt_rate=40000
hw.ix.lro=0
hw.ix.fc_setting=0
hw.ix.enable_msix=1

# Networking
net.isr.maxthreads=4
net.isr.bindthreads=1
net.inet.tcp.tcbhashsize=32768
net.link.ifqmaxlen=10240
net.isr.defaultqlimit=8192
net.inet.tcp.syncache.hashsize=4096
net.inet.tcp.syncache.bucketlimit=100

# HW
hw.intr_storm_threshold=9000

 

 

# cat /etc/sysctl.conf

 

# FlowControll OFF - igb, em, ix
dev.igb.0.fc=0
dev.igb.1.fc=0
dev.igb.2.fc=0
dev.igb.3.fc=0
dev.em.0.fc=0
dev.em.1.fc=0

# TCP/IP stack
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=1
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=0
net.inet.ip.redirect=0
net.inet.tcp.delayed_ack=0
net.inet.tcp.recvbuf_max=4194304
net.inet.tcp.sendbuf_max=4194304
net.inet.tcp.sack.enable=0
net.inet.tcp.drop_synfin=1
net.inet.tcp.nolocaltimewait=1
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.udp.recvspace=64080
net.inet.ip.rtmaxcache=1024
net.inet.ip.intr_queue_maxlen=5120
kern.ipc.nmbclusters=824288
kern.ipc.maxsockbuf=83886080
net.inet.tcp.recvspace=95536
net.inet.tcp.sendspace=95536
net.local.stream.recvspace=32768
net.local.stream.sendspace=32768
kern.ipc.somaxconn=32768
net.inet.tcp.maxtcptw=65535

# IPFW
net.inet.ip.fw.one_pass=1
net.inet.ip.fw.dyn_max=65535
net.inet.ip.fw.dyn_buckets=2048
net.inet.ip.fw.dyn_syn_lifetime=10
net.inet.ip.fw.dyn_ack_lifetime=120
net.inet.ip.fw.verbose=0

# Dummynet
net.inet.ip.dummynet.io_fast=1
net.inet.ip.dummynet.hash_size=65536
net.inet.ip.dummynet.pipe_slot_limit=1000

# ICMP
net.inet.icmp.icmplim=3000
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0

# /dev/random optimize networking
kern.random.sys.harvest.ethernet=0
kern.random.sys.harvest.point_to_point=0
kern.random.sys.harvest.interrupt=0

net.inet.raw.maxdgram=65534
net.inet.raw.recvspace=65534
net.raw.recvspace=65534
net.raw.sendspace=65534

net.route.netisr_maxqlen=8192
net.inet.ip.intr_queue_maxlen=10240
net.inet.ip.portrange.first=1024

 

 

# ipfw show

 

00101  	24814   	2384582 allow ip from any to any via lo0
00201 	262728  	13057576 deny tcp from any to not 10.100.104.6 dst-port 25,137-139,445
00241 1999061735  627713536264 nat tablearg ip from table(12) to not table(9) out xmit lagg1
00242 2788823848 3143366074955 nat tablearg ip from not table(9) to table(11) in recv lagg1
00251  291178711  212884946786 allow ip from any to any via lagg1
00255	7513725 	531692785 allow ip from table(2) to 10.100.104.0/21 via vlan*
00256	7355635	2235097939 allow ip from 10.100.104.0/21 to table(2) via vlan*
00261 	396678  	32698268 deny ip from table(2) to table(2)
00301   10089994	1070218474 allow ip from table(3) to table(3)
00401 	540457  	42705181 deny ip from any to 192.168.0.0/21
00441      	0 			0 allow ip from 192.168.104.8 80,443 to any via vlan*
00442      	3   		152 allow ip from any to 192.168.104.8 dst-port 80,443 via vlan*
00451  	11112    	701467 allow ip from table(8) to table(10) dst-port 80,443,53 in recv vlan*
00452  	11090   	5185957 allow ip from table(10) to table(8) out xmit vlan*
00471 	600846  	43057477 fwd 192.168.204.10 tcp from table(8) to not table(10) dst-port 80,443 in recv vlan*
00472 	710543  	64824528 allow tcp from any to table(8) src-port 80,443 out xmit vlan*
00901 2883353902 3299903223322 pipe tablearg ip from any to table(20) out xmit vlan*
00902 2110356757  671776115919 pipe tablearg ip from table(21) to any in recv vlan*
65535 	719976  	42232675 deny ip from any to any

 

 

# top -aSPHI

 

last pid:  4047;  load averages: 10.25, 10.63, 10.22                                                                                        	up 0+05:35:16  21:12:36
133 processes: 14 running, 87 sleeping, 32 waiting
CPU 0:  0.0% user,  0.0% nice, 12.5% system, 72.1% interrupt, 15.4% idle
CPU 1:  0.0% user,  0.0% nice, 10.6% system, 75.0% interrupt, 14.4% idle
CPU 2:  0.0% user,  0.0% nice,  7.7% system, 77.9% interrupt, 14.4% idle
CPU 3:  0.0% user,  0.0% nice, 12.5% system, 76.0% interrupt, 11.5% idle
Mem: 69M Active, 42M Inact, 512M Wired, 70M Buf, 7232M Free
Swap: 8192M Total, 8192M Free

 PID USERNAME   PRI NICE   SIZE	RES STATE   C   TIME   WCPU COMMAND
0 root   	-92	0 	0K   480K CPU2	2 110:17 42.63% [kernel{dummynet}]
  12 root   	-92	- 	0K   640K RUN 	3  57:00 25.73% [intr{irq277: igb2:que}]
  12 root   	-92	- 	0K   640K RUN 	3  56:25 23.34% [intr{irq282: igb3:que}]
  12 root   	-92	- 	0K   640K RUN 	0  56:54 23.29% [intr{irq279: igb3:que}]
  12 root   	-92	- 	0K   640K CPU2	2  54:11 22.75% [intr{irq276: igb2:que}]
  12 root   	-92	- 	0K   640K WAIT	2  54:34 22.12% [intr{irq281: igb3:que}]
  12 root   	-92	- 	0K   640K RUN 	0  56:14 21.29% [intr{irq274: igb2:que}]
  12 root   	-92	- 	0K   640K WAIT	1  55:47 20.90% [intr{irq280: igb3:que}]
  12 root   	-92	- 	0K   640K WAIT	1  54:16 19.78% [intr{irq275: igb2:que}]
  11 root   	155 ki31 	0K	64K RUN 	0 117:28 17.09% [idle{idle: cpu0}]
  12 root   	-92	- 	0K   640K WAIT	2  39:48 16.94% [intr{irq266: igb0:que}]
  12 root   	-92	- 	0K   640K WAIT	0  40:40 16.50% [intr{irq264: igb0:que}]
  11 root   	155 ki31 	0K	64K CPU1	1 110:02 15.97% [idle{idle: cpu1}]
  12 root   	-92	- 	0K   640K RUN 	1  39:26 15.48% [intr{irq265: igb0:que}]
  12 root   	-92	- 	0K   640K WAIT	1  41:18 15.43% [intr{irq270: igb1:que}]
  12 root   	-92	- 	0K   640K CPU3	3  40:11 15.04% [intr{irq272: igb1:que}]
  11 root   	155 ki31 	0K	64K RUN 	2 112:10 14.55% [idle{idle: cpu2}]
  12 root   	-92	- 	0K   640K RUN 	3  40:46 14.55% [intr{irq267: igb0:que}]
  12 root   	-92	- 	0K   640K WAIT	0  41:08 14.36% [intr{irq269: igb1:que}]
  12 root   	-92	- 	0K   640K WAIT	2  39:10 13.62% [intr{irq271: igb1:que}]
  11 root   	155 ki31 	0K	64K RUN 	3 108:29 13.53% [idle{idle: cpu3}]
8009 root    	20	0 33428K  8136K select  0   2:42  0.44% /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -r

 

 

# netstat -hw1

       	input    	(Total)   		output
  packets  errs idrops  	bytes	packets  errs  	bytes colls
 	764k 	0 	0   	547M   	804k 	2   	704M 	0
 	779k 	0 	0   	555M   	824k 	3   	720M 	0
 	785k 	0 	0   	564M   	829k 	1   	731M 	0
 	787k 	0 	0   	569M   	831k 	0   	735M 	0
 	785k 	0 	0   	568M   	833k 	0   	738M 	0
 	785k 	0 	0   	562M   	830k 	2   	728M 	0
 	762k 	0 	0   	549M   	806k 	0   	711M 	0

 

Edited by mlevel

Share this post


Link to post
Share on other sites

device lagg device ichwd

В ядре не нужны, прекрасно грузятся модулями из rc скрипта:

/etc/rc.conf[.local]

kld_list="smbus smb amdtemp amdsbwd if_em accf_dns accf_http cc_htcp" # Kernel modules to load after local disks are mounted

 

options DUMMYNET

Тоже можно грузить модулем.

 

options ZERO_COPY_SOCKETS

Больше нет такой опции.

 

net.isr.maxthreads=4

можно поставить 1024 или любое число больше ядер в системе система выставит количество ядер процов.

 

hw.em.rx_int_delay=200 hw.em.tx_int_delay=200 hw.em.rx_abs_int_delay=4000 hw.em.tx_abs_int_delay=4000

можно крутить через сисцтл.

Share this post


Link to post
Share on other sites

net.inet.tcp.
net.inet.udp.
net.raw.
net.inet.raw.
net.inet.icmp.
net.local.
kern.ipc.somaxconn=32768
kern.ipc.maxsockbuf=83886080
net.inet.ip.portrange.first=1024

Всё это на роутинг/нат не влияет, это настройки касающиеся трафика на саму систему.

Share this post


Link to post
Share on other sites

Подозреваю дело в NAT, но что именно крутить?

фря 9.2 работает примерно в таком же режиме, нат и т.д.

в определенное время (мониторю все ядра) возникает скачек нагрузки на одно два ядра, и через время проходит само собой.

из всего что мониторю, стейты в этот момент не увеличиваются, ппс и объем трафика такой же.

вываливал весь трафик по нетфлоу и отдельный файл и прогонял через функции libalias, в эти моменты хэш таблица назначений и источника определенной истансы разрастается не пропорционально. т.е. допустим в истанс 1 таблица размером 100-200, а 2ая 900 и выше. Увеличил размеры таблиц в либалиас по максимуму, проц до 100% взлетать перестал, анализ прекратил. Видимо реакция на торент или вирусы определенные, но явно функция расчета хэш не оптимальная. Наблюдая вижу также неравномерность но система не умирает по загрузке. Может у вас не так, но у меня так :)

руки не доходят посмотреть как контрэк в линухе описан, но явно получше чем во фряхе. Не обижайтесь, я сам обожаю фряху, но если кто-нибудь не перепишет ядро, либо не доработает netmap как nat сервер на большой нагрузке приходится жертвовать чем то.

Share this post


Link to post
Share on other sites

В 02 ночи по крону система запускает какие то свои скрипты для чего там, в мане наверное написано для чего, и они грузят систему. Это дефолтное поведение всех фрей.

Может у вас такие скачки нагрузки как раз из того что крон чего своё запускает для обслуживания системы?

 

Ядро переписывать не нужно, на самом деле.

Я иногда думаю попробовать свой ng_nat написать, только не знаю зачем мне это :)

Может соберусь, если не заморачиваться на всякие фтп, гре и прочее то там не сложно и за пару вечеров оно оживёт.

Ну и вопрос тестирования с нагрузками тоже будет актуален - где взять тестеров?

 

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

Share this post


Link to post
Share on other sites

Может у вас такие скачки нагрузки как раз из того что крон чего своё запускает для обслуживания системы?

увы нет. время не ноч, зависимости нет. самое сложное задание это бэкап сервера, длится 3 секунды.

Я иногда думаю попробовать свой ng_nat написать, только не знаю зачем мне это :)

Есть подозрение, что ng_nat будет грузить систему также, в принципе нат бсдевый те ноды и использует, разве что переписать в корне весь нат.

Пробывал подымать кучу нод для нарезки пользователям полисинга. Скажем так: поведение ну очень неадекватное системы. Ноды когда их много реагируют по разному и бывает просто не реагируют даже на управляющие команды, пару нод убил только выгрузив модуль ядра. Хотя может уже пропатчили, но пока забросил и не проверял больше.

Ну и вопрос тестирования с нагрузками тоже будет актуален - где взять тестеров?

фрибсд нагрузку могу потестировать до 1,5 гига трафика, остальное у меня на линухе, фряху 10ую не пробовал. Нет свободного сервера для внедрения в работающую систему. А модули потестить запросто. 10ку не пробовал, потому что помню тесты 9.1 release когда он вышел. Слетание маршрутов при использовании ПФ, и замена дефолтного маршрута на адрес сети из сети которая даже не принадлежит этому серверу, это была жесть и тот же пинг под 3к. Данный баг многие описали в мэйллисте, результат поправили через пол года и статус бага был не критичен, да и нетмап апи стали писать из-за того что в последнее время ну очень теряется производительность систем изза того что в ядре накручено. Раньше сказав "работает в ядре" звучало престижно, круто и быстро, сейчас смотрю модули юзерспейс как фри так и линуха уже по грамотней пишут

Share this post


Link to post
Share on other sites

options ZERO_COPY_SOCKETS

Больше нет такой опции.

 

На 9.2 в /usr/src/sys/amd64/conf/LINT есть же ?

 

cat /usr/src/sys/amd64/conf/LINT | grep ZERO_COPY
options ZERO_COPY_SOCKETS

 

И собирается с ней.

Share this post


Link to post
Share on other sites

Пардон, в девятке ещё есть.

В десятке уже нет: http://www.freebsd.org/cgi/man.cgi?query=zero_copy&apropos=0&sektion=0&manpath=FreeBSD+10-current&arch=default&format=html

Но смысла от неё для роутинга/ната точно нет, ибо до сокетов такой траф не долетает.

Share this post


Link to post
Share on other sites

Есть подозрение, что ng_nat будет грузить систему также, в принципе нат бсдевый те ноды и использует, разве что переписать в корне весь нат.

Если сяду то и будет с нуля, без всяких либалис и пр старого порно.

 

Пробывал подымать кучу нод для нарезки пользователям полисинга. Скажем так: поведение ну очень неадекватное системы. Ноды когда их много реагируют по разному и бывает просто не реагируют даже на управляющие команды, пару нод убил только выгрузив модуль ядра. Хотя может уже пропатчили, но пока забросил и не проверял больше.

Может памяти не хватало или система х32 - там не особо.

 

Данный баг многие описали в мэйллисте, результат поправили через пол года и статус бага был не критичен, да и нетмап апи стали писать из-за того что в последнее время ну очень теряется производительность систем изза того что в ядре накручено. Раньше сказав "работает в ядре" звучало престижно, круто и быстро, сейчас смотрю модули юзерспейс как фри так и линуха уже по грамотней пишут

Ситуация намного сложнее.

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

К сожалению, он оказался слишком хорош :)

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

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

Share this post


Link to post
Share on other sites

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

Если кастомное - то в нём не будет ничего лишнего, а всё что нужно (но не требуется для загрузки) можно подгрузить потом модулями.

Так же, это удобно если эксперементировать с кодом: пересобрал, выгрузил модуль, установил новый, загрузил - те не требуется пересобирать всё ядро и перезагружаться.

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

 

Я у вас с лоадера тоже полезного почерпнул :)

Share this post


Link to post
Share on other sites

Ivan_83, еще раз спасибо. Но как видно на пике уже начинаются ошибки в выводе netstat, наверное CPU слабоват. Поетому разделил нагрузку на два сервера.

Share this post


Link to post
Share on other sites

По старой доброй традиции "настоящиие фидошники сабжа не меняют" присоединюсь-ка к вашей беседе, коллеги.

 

Что-то стал озадачил меня сегодня вопрос, правильно ли, что мой сервер при 150 kpps NAT и shaping почти в полке по процессору и interrupts?

 

#uname -a

FreeBSD nata2 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014 	root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

 

 

# grep CPU /var/run/dmesg.boot| head -n 2

CPU: Intel(R) Xeon(R) CPU E31270 @ 3.40GHz (3392.36-MHz K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs

 

Ядро GENERIC

 

# cat /boot/loader.conf

 

 

 

autoboot_delay=1
hint.acpi_throttle.0.disabled=1
hint.p4tcc.0.disabled=1
hw.em.rx_process_limit=-1
hw.em.rxd=4096
hw.em.txd=4096
hw.igb.max_interrupt_rate=32000
hw.igb.rx_process_limit=-1
hw.igb.rxd=4096
hw.igb.txd=4096
net.graph.maxdata=16384
net.inet.ip.fw.default_to_accept=1
net.isr.bindthreads=1
net.isr.maxthreads=8
zfs_load="YES"

 

 

 

 

# cat /etc/sysctl.conf

 

dev.em.0.rx_processing_limit=1000
dev.em.1.rx_processing_limit=1000
dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096
dev.igb.2.rx_processing_limit=4096
dev.igb.3.rx_processing_limit=4096
kern.corefile="/var/tmp/%U/%N.core"
kern.ipc.maxsockbuf=2097152
kern.ipc.somaxconn=4096
kern.timecounter.hardware=HPET
net.inet.ip.dummynet.io_fast=1
net.inet.ip.fastforwarding=1
net.inet.ip.fw.dyn_buckets=262144
net.inet.ip.fw.dyn_max=800000
net.inet.ip.intr_queue_maxlen=3000
net.inet.ip.process_options=1
net.inet.ip.redirect=0
net.inet.tcp.blackhole=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.drop_synfin=1
net.inet.tcp.maxtcptw=65535
net.inet.tcp.recvspace=65228
net.inet.tcp.sendspace=65228
net.inet.tcp.syncookies=1
net.inet.udp.blackhole=1
net.inet.udp.maxdgram=57344
net.inet.udp.recvspace=65228
net.raw.recvspace=64000
net.raw.sendspace=64000

 

 

# ipfw show

 

  00010      5192   	376429 deny ip from any to any not verrevpath in via lagg0
00020 		0            0 count log ip from any to any not antispoof in
00100 	70540      5148299 allow ip from 109.71.176.0/24 to not 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16
00250   	212        17139 deny ip from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16 to 10.90.90.0/23,10.99.99.0/24,192.168.254.0/24
00300 	95161 	45519552 allow ip from 10.90.90.0/23,10.99.99.0/24,192.168.254.0/24 to 10.90.90.0/23,10.99.99.0/24,192.168.254.0/24
00500        60 		4224 allow ip from 10.78.76.0/24,10.78.77.0/24 to 10.78.76.0/24,10.78.77.0/24
00600    118873 	56413582 allow ip from 10.78.78.0/24 to any
00601 	87634      7038260 allow ip from any to 10.78.78.0/24
01200 		0            0 allow udp from 217.119.20.194 to me dst-port 161 keep-state // Allow TheDude SNMP queries
01460    205430 	11936724 allow ip from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16 to 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16,217.119.16.0/20,93.92.199.0/24,109.71.176.0/21 // Local traffic
01470 	43516 	18551835 allow ip from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16,217.119.16.0/20,93.92.199.0/24,109.71.176.0/21 to 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16,217.119.16.0/20,93.92.199.0/24,109.71.176.0/21 // Local traffic
01500 660116944 284369970248 skipto 3000 ip from table(1) to any // Skip deny rule by allowed ips
01550        90 		3864 allow ip from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16 to table(3) // Skip deny rule by always allowed destinations
01570 	36057      2575201 fwd 127.0.0.1,8080 tcp from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16 to any dst-port 80,443 { recv vlan22 or recv vlan21 } // Make redirect to blocked page
01600 	24334      1383896 deny ip from 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16 to not me in // Deny all another clients ips
01700   	343        20568 allow ip from me to any out setup keep-state // My traffic
02000 	14979   	909916 allow icmp from me to any icmptypes 0,3,4,8,11 // Allow ICMP
02000 		5          160 allow icmp from any to me icmptypes 0,3,4,8,11 // Allow ICMP
02300      3466   	233859 allow tcp from any 21 to me keep-state // Allow incoming FTP
02400 		0            0 unreach filter-prohib log ip from any to me { recv vlan22 or recv vlan21 }
02500 		0            0 fwd 127.0.0.1 tcp from table(2) to any dst-port 80 { recv vlan22 or recv vlan21 } // Make redirect to reminder page
03000 423761621 468751566967 pipe tablearg ip from any to table(4) { xmit vlan22 or xmit vlan21 } // Incoming traffic shaping
03000 328138569 142141315154 pipe tablearg ip from table(5) to any xmit lagg0 // Outgoing traffic shaping
03200 332595768 142457212601 allow ip from table(1) to any { recv vlan22 or recv vlan21 } // Allow nat client to go in
03500 442351736 471566195575 allow ip from any to 10.52.0.0/16,10.53.0.0/16,10.54.0.0/16,217.119.16.0/20,93.92.199.0/24,109.71.176.0/21 // Allow all to nat clients
65530      1925   	218915 unreach filter-prohib ip from any to any { recv vlan22 or recv vlan21 }
65530 		1   		96 deny ip from any to any
65535 		1   		96 allow ip from any to any 

 

 

 

# cat /etc/pf.conf

 


ext_if="lagg0"
int_if_1="vlan22"
int_if_2="vlan21"

dst_nat1="109.71.177.128/25"
dst_nat2="109.71.177.0/25"

table <src-nat> persist file "/etc/pf.src-nat"
table <our-nets> const { 80.249.176.0/20, 93.92.192.0/21, 109.71.176.0/21, 217.119.16.0/20 }
table <allowed-spammers> persist { 10.52.249.24 }

table <always_allowed_dst> persist { 84.204.97.154, 213.180.204.32, 195.95.218.31, 195.95.218.30 }

set limit { states 10000000, frags 800000, src-nodes 100000, table-entries 500000}
set state-policy if-bound
set optimization aggressive
set ruleset-optimization profile
set timeout { frag 10, tcp.established 3600, src.track 30 }
set block-policy drop
set fingerprints "/etc/pf.os"
set require-order no

set hostid 2

set skip on {lo0, em0, pfsync0}


table <spammers> persist
pass in quick on $int_if_1 proto tcp from <allowed-spammers> to any port smtp flags S/SAFR keep state
pass in quick on $int_if_2 proto tcp from <allowed-spammers> to any port smtp flags S/SAFR keep state
pass in on $int_if_1 proto tcp from any to any port smtp flags S/SAFR keep state \
               (max-src-conn 15, max-src-conn-rate 15/30, overload <spammers> flush global)
               block return-icmp (host-prohib) log quick proto tcp from <spammers> to any port smtp

pass in on $int_if_2 proto tcp from any to any port smtp flags S/SAFR keep state \
               (max-src-conn 15, max-src-conn-rate 15/30, overload <spammers> flush global)
               block return-icmp (host-prohib) log quick proto tcp from <spammers> to any port smtp


pass in quick on $int_if_1 all no state allow-opts tag NAT1 label "$nr:NAT1"
pass in quick on $int_if_2 all no state allow-opts tag NAT2 label "$nr:NAT2"

binat-anchor "binat"
load anchor "binat" from "/etc/pf.anchor.binat"
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if_1 proto tcp from <src-nat> to any port 21 -> 127.0.0.1 port 8021
rdr pass on $int_if_2 proto tcp from <src-nat> to any port 21 -> 127.0.0.1 port 8021
rdr pass on $ext_if proto udp from 109.71.176.3 to 109.71.176.2 port 4784 -> 10.78.76.2 port 4784

nat on $ext_if from <src-nat> to any tagged NAT1 -> $dst_nat1 static-port source-hash #sticky-address
nat on $ext_if from <src-nat> to any tagged NAT2 -> $dst_nat2 static-port source-hash #sticky-address
nat on $ext_if from any to <always_allowed_dst> -> $dst_nat1 static-port source-hash #sticky-address

binat on $ext_if from 10.78.78.2 to any -> 93.92.199.252

nat on $ext_if from 10.78.76.0/24 to any -> 109.71.176.2 static-port source-hash
nat on $ext_if from 10.78.77.0/24 to any -> 93.92.199.254
nat on $ext_if from 10.78.78.0/24 to any -> $dst_nat1 static-port source-hash

anchor "ftp-proxy/*"
pass out quick proto tcp from any to any port 21 no state

pass quick on $ext_if proto gre all no state

 

 

 

#cat /etc/rc.local

 

pfctl -d && pfctl -e


echo "Binding igb(4) IRQs to CPUs"
cpus=`sysctl -n kern.smp.cpus`
vmstat -ai | sed -E '/^irq.*que/!d; s/^irq([0-9]+): igb([0-9]+):que ([0-9]+).*/\1 \2 \3/' |\
while read irq igb que
 do
   cpuset -l $(( ($igb+$que) % $cpus )) -x $irq
 done

cpuset -l 0 -t $(procstat -t 0 | awk '/dummynet/ {print $2}')


kldload ipmi
kldload coretemp

 

 

 

# top -aSCHIP

 

last pid: 77009;  load averages: 10.38, 10.48,  9.99                                                                                                 				up 0+03:01:33  21:17:52
295 processes: 14 running, 246 sleeping, 35 waiting
CPU 0:  0.0% user,  0.0% nice, 32.5% system, 67.5% interrupt,  0.0% idle
CPU 1:  0.0% user,  0.0% nice,  0.0% system, 78.0% interrupt, 22.0% idle
CPU 2:  0.0% user,  0.0% nice,  0.0% system, 79.6% interrupt, 20.4% idle
CPU 3:  0.0% user,  0.0% nice,  1.2% system, 73.3% interrupt, 25.5% idle
Mem: 6756K Active, 35M Inact, 1270M Wired, 6598M Free
ARC: 759M Total, 228M MFU, 511M MRU, 121K Anon, 3520K Header, 16M Other
Swap: 4096M Total, 4096M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME 	CPU COMMAND
  11 root   	155 ki31 	0K    64K CPU3    3 142:46  30.27% [idle{idle: cpu3}]
  11 root   	155 ki31 	0K    64K RUN 	1 143:10  25.20% [idle{idle: cpu1}]
  11 root   	155 ki31 	0K    64K RUN 	2 142:18  25.10% [idle{idle: cpu2}]
  12 root   	-92    - 	0K   672K WAIT    1   9:03  21.68% [intr{irq265: igb0:que}]
  12 root   	-92    - 	0K   672K CPU3    3   9:51  21.19% [intr{irq279: igb3:que}]
  12 root   	-92    - 	0K   672K WAIT    2   8:52  20.65% [intr{irq282: igb3:que}]
  12 root   	-92    - 	0K   672K RUN 	0   8:20  20.36% [intr{irq264: igb0:que}]
  12 root   	-92    - 	0K   672K WAIT    2   9:16  19.97% [intr{irq266: igb0:que}]
  12 root   	-92    - 	0K   672K WAIT    1   8:42  19.38% [intr{irq277: igb2:que}]
  12 root   	-92    - 	0K   672K RUN 	0   7:40  19.38% [intr{irq280: igb3:que}]
  12 root   	-92    - 	0K   672K RUN 	0   8:24  18.99% [intr{irq272: igb1:que}]
  12 root   	-92    - 	0K   672K WAIT    1  10:12  18.90% [intr{irq269: igb1:que}]
   0 root   	-92    0 	0K  2976K CPU0    0  20:36  18.55% [kernel{dummynet}]
  12 root   	-92    - 	0K   672K WAIT    2   9:30  18.46% [intr{irq274: igb2:que}]
  12 root   	-92    - 	0K   672K WAIT    3   9:28  18.07% [intr{irq271: igb1:que}]
  12 root   	-92    - 	0K   672K RUN 	0   7:26  17.68% [intr{irq276: igb2:que}]
  12 root   	-92    - 	0K   672K WAIT    3   8:43  16.80% [intr{irq275: igb2:que}]
  12 root   	-92    - 	0K   672K RUN 	1   8:41  15.97% [intr{irq281: igb3:que}]
  12 root   	-92    - 	0K   672K WAIT    3   8:58  15.48% [intr{irq267: igb0:que}]
  12 root   	-92    - 	0K   672K RUN 	2   9:52  15.28% [intr{irq270: igb1:que}]
  11 root   	155 ki31 	0K    64K RUN 	0 128:46   6.79% [idle{idle: cpu0}]

 

 

# netstat -hw1

            input        (Total)   		output
  packets  errs idrops      bytes    packets  errs      bytes colls
     684K 	0 	0   	502M   	698K 	0   	590M 	0
     681K 	0 	0   	502M   	693K 	0   	590M 	0
     680K 	0 	0   	499M   	696K 	0   	593M 	0
     663K 	0 	0   	493M   	676K 	0   	577M 	0

 

 

# netstat -I lagg0 -dhw 1

 

 

            input        (lagg0)   		output
  packets  errs idrops      bytes    packets  errs      bytes colls drops
     158K 	0 	0   	164M   	121K 	0        53M 	0 	0
     162K 	0 	0   	168M   	121K 	0        55M 	0 	0
     164K 	0 	0   	172M   	121K 	0        54M 	0 	0
     158K 	0 	0   	162M   	122K 	0        58M 	0 	0

 

# systat -v 5

 

 

[b]
[/b]

  1 users    Load 12,19 11,10 10,50                  28 янв 21:29

Mem:KB    REAL            VIRTUAL                   	VN PAGER   SWAP PAGER
       Tot   Share      Tot    Share    Free       	in   out 	in   out
Act   49100    7156   641292 	8640 6746216  count
All  942968    8872   682764    34700          pages
Proc:                                                            Interrupts
 r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        ioflt 90325 total
        	26      120k  137  940  85k   66         	cow     	atkbd0 1
                                                         zfod      1 ehci0 16
8,8%Sys  72,6%Intr  0,0%User  0,0%Nice 18,5%Idle     	ozfod 	1 ehci1 23
|    |    |    |    |    |    |    |    |    |       	%ozfod  1126 cpu0:timer
====+++++++++++++++++++++++++++++++++++++             	daefr   363 igb0:que 0
                                      	dtbuf          prcfr  6257 igb0:que 1
Namei 	Name-cache   Dir-cache    213835 desvn   	94 totfr  7206 igb0:que 2
  Calls    hits   %    hits   % 	10401 numvn          react  6130 igb0:que 3
	140 	140 100                  9654 frevn          pdwak   	igb0:link
                                                       3 pdpgs  5980 igb1:que 0
Disks  ada0  ada1 pass0 pass1 pass2                   	intrn  7402 igb1:que 1
KB/t   8,06  7,94  0,00  0,00  0,00           	1309244 wire   6011 igb1:que 2
tps      14    14 	0 	0 	0                  7944 act 	356 igb1:que 3
MB/s   0,11  0,11  0,00  0,00  0,00             	36256 inact   	igb1:link
%busy 	0 	0 	0 	0 	0                   	cache  6117 igb2:que 0
                                                 6746216 free   8201 igb2:que 1
                                                         buf 	357 igb2:que 2
                                                            	8344 igb2:que 3
                                                                     igb2:link
                                                            	8696 igb3:que 0
                                                                 359 igb3:que 1
                                                            	7504 igb3:que 2
                                                            	6509 igb3:que 3
                                                                     igb3:link
                                                                   1 em0 284
                                                              	26 ahci0 288
                                                            	1126 cpu3:timer
                                                            	1126 cpu1:timer
                                                            	1126 cpu2:timer


 

 

 

Отдельно не понимаю, почему такое большое количество прерываний и context switching:

#systat -v 5

 

 

 


   1 users    Load 12,54 11,72 10,90                  28 янв 21:33

Mem:KB    REAL            VIRTUAL                   	VN PAGER   SWAP PAGER
       Tot   Share      Tot    Share    Free       	in   out 	in   out
Act   49064    7156   641292 	8640 6744992  count
All  943628    8920   682828    34748          pages
Proc:                                                            Interrupts
 r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        ioflt 89922 total
        	26      120k   23  119  85k   61         	cow     	atkbd0 1
                                                         zfod      1 ehci0 16
9,3%Sys  74,3%Intr  0,0%User  0,0%Nice 16,3%Idle     	ozfod 	1 ehci1 23
|    |    |    |    |    |    |    |    |    |       	%ozfod  1126 cpu0:timer
=====+++++++++++++++++++++++++++++++++++++                daefr   118 igb0:que 0
                                      	dtbuf          prcfr  6674 igb0:que 1
Namei 	Name-cache   Dir-cache    213835 desvn   	80 totfr  6398 igb0:que 2
  Calls    hits   %    hits   % 	10403 numvn          react  5951 igb0:que 3
     25      25 100                  9656 frevn          pdwak   	igb0:link
                                                       3 pdpgs  6220 igb1:que 0
Disks  ada0  ada1 pass0 pass1 pass2                   	intrn  6844 igb1:que 1
KB/t   7,83  7,83  0,00  0,00  0,00           	1310456 wire   6002 igb1:que 2
tps      14    14 	0 	0 	0                  7892 act 	118 igb1:que 3
MB/s   0,11  0,11  0,00  0,00  0,00             	36320 inact   	igb1:link
%busy 	1 	0 	0 	0 	0                   	cache  6219 igb2:que 0
                                                 6744992 free   8906 igb2:que 1
                                                         buf 	118 igb2:que 2
                                                            	9112 igb2:que 3
                                                                     igb2:link
                                                            	8496 igb3:que 0
                                                                 118 igb3:que 1
                                                            	7843 igb3:que 2
                                                            	6252 igb3:que 3
                                                                     igb3:link
                                                                   1 em0 284
                                                              	26 ahci0 288
                                                            	1126 cpu3:timer
                                                            	1126 cpu1:timer
                                                            	1126 cpu2:timer


 

Edited by Dyr

Share this post


Link to post
Share on other sites

ifconfig что пишет?

оффлоадинги лишние отключали на сетевушках?

пробовали заюзать обработку в ISR?

Пробовали фастфорвадинг?

Share this post


Link to post
Share on other sites

#ifconfig -a

 

 

igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500


       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d0
       inet6 fe80::a236:9fff:fe00:ed0%igb0 prefixlen 64 scopeid 0x1
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet 1000baseT <full-duplex>
       status: active
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d0
       inet6 fe80::a236:9fff:fe00:ed1%igb1 prefixlen 64 scopeid 0x2
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet 1000baseT <full-duplex>
       status: active
igb2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d3
       inet6 fe80::a236:9fff:fe00:ed2%igb2 prefixlen 64 scopeid 0x3
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet 1000baseT <full-duplex>
       status: active
igb3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d3
       inet6 fe80::a236:9fff:fe00:ed3%igb3 prefixlen 64 scopeid 0x4
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet 1000baseT <full-duplex>
       status: active
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
       ether 00:25:90:51:6f:e9
       inet 192.168.254.12 netmask 0xffffff00 broadcast 192.168.254.255
       inet6 fe80::225:90ff:fe51:6fe9%em0 prefixlen 64 scopeid 0x5
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect (1000baseT <full-duplex>)
       status: active
em1: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
       ether 00:25:90:51:6f:e8
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect
       status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
       options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
       inet6 ::1 prefixlen 128
       inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7
       inet 127.0.0.1 netmask 0xff000000
       nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d0
       inet 109.71.176.3 netmask 0xfffffffe broadcast 255.255.255.255
       inet6 fe80::a236:9fff:fe00:ed0%lagg0 prefixlen 64 scopeid 0x8
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect
       status: active
       laggproto lacp lagghash l2,l3,l4
       laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
       laggport: igb0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
       ether a0:36:9f:00:0e:d3
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect
       status: active
       laggproto lacp lagghash l2,l3,l4
       laggport: igb2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
       laggport: igb3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
vlan21: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=303<RXCSUM,TXCSUM,TSO4,TSO6>
       ether a0:36:9f:00:0e:d3
       inet 10.78.76.5 netmask 0xfffffffe broadcast 255.255.255.255
       inet6 fe80::a236:9fff:fe00:ed3%vlan21 prefixlen 64 scopeid 0xa
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect
       status: active
       vlan: 21 parent interface: lagg1
vlan22: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=303<RXCSUM,TXCSUM,TSO4,TSO6>
       ether a0:36:9f:00:0e:d3
       inet 10.78.76.3 netmask 0xfffffffe broadcast 255.255.255.255
       inet6 fe80::a236:9fff:fe00:ed3%vlan22 prefixlen 64 scopeid 0xb
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       media: Ethernet autoselect
       status: active
       vlan: 22 parent interface: lagg1


 

 

TSO на этом сервере не выключал, выключал на соседнем (полностью аналогичное железо, но включен HT в BIOS и FreeBSD 9.0-STABLE установлена). без видимых результатов. На соседнем же пробовал и fastforwarding, разницы не ощутил. Кстати, не напомнишь как просмотреть статистику, сколько через fastforward пролетело, а сколько мимо?

 

ISR не пробовал, сейчас на нём так:

 

#netstat -Q

 

 

Configuration:
Setting                        Current        Limit
Thread count                         4            4
Default queue limit                256        10240
Dispatch policy                 direct          n/a
Threads bound to CPUs          enabled          n/a

Protocols:
Name   Proto QLimit Policy Dispatch Flags
ip         1   3000   flow  default   ---
igmp       2    256 source  default   ---
rtsock     3    256 source  default   ---
arp        7    256 source  default   ---
ether      9    256 source   direct   ---
ip6       10    256   flow  default   ---

Workstreams:
WSID CPU   Name     Len WMark   Disp'd  HDisp'd   QDrops   Queued  Handled
  0   0   ip         0     1    71098        0        0        5    71103
  0   0   igmp       0     0        0        0        0        0        0
  0   0   rtsock     0     1        0        0        0       13       13
  0   0   arp        0     0      525        0        0        0      525
  0   0   ether      0     0 651488588        0        0        0 651488588
  0   0   ip6        0     0        0        0        0        0        0
  1   1   ip         0     1    50416        0        0        7    50423
  1   1   igmp       0     0        0        0        0        0        0
  1   1   rtsock     0     0        0        0        0        0        0
  1   1   arp        0     0       46        0        0        0       46
  1   1   ether      0     0 665653348        0        0        0 665653348
  1   1   ip6        0     0        0        0        0        0        0
  2   2   ip         0     1    78853        0        0        2    78855
  2   2   igmp       0     0        0        0        0        0        0
  2   2   rtsock     0     0        0        0        0        0        0
  2   2   arp        0     0       40        0        0        0       40
  2   2   ether      0     0 697791388        0        0        0 697791388
  2   2   ip6        0     0        0        0        0        0        0
  3   3   ip         0     2    42238        0        0      349    42587
  3   3   igmp       0     0        0        0        0        0        0
  3   3   rtsock     0     0        0        0        0        0        0
  3   3   arp        0     0       45        0        0        0       45
  3   3   ether      0     0 691545336        0        0        0 691545336
  3   3   ip6        0     0        0        0        0        0        0

 

 

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

тсо я бы по выключал.

Выше был толковый тюниг сетевух: http://forum.nag.ru/forum/index.php?showtopic=84027&view=findpost&p=911333

Ещё там экономия электричества случаем в биосе или поверд не активированы?

 

netstat -s -p ip

...

845776411 packets forwarded (0 packets fast forwarded)

...

Share this post


Link to post
Share on other sites

Меня во всех этих "толковых тюнингах" больше всего раздражает отсутствие чётких обьективных показателей, по которым бы можно было судить об их эффективности. За исключением совсем уж явных случаев - нехватки буферов, например. В общем и целом это напоминает шаманство в виде возведения деревянной вышки контроля АТС, если вы понимаете, о чём я.

Edited by Dyr

Share this post


Link to post
Share on other sites

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

 

Тюним hw.em. - получаем уменьшение прерываний и общее увеличение производительности сетевой подсистемы - чем не показатель эффективности?

Share this post


Link to post
Share on other sites

Тюним hw.em. - получаем уменьшение прерываний и общее увеличение производительности сетевой подсистемы - чем не показатель эффективности?

Это как раз одна из тех немногих крутилок, что имеют документацию (интеловскую) и мониторинг по ошибкам через sysctl dev.em. (и которая, если сузить речь о моей системе, уже сделано).

 

 

 

 

 

Share this post


Link to post
Share on other sites

2 Dyr

12 root -92 - 0K 672K RUN 0 8:20 20.36% [intr{irq264: igb0:que}]

12 root -92 - 0K 672K WAIT 2 9:16 19.97% [intr{irq266: igb0:que}]

12 root -92 - 0K 672K WAIT 1 8:42 19.38% [intr{irq277: igb2:que}]

12 root -92 - 0K 672K RUN 0 7:40 19.38% [intr{irq280: igb3:que}]

12 root -92 - 0K 672K RUN 0 8:24 18.99% [intr{irq272: igb1:que}]

12 root -92 - 0K 672K WAIT 1 10:12 18.90% [intr{irq269: igb1:que}]

12 root -92 - 0K 672K WAIT 2 9:30 18.46% [intr{irq274: igb2:que}]

12 root -92 - 0K 672K WAIT 3 9:28 18.07% [intr{irq271: igb1:que}]

12 root -92 - 0K 672K RUN 0 7:26 17.68% [intr{irq276: igb2:que}]

могу ошибаться, т.к. с 10 еще не работал, но из того, что видно похоже очереди не прибиты по прерываниям, а если и прибиты то не все. Отсюда как минимум неравномерная нагрузка на ядра

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.