Dyr Опубликовано 8 апреля, 2014 (изменено) · Жалоба Добрый день, коллеги и не только. Позволю себе обратиться к коллективному разуму. Имею, на мой взгляд, проблему, выражающуюся в недостаточной производительности NAT-серверов под FreeBSD. Все попытки тюнинга и отладки не помогают увеличить трафик более чем на, по прикидкам, процентов 10. "Раскачать" Фрю пытаюсь ещё с версии 8 под Core2Duo, но всё равно до сих пор ощущение недостаточной производительности. Сейчас в каждом из трёх моих серверов стоит Xeon E3-1270 под управлением FreeBSD 10.0-STABLE. Сетевые карты 82580(igb) и, на одном сервере, 82599(ix). Сервера выполняют NAT на базе pf, шейпирование на базе ipfw dummynet и генерацию netflow с помощью ipfw и ng_tee в ng_netflow. При 140Мбайт/сек и 130 Мппс/сек, соответственно, уже начинаются серьёзные "тормоза", связанные со стопроцентной загрузкой каждого ядра прерываниями от сетевых карт или net.isr (в зависимости от настройки, опишу ниже) и LA, соответственно, выходящим за пределы 4 для 4-ядерного процессора с отключенным HT. Что пытался сделать "по крупному". На одном из серверов перешёл с двух laggX, собранных из igb, и вланов на них, к десятигигабитной карте на 82599 и нетегированном трафике через него. Перешёл с FreeBSD 9 на FreeBSD 10 в связи с анонсированным переписыванием pf и давно ожидаемой работы оного в многопоточном режиме (попутно отловив любопытный баг в pf states благодаря @glebius). Отключал полностью ipfw. Всё напрасно, качественного скачка производительности не происходило. О "играх" с net.inet.ip.fastforwarding, net.isr.dispatch и т.п. я даже и не говорю. Пытался я разобраться и с помощью профилирования. К сожалению, моего опыта не хватает для полноценной работы с такими мощными инструментами, как pmstat и dtrace, пример их вывода приведён в конце поста. Перехожу к конкретным настройкам и показателям сервера. Скажем, с 10Гбит картой, сейчас, с небольшим трафиком в ~50Мбайт/сек sysctl.conf dev.em.0.fc=0 dev.em.0.rx_processing_limit=1000 dev.em.1.fc=0 dev.em.1.rx_processing_limit=1000 dev.ix.0.fc=0 dev.ix.1.fc=0 hw.intr_storm_threshold=12000 kern.corefile="/var/tmp/%U/%N.core" kern.ipc.maxsockbuf=2097152 kern.ipc.somaxconn=4096 kern.random.sys.harvest.ethernet=0 kern.random.sys.harvest.interrupt=0 kern.random.sys.harvest.point_to_point=0 kern.random.sys.harvest.swi=0 kern.timecounter.hardware=HPET net.inet.ip.dummynet.hash_size=8192 net.inet.ip.dummynet.io_fast=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.redirect=0 net.inet.ip.stealth=1 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.tcp.tso=0 net.inet.udp.blackhole=1 net.inet.udp.maxdgram=57344 net.inet.udp.recvspace=65228 net.raw.recvspace=64000 net.raw.sendspace=64000 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.ix.num_queues=3 hw.ix.rx_process_limit=-1 hw.ix.rxd=4096 hw.ix.tx_process_limit=-1 hw.ix.txd=4096 hw.ixgbe.num_queues=3 hw.ixgbe.rx_process_limit=-1 hw.ixgbe.rxd=4096 hw.ixgbe.tx_process_limit=-1 hw.ixgbe.txd=4096 hw.vga.textmode=1 mga_load="YES" net.graph.maxdata=16384 net.inet.ip.fw.default_to_accept=1 net.inet.tcp.hostcache.cachelimit=0 net.isr.bindthreads=1 net.isr.defaultqlimit=1024 net.isr.maxthreads=128 net.pf.source_nodes_hashsize=81920 net.pf.states_hashsize=327680 pf_load="YES" # packet filter zfs_load="YES" pfctl -si root@nata1:/usr/home/dyr (23132) pfctl -si No ALTQ support in kernel ALTQ related functions disabled Status: Enabled for 0 days 19:12:00 Debug: Urgent State Table Total Rate current entries 64636 searches 18537839541 268197.9/s inserts 125193861 1811.3/s removals 125134300 1810.4/s Counters match 9411244729 136158.1/s bad-offset 0 0.0/s fragment 338 0.0/s short 650 0.0/s normalize 0 0.0/s memory 0 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 1212 0.0/s proto-cksum 0 0.0/s state-mismatch 626712 9.1/s state-insert 1269 0.0/s state-limit 0 0.0/s src-limit 0 0.0/s synproxy 0 0.0/s root@nata1:/usr/home/dyr (23133) sysctl net.ix.0|fgrep -v ': 0' dev.ix.0.%desc: Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15 dev.ix.0.%driver: ix dev.ix.0.%location: slot=0 function=0 dev.ix.0.%pnpinfo: vendor=0x8086 device=0x10fb subvendor=0x8086 subdevice=0x0003 class=0x020000 dev.ix.0.%parent: pci2 dev.ix.0.enable_aim: 1 dev.ix.0.link_irq: 5911 dev.ix.0.queue0.interrupt_rate: 500000 dev.ix.0.queue0.irqs: 1718610612 dev.ix.0.queue0.txd_head: 1604 dev.ix.0.queue0.txd_tail: 1614 dev.ix.0.queue0.tx_packets: 3090264050 dev.ix.0.queue0.rxd_head: 3162 dev.ix.0.queue0.rxd_tail: 3161 dev.ix.0.queue0.rx_packets: 3157400666 dev.ix.0.queue0.rx_bytes: 2561912049813 dev.ix.0.queue0.rx_copies: 1382007822 dev.ix.0.queue1.interrupt_rate: 26315 dev.ix.0.queue1.irqs: 1679256836 dev.ix.0.queue1.txd_head: 1491 dev.ix.0.queue1.txd_tail: 1491 dev.ix.0.queue1.tx_packets: 3012775640 dev.ix.0.queue1.rxd_head: 1045 dev.ix.0.queue1.rxd_tail: 1043 dev.ix.0.queue1.rx_packets: 3080709140 dev.ix.0.queue1.rx_bytes: 2498049337717 dev.ix.0.queue1.rx_copies: 1347550640 dev.ix.0.queue2.interrupt_rate: 500000 dev.ix.0.queue2.irqs: 1679031621 dev.ix.0.queue2.txd_head: 231 dev.ix.0.queue2.txd_tail: 231 dev.ix.0.queue2.tx_packets: 3042106788 dev.ix.0.queue2.rxd_head: 473 dev.ix.0.queue2.rxd_tail: 472 dev.ix.0.queue2.rx_packets: 3108700633 dev.ix.0.queue2.rx_bytes: 2526465969896 dev.ix.0.queue2.rx_copies: 1354247978 dev.ix.0.mac_stats.local_faults: 8 dev.ix.0.mac_stats.remote_faults: 1 dev.ix.0.mac_stats.total_octets_rcvd: 7661137735622 dev.ix.0.mac_stats.good_octets_rcvd: 7661134492076 dev.ix.0.mac_stats.total_pkts_rcvd: 9346739559 dev.ix.0.mac_stats.good_pkts_rcvd: 9346723529 dev.ix.0.mac_stats.mcast_pkts_rcvd: 33023 dev.ix.0.mac_stats.bcast_pkts_rcvd: 300 dev.ix.0.mac_stats.rx_frames_64: 1177914004 dev.ix.0.mac_stats.rx_frames_65_127: 2712448594 dev.ix.0.mac_stats.rx_frames_128_255: 285974221 dev.ix.0.mac_stats.rx_frames_256_511: 134374175 dev.ix.0.mac_stats.rx_frames_512_1023: 220888076 dev.ix.0.mac_stats.rx_frames_1024_1522: 4815132083 dev.ix.0.mac_stats.checksum_errs: 139958192 dev.ix.0.mac_stats.good_octets_txd: 7577920974112 dev.ix.0.mac_stats.total_pkts_txd: 9145061047 dev.ix.0.mac_stats.good_pkts_txd: 9145061043 dev.ix.0.mac_stats.bcast_pkts_txd: 144 dev.ix.0.mac_stats.mcast_pkts_txd: 1 dev.ix.0.mac_stats.tx_frames_64: 1176790855 dev.ix.0.mac_stats.tx_frames_65_127: 2570149826 dev.ix.0.mac_stats.tx_frames_128_255: 277634744 dev.ix.0.mac_stats.tx_frames_256_511: 133774126 dev.ix.0.mac_stats.tx_frames_512_1023: 218495272 dev.ix.0.mac_stats.tx_frames_1024_1522: 4768216225 netstat -I vlan11 -dhw 1 root@nata1:/usr/home/dyr (23134) netstat -I vlan11 -dhw 1 input vlan11 output packets errs idrops bytes packets errs bytes colls drops 43K 0 0 29M 47K 0 42M 0 44K 0 0 31M 49K 0 42M 0 42K 0 0 29M 48K 0 43M 0 42K 0 0 31M 47K 0 40M 0 42K 0 0 31M 46K 0 40M 0 44K 0 0 28M 48K 0 44M 0 42K 0 0 28M 47K 0 42M 0 ^C top -aSCHIP last pid: 66303; load averages: 1.25, 1.22, 1.29 up 1+21:53:33 20:56:56 278 processes: 8 running, 242 sleeping, 1 zombie, 27 waiting CPU 0: 0.0% user, 0.0% nice, 13.4% system, 29.4% interrupt, 57.2% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 33.3% interrupt, 66.7% idle CPU 2: 0.0% user, 0.0% nice, 0.5% system, 42.8% interrupt, 56.7% idle CPU 3: 0.0% user, 0.0% nice, 2.0% system, 6.0% interrupt, 92.0% idle Mem: 5352K Active, 213M Inact, 5423M Wired, 2904K Cache, 2277M Free ARC: 3565M Total, 1787M MFU, 1457M MRU, 1040K Anon, 60M Header, 261M Other Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 3 33.9H 100.00% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K CPU1 1 33.4H 75.49% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU0 0 41.4H 73.39% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K CPU2 2 33.7H 69.58% [idle{idle: cpu2}] 12 root -72 - 0K 464K WAIT 2 16:15 32.28% [intr{swi1: netisr 2}] 12 root -72 - 0K 464K CPU0 0 14:57 31.05% [intr{swi1: netisr 0}] 12 root -72 - 0K 464K CPU1 1 16:05 26.56% [intr{swi1: netisr 1}] 12 root -92 - 0K 464K WAIT 3 695:50 3.56% [intr{irq266: ix0:que }] 12 root -92 - 0K 464K WAIT 1 710:10 3.37% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 2 691:10 2.98% [intr{irq265: ix0:que }] 12 root -60 - 0K 464K WAIT 2 28:27 0.10% [intr{swi4: clock}] Профилирование: # pmcstat -S instructions -O /tmp/sample.out & # sleep 30 && killall pmcstat # pmcstat -R /tmp/sample.out -g && gprof -l -K INSTR_RETIRED_ANY/kernel |head -n 60 | tail -n 25 time is in ticks, not seconds granularity: each sample hit covers 4 byte(s) for 0.00% of 1585953.00 seconds % cumulative self self total time seconds seconds calls ms/call ms/call name 19.6 311393.00 311393.00 42710 7290.87 12981.61 ipfw_chk [9] 8.6 447664.00 136271.00 116269 1172.03 1172.03 rn_match [17] 8.5 582786.00 135122.00 20129 6712.80 7888.93 sched_idletd [15] 5.1 664060.00 81274.00 0 100.00% fsk_match [24] 4.7 737889.00 73829.00 74322 993.37 1045.37 __mtx_lock_sleep [25] 3.2 788562.00 50673.00 45306 1118.46 1118.46 __rw_rlock [31] 2.4 827071.00 38509.00 19520 1972.80 1972.80 bzero [35] 2.2 861608.00 34537.00 29790 1159.35 1159.35 _rw_runlock_cookie [37] 2.1 895222.00 33614.00 33741 996.24 1003.90 dn_ht_find [38] 1.4 917849.00 22627.00 21460 1054.38 1344.01 uma_zalloc_arg <cycle 4> [41] 1.3 938280.00 20431.00 33574 608.54 905.65 uma_zfree_arg <cycle 4> [39] 1.3 958563.00 20283.00 20283 1000.00 1000.00 cpu_search [53] 1.3 978659.00 20096.00 82846 242.57 1571.22 ipfw_lookup_table [18] 1.1 996646.00 17987.00 7330 2453.89 2453.89 bcopy [56] 1.1 1013947.00 17301.00 7731 2237.87 2237.87 bcmp [58] 1.0 1030179.00 16232.00 8505 1908.52 9685.89 ixgbe_rxeof [23] 0.9 1044990.00 14811.00 51153 289.54 10881.66 ip_output [8] 0.9 1059296.00 14306.00 24481 584.37 590.02 dn_ht_scan_bucket <cycle 3> [63] 0.8 1072312.00 13016.00 8671 1501.10 2631.55 ixgbe_xmit [49] 0.8 1085287.00 12975.00 82846 156.62 1328.65 rn_lookup [19] hotkernel -m Sampling... Hit Ctrl-C to end. ^C MODULE COUNT PCNT zfs.ko 4 0.0% ng_ipfw.ko 86 0.1% netgraph.ko 188 0.2% ng_netflow.ko 626 0.6% pf.ko 2789 2.8% kernel 96396 96.3% hotkernel ^C FUNCTION COUNT PCNT ... pf.ko`pf_match_translation 452 0.8% kernel`__rw_rlock 489 0.9% kernel`bcmp 547 1.0% kernel`spinlock_exit 731 1.3% kernel`dn_ht_find 861 1.5% kernel`__mtx_lock_sleep 921 1.6% kernel`ipfw_chk 1322 2.4% kernel`rn_match 1727 3.1% kernel`fsk_match 2074 3.7% kernel`cpu_idle 13256 23.7% kernel`sched_idletd 25931 46.3% # dtrace -n 'sched:::on-cpu { @[execname] = count(); } profile:::tick-20s { exit(0); }' dtrace: description 'sched:::on-cpu ' matched 2 probes CPU ID FUNCTION:NAME 3 32261 :tick-20s accounting 2 enc_daemon0 5 bufdaemon 20 softdepflush 21 pagedaemon 25 vnlru 27 dtrace 87 syncer 159 zfskern 196 usb 207 rand_harvestq 227 ftp-proxy 342 cam 352 atop 448 snmpd 696 pf purge 847 ng_queue 1691 kernel 39414 idle 1204119 intr 1681222 Куда смотреть? Что ещё профилировать? Или я действительно упираюсь в предел производительности железа на пресловутых 150 Мбайт/сек NAT-трафика? Изменено 11 апреля, 2014 пользователем Dyr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 8 апреля, 2014 (изменено) · Жалоба CPU E5-2430 0 @ 2.20GHz Freebsd 9.2 PF_nat и только , карты Intel 82599 X520-da2 , помер на 1 гбит, прерывания в 100 процентов, вообще попа полная была. Срулил на debian в него приходит 2 алпинка по 10 гбит, уходит на 3420-28tc по 10 гбит. Роль нат сервера. Шейпер , netflow, PPPoE на отдельных машинах (Freebsd). Попробуйте для начала, вынести nat и netflow на отдельную машину с Debian увидите разницу P.S. шас натит 3.7 гбит входи и 1 гбит на выход, не > 40- прцентов по прерываиям Изменено 8 апреля, 2014 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 8 апреля, 2014 · Жалоба roysbike, спасибо за совет, в принципе, к этому и склоняюсь. Но как бы это сказать...обидно уйти на другую ось, не понимая, в чём затык этой. Кстати, шейпинг и нетфлоу у меня очень мало нагружают сервер в обычных (не 64-байтный шторм hping'ом на rand destination с 500 kpps ;) ) условиях. Это видно и из профайлинга, и из опыта отключения ipfw вовсе: нагрузка на процессор возрастает пропорционально увеличению трафика за счёт отключения шейпера и только. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 8 апреля, 2014 · Жалоба Не видно netstat -m Почитайте статьи Евгения Гроссбейна (dadv) по тюнингу. Я уже вижу, что у вас многие вещи выставлены чуть больше дефолтных. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 8 апреля, 2014 · Жалоба P.S. шас натит 3.7 гбит входи и 1 гбит на выход, не > 40- прцентов по прерываиям PPS еще приведите. У меня клиент поснимал маршрутизатор на дебиан после проблем ~ 2Гбит. Сейчас у него (~4Гбит) принимает траффик D-Link DES-7210, отдают 4 гейта на Дебиане. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 8 апреля, 2014 (изменено) · Жалоба Не видно netstat -m netstat -m 29368/9512/38880 mbufs in use (current/cache/total) 29340/3286/32626/507000 mbuf clusters in use (current/cache/total/max) 29340/3285 mbuf+clusters out of packet secondary zone in use (current/cache) 0/58/58/253499 4k (page size) jumbo clusters in use (current/cache/total/max) 0/0/0/75111 9k jumbo clusters in use (current/cache/total/max) 0/0/0/42249 16k jumbo clusters in use (current/cache/total/max) 66193K/9182K/75375K 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 requests for sfbufs denied 0 requests for sfbufs delayed 1 requests for I/O initiated by sendfile vmstat -m Type InUse MemUse HighUse Requests Size(s) ip6ndp 17 2K - 24 64,128 kbdmux 7 18K - 7 16,512,1024,2048 module 243 31K - 243 128 mtx_pool 3 18K - 3 2048 LED 24 2K - 24 16,128 osd 5 1K - 115 16,32,64 pmchooks 1 1K - 1 128 CAM DEV 10 20K - 18 2048 pgrp 25 4K - 8764 128 session 22 3K - 7629 128 proc 2 32K - 2 subproc 161 263K - 775402 512,4096 cred 96 15K - 5833208 64,256 plimit 17 5K - 84581 256 uidinfo 5 5K - 1987 128,4096 acpitask 1 8K - 1 raid_data 0 0K - 180 32,128,256 acpisem 25 4K - 25 128 CAM CCB 0 0K - 2524731 2048 acpidev 38 3K - 38 64 CAM path 13 1K - 69 32 sysctl 0 0K - 2078013 16,32,64 sysctloid 5135 255K - 5418 16,32,64,128 sysctltmp 0 0K - 6597 16,32,64,128,2048 tidhash 1 32K - 1 callout 5 2184K - 5 umtx 720 90K - 720 128 p1003.1b 1 1K - 1 16 SWAP 4 553K - 4 64 bus 675 61K - 3991 16,32,64,128,256,1024 bus-sc 66 202K - 1323 16,32,64,128,256,512,1024,2048,4096 entropy 1026 65K - 6813 32,64,4096 devstat 14 29K - 14 32,4096 eventhandler 113 10K - 113 64,128 kobj 127 508K - 409 4096 CAM periph 8 2K - 21 16,32,64,128,256 Per-cpu 1 1K - 1 32 UART 9 7K - 9 16,1024 CAM queue 17 6K - 44 16,32,512 rman 231 27K - 617 32,128 sbuf 1 1K - 2106 16,32,64,128,256,512,1024,2048,4096 CAM dev queue 7 1K - 7 64 stack 0 0K - 6 256 taskqueue 115 17K - 159 16,32,64,128,256 Unitno 26 2K - 1615944 32,64 vmem 2 640K - 8 ioctlops 0 0K - 10149782 16,32,64,128,256,512,1024,2048,4096 select 74 10K - 74 128 iov 0 0K - 784793 16,64,128,256,512 msg 4 30K - 4 2048,4096 sem 4 106K - 4 2048,4096 shm 1 20K - 1 tty 21 21K - 33 1024,2048 pts 1 1K - 7 256 mbuf_tag 543 136K - 17757659536 32,64,256 shmfd 1 8K - 1 soname 3 1K - 1563540 16,32,128 pcb 27 1029K - 117077 16,32,64,1024,2048 md_nvidia_data 0 0K - 30 512 acl 0 0K - 563 4096 vfscache 1 2048K - 1 vfs_hash 1 1024K - 1 vnodes 1 1K - 1 256 mount 116 4K - 311 16,32,64,128,256 vnodemarker 0 0K - 118983 512 BPF 9 2K - 23 16,128,512,4096 md_sii_data 0 0K - 30 512 ifnet 10 19K - 10 128,2048 ifaddr 107 29K - 119 32,64,128,256,512,2048,4096 ether_multi 186 11K - 230 16,32,64 clone 5 1K - 5 128 arpcom 7 1K - 7 16 gif 1 1K - 1 256 lltable 37 14K - 124 256,512 vlan 20 2K - 65 64,128 SCSI ENC 25 100K - 25200 16,64,256,2048 CAM SIM 7 2K - 7 256 USB 37 51K - 43 16,32,128,256,512,1024,2048,4096 USBdev 31 8K - 31 32,64,128,256,512,4096 routetbl 11863 4442K - 196628 32,64,128,256,512 igmp 9 3K - 9 256 in_multi 6 2K - 6 256 acpiintr 1 1K - 1 64 pci_link 16 2K - 16 64,128 hostcache 1 28K - 1 syncache 1 64K - 1 in6_multi 91 12K - 91 32,256 mld 9 2K - 9 128 DEVFS3 159 40K - 210 256 dummynet 17931 4488K - 17954 256,512,1024,2048,4096 dummynet 36523 13780K - 74742384 16,256,512 DEVFS1 133 67K - 165 512 IpFw/IpAcct 37 40K - 68 16,32,64,128,256,1024 ipfw_tbl 12858 3215K - 12931 256 audit_evclass 187 6K - 228 32 vm_pgdata 3 1025K - 3 128 UMAHash 47 849K - 162 512,1024,2048,4096 isadev 7 1K - 7 128 DEVFS 18 1K - 25 16,32,128 DEVFSP 1 1K - 129 64 cdev 8 2K - 8 256 fpukern_ctx 4 4K - 4 1024 memdesc 1 4K - 1 4096 pfs_nodes 21 6K - 21 256 filedesc 112 179K - 776573 16,32,2048,4096 atkbddev 1 1K - 1 64 sigio 2 1K - 2 64 filecaps 0 0K - 12 64 kdtrace 387 87K - 775905 64,256 kenv 104 12K - 116 16,32,64,128 kqueue 5 5K - 599 64,256,512,2048 proc-args 28 2K - 811531 16,32,64,128,256 apmdev 1 1K - 1 128 madt_table 0 0K - 1 4096 hhook 2 1K - 2 256 ithread 133 22K - 133 32,128,256 GEOM 92 17K - 1267 16,32,64,128,256,512,1024,2048 KTRACE 100 13K - 100 128 io_apic 1 2K - 1 2048 acpica 3352 337K - 65843 16,32,64,128,256,512,1024,2048 MCA 14 2K - 14 32,128 linker 585 1023K - 922 16,32,64,128,256,512,1024,2048,4096 CAM XPT 33 3K - 185 16,32,64,128,256,512,1024,2048 msi 21 3K - 21 128 nexusdev 5 1K - 5 16 lockf 17 2K - 552747 64,128 loginclass 3 1K - 6478 64 devbuf 17750 61975K - 18032 16,32,64,128,256,512,1024,2048,4096 temp 55 20K - 7380156 16,32,64,128,256,512,1024,2048,4096 solaris 526480 90749K - 56470727 16,32,64,128,256,512,1024,2048,4096 rpc 1 1K - 1 512 pf_temp 0 0K - 1961 128 pf_hash 3 2880K - 3 pf_ifnet 14 6K - 485752 256,2048 pf_osfp 1110 114K - 1110 64,128 pf_tag 2 1K - 2 128 pf_rule 2971 1680K - 1074443 128,1024 pf_table 6 12K - 3953 2048 kstat_data 6 1K - 6 64 netgraph_node 5 1K - 17 128,256 netgraph 5 2053K - 5 16,128 netgraph_msg 0 0K - 19 64,128,256,512,1024 netgraph_hook 6 1K - 6 128 netgraph_parse 0 0K - 2 16 netgraph_path 0 0K - 15 16 netgraph_sock 0 0K - 24 128 netflow_hash 2 6144K - 2 netflow_general 1 1K - 1 256 netgraph_ksock 1 1K - 1 128 ipmi 0 0K - 161 128,2048 crypto 1 1K - 1 512 xform 6 1K - 86642 16,32,64,128,256,512,1024,2048,4096 aesni_data 4 4K - 4 1024 pmc 127 685K - 194 16,32,128,256,512,1024,2048,4096 cyclic 16 2K - 60 16,32,64,128 fbt 30730 4098K - 30730 128 SDT 20 1K - 20 16,64 vmstat -z| grep -v ' 0, 0 ITEM SIZE LIMIT USED FREE REQ FAIL SLEEP 16 Bucket: 128, 0, 175, 693, 124722, 11, 0 32 Bucket: 256, 0, 6208, 3227, 3890337, 60, 0 64 Bucket: 512, 0, 2123, 1573, 1065010, 222, 0 vmem btag: 56, 0, 68359, 156, 68423, 965, 0 Почитайте статьи Евгения Гроссбейна (dadv) по тюнингу.Я уже вижу, что у вас многие вещи выставлены чуть больше дефолтных. Читал. И многие значения выставлены сообразно моему пониманию в том числе и его советов. Изменено 8 апреля, 2014 пользователем Dyr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 8 апреля, 2014 (изменено) · Жалоба P.S. шас натит 3.7 гбит входи и 1 гбит на выход, не > 40- прцентов по прерываиям PPS еще приведите. У меня клиент поснимал маршрутизатор на дебиан после проблем ~ 2Гбит. Сейчас у него (~4Гбит) принимает траффик D-Link DES-7210, отдают 4 гейта на Дебиане. 450K PPS Изменено 8 апреля, 2014 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 8 апреля, 2014 · Жалоба 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.tcp.tso=0 Насчёт последнего параметра я не уверен, остальные точно касаются только TCP трафика самого хоста и не применяются к транзитному. mga_load="YES" pf_load="YES" # packet filter zfs_load="YES" Оно надо? пф 100% сам уже давно умеет подгружаться, из инит скрипта. 19.6 311393.00 311393.00 42710 7290.87 12981.61 ipfw_chk [9] Намёк что правила IPFW долго чекаются. Ещё, бывает что поверд и экологи из БИОС портят картину. И для интересу попробуйте hz=100, на слабых арм/мипс оно весьма даёт весьма заметный рост. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 · Жалоба ipfw (шейперы, ng_netflow) включен, трафик в одну сторону ~500 Мбит/сек, 108 000 state в pf, # (hotkernel &); sleep 60; killall dtrace ... pf.ko`pf_test_rule 2084 0.9% kernel`_rw_runlock_cookie 2107 0.9% kernel`__rw_rlock 3263 1.4% pf.ko`pf_match_translation 3844 1.6% kernel`bcmp 4634 1.9% kernel`dn_ht_find 4787 2.0% kernel`ipfw_chk 7942 3.3% kernel`__mtx_lock_sleep 9619 4.0% kernel`rn_match 10948 4.6% kernel`fsk_match 13211 5.5% kernel`sched_idletd 26259 11.0% kernel`acpi_cpu_c1 48633 20.3% kernel`cpu_idle 61718 25.7% systat -v 1 2 users Load 1,26 1,59 1,43 9 апр 12:53 Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 59696 7732 804608 8932 2224944 count All 4637192 10404 855868 43872 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt ioflt 37048 total 30 69k 16 304 32k 72 2 cow atkbd0 1 zfod ehci0 16 3,9%Sys 37,6%Intr 0,0%User 0,0%Nice 58,5%Idle ozfod ehci1 23 | | | | | | | | | | %ozfod 1014 cpu0:timer ==+++++++++++++++++++ daefr 11248 ix0:que 0 dtbuf prcfr 10441 ix0:que 1 Namei Name-cache Dir-cache 214017 desvn totfr 10863 ix0:que 2 Calls hits % hits % 68609 numvn react 1 ix0:link 3 3 100 53504 frevn pdwak 97 em0 272 4 pdpgs ahci0 276 Disks ada0 ada1 pass0 pass1 pass2 intrn 1128 cpu3:timer KB/t 0,00 0,00 0,00 0,00 0,00 5652168 wire 1128 cpu1:timer tps 0 0 0 0 0 10620 act 1128 cpu2:timer MB/s 0,00 0,00 0,00 0,00 0,00 223084 inact %busy 0 0 0 0 0 2064 cache 2222880 free buf top -aSCHIP last pid: 91177; load averages: 1.39, 1.57, 1.43 up 2+13:51:03 12:54:26 283 processes: 5 running, 248 sleeping, 1 zombie, 29 waiting CPU 0: 0.0% user, 0.0% nice, 15.0% system, 0.0% interrupt, 85.0% idle CPU 1: 0.0% user, 0.0% nice, 1.7% system, 43.3% interrupt, 55.0% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 41.7% interrupt, 58.3% idle CPU 3: 0.0% user, 0.0% nice, 1.7% system, 55.0% interrupt, 43.3% idle Mem: 9972K Active, 218M Inact, 5520M Wired, 2064K Cache, 2172M Free ARC: 4176M Total, 1934M MFU, 1896M MRU, 1040K Anon, 75M Header, 270M Other Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K CPU0 0 55.7H 100.00% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K RUN 1 45.1H 60.16% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU2 2 45.5H 54.79% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K CPU3 3 45.9H 53.08% [idle{idle: cpu3}] 12 root -92 - 0K 464K WAIT 3 927:01 51.27% [intr{irq266: ix0:que }] 12 root -92 - 0K 464K WAIT 2 925:39 50.98% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 1 946:45 43.16% [intr{irq264: ix0:que }] 12 root -60 - 0K 464K WAIT 2 37:49 0.39% [intr{swi4: clock}] ipfw (шейперы, ng_netflow) отключен (sysctl net.inet.ip.fw.enable=0), трафик в одну сторону ~600 Мбит/сек, 106 000 states в pf # (hotkernel &); sleep 60; killall dtrace ...kernel`spinlock_exit 1836 0.8% pf.ko`pf_test_rule 1916 0.8% kernel`ixgbe_rxeof 1931 0.8% kernel`rn_match 1941 0.8% kernel`dn_ht_scan_bucket 2030 0.8% kernel`__rw_rlock 2275 0.9% pf.ko`pf_match_translation 3819 1.6% kernel`bcmp 5118 2.1% kernel`sched_idletd 53884 22.1% kernel`acpi_cpu_c1 57648 23.6% kernel`cpu_idle 88482 36.3% systat -v 1 2 users Load 1,29 1,41 1,39 9 апр 12:58 Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 76332 9368 904056 10636 2146468 count All 4720444 12040 955332 45576 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt ioflt 45608 total 33 77k 14 153 37k 163 2 cow atkbd0 1 2 zfod 6 ehci0 16 1,4%Sys 11,7%Intr 0,0%User 0,0%Nice 86,9%Idle ozfod 10 ehci1 23 | | | | | | | | | | %ozfod 1941 cpu0:timer =++++++ daefr 12638 ix0:que 0 dtbuf prcfr 12201 ix0:que 1 Namei Name-cache Dir-cache 214017 desvn totfr 12449 ix0:que 2 Calls hits % hits % 68609 numvn react ix0:link 3 3 100 53502 frevn pdwak 1 em0 272 9 pdpgs ahci0 276 Disks ada0 ada1 pass0 pass1 pass2 intrn 2119 cpu3:timer KB/t 0,00 0,00 0,00 0,00 0,00 5719224 wire 2120 cpu1:timer tps 0 0 0 0 0 21816 act 2123 cpu2:timer MB/s 0,00 0,00 0,00 0,00 0,00 223308 inact %busy 0 0 0 0 0 2064 cache top -aSCHIP last pid: 91271; load averages: 0.76, 1.27, 1.34 up 2+13:55:19 12:58:42 283 processes: 5 running, 248 sleeping, 1 zombie, 29 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 1: 0.0% user, 0.0% nice, 1.6% system, 19.7% interrupt, 78.7% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 19.7% interrupt, 80.3% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 27.9% interrupt, 72.1% idle Mem: 9944K Active, 218M Inact, 5520M Wired, 2064K Cache, 2171M Free ARC: 4176M Total, 1934M MFU, 1896M MRU, 1040K Anon, 75M Header, 270M Other Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K CPU0 0 55.7H 100.00% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K CPU1 1 45.2H 83.15% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU2 2 45.5H 82.76% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K RUN 3 45.9H 81.69% [idle{idle: cpu3}] 12 root -92 - 0K 464K WAIT 1 948:02 23.49% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 2 927:00 22.56% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 3 928:23 22.36% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 1 37:51 0.20% [intr{swi4: clock}] Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 · Жалоба Трафик подобрался к 1000 Мбит/сек и 120 kpps в одну сторону и становится всё более грустно. pf state ~ 140 000 hotkernel pf.ko`pf_find_state 5434 1.0% kernel`bcopy 6716 1.3% pf.ko`pf_test_rule 7894 1.5% kernel`_rw_runlock_cookie 8625 1.6% kernel`__rw_rlock 13185 2.5% pf.ko`pf_match_translation 14658 2.8% kernel`dn_ht_find 16345 3.1% kernel`bcmp 20940 4.0% kernel`ipfw_chk 27812 5.3% kernel`rn_match 37590 7.1% kernel`fsk_match 43965 8.4% kernel`__mtx_lock_sleep 50740 9.6% kernel`cpu_idle 66153 12.6% kernel`acpi_cpu_c1 80190 15.2% hotkernel -m Sampling... Hit Ctrl-C to end. ^C MODULE COUNT PCNT ng_ksocket.ko 1 0.0% dtrace.ko 23 0.0% zfs.ko 129 0.0% ng_ipfw.ko 2647 0.2% netgraph.ko 3596 0.3% ng_netflow.ko 12838 1.1% pf.ko 96765 8.2% kernel 1066767 90.2% top -aSCHIP last pid: 93691; load averages: 3.43, 3.18, 2.88 up 2+19:11:08 18:14:31 287 processes: 6 running, 252 sleeping, 1 zombie, 28 waiting CPU 0: 0.0% user, 0.0% nice, 26.3% system, 1.2% interrupt, 72.5% idle CPU 1: 0.0% user, 0.0% nice, 10.2% system, 74.1% interrupt, 15.7% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 84.7% interrupt, 15.3% idle CPU 3: 0.0% user, 0.0% nice, 0.8% system, 80.4% interrupt, 18.8% idle Mem: 22M Active, 29M Inact, 7296M Wired, 724K Cache, 573M Free ARC: 6066M Total, 1647M MFU, 3984M MRU, 1168K Anon, 82M Header, 352M Other Swap: 4096M Total, 9868K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 0 59.9H 98.29% [idle{idle: cpu0}] 12 root -92 - 0K 464K WAIT 2 18.6H 87.50% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K CPU3 3 18.6H 85.06% [intr{irq266: ix0:que }] 12 root -92 - 0K 464K WAIT 1 18.9H 81.79% [intr{irq264: ix0:que }] 11 root 155 ki31 0K 64K RUN 3 48.0H 18.46% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K CPU1 1 47.3H 17.19% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU2 2 47.6H 12.16% [idle{idle: cpu2}] 0 root -92 0 0K 2864K - 0 2:07 2.39% [kernel{ix0 que}] 12 root -60 - 0K 464K WAIT 2 41:30 0.78% [intr{swi4: clock}] 2296 proxy 20 0 12308K 972K kqread 0 1:34 0.10% /usr/sbin/ftp-proxy -m 500 -D 1 systat -v 1 2 users Load 3,07 3,13 2,88 9 п╟п©я─ 18:15 Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 63868 6176 922876 9040 585912 count All 6097688 8208 983028 44140 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt ioflt 15862 total 29 5 28k 76 1149 11k 170 cow atkbd0 1 zfod ehci0 16 6,6%Sys 64,7%Intr 0,0%User 0,0%Nice 28,7%Idle ozfod ehci1 23 | | | | | | | | | | %ozfod 1024 cpu0:timer ===+++++++++++++++++++++++++++++++++ daefr 3978 ix0:que 0 dtbuf prcfr 2500 ix0:que 1 Namei Name-cache Dir-cache 214017 desvn totfr 4959 ix0:que 2 Calls hits % hits % 60421 numvn react 1 ix0:link 3 3 100 53502 frevn pdwak 113 em0 272 9 pdpgs ahci0 276 Disks ada0 ada1 pass0 pass1 pass2 intrn 1108 cpu3:timer KB/t 0,00 0,00 0,00 0,00 0,00 7471380 wire 1092 cpu1:timer tps 0 0 0 0 0 23712 act 1087 cpu2:timer MB/s 0,00 0,00 0,00 0,00 0,00 29772 inact %busy 0 0 0 0 0 724 cache 585188 free buf procsystime (переведённый в проценты) __sysctl 0.1% write 0.1% execve 0.4% close 3.8% read 5.2% connect 5.4% sigsuspend 9.8% kevent 10.0% wait4 10.2% _umtx_op 11.6% select 43.3% Отключил ipfw. Трафик увеличился до 1200 Мбит/сек и 130 kpps, но нагрузка заметно снизилась, в том числе и по, почему-то, прерываниям: last pid: 12026; load averages: 1.28, 2.07, 2.52 up 2+19:23:24 18:26:47 286 processes: 5 running, 251 sleeping, 1 zombie, 29 waiting CPU 0: 0.0% user, 0.0% nice, 4.2% system, 0.4% interrupt, 95.4% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 25.9% interrupt, 74.1% idle CPU 2: 0.0% user, 0.0% nice, 1.5% system, 24.7% interrupt, 73.7% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 31.3% interrupt, 68.7% idle Mem: 11M Active, 29M Inact, 7234M Wired, 724K Cache, 645M Free ARC: 6069M Total, 1648M MFU, 3986M MRU, 1168K Anon, 82M Header, 352M Other Swap: 4096M Total, 9868K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 0 60.1H 100.00% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K CPU3 3 48.0H 71.19% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K CPU1 1 47.4H 69.38% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU2 2 47.6H 63.09% [idle{idle: cpu2}] 12 root -92 - 0K 464K WAIT 2 18.7H 37.26% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.1H 34.77% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 3 18.8H 33.98% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 3 41:37 0.20% [intr{swi4: clock}] hotkernel [b] [/b] kernel`_rw_runlock_cookie 940 0.9% pf.ko`pf_test 1005 0.9% pf.ko`pf_find_state 1018 0.9% kernel`ixgbe_rxeof 1253 1.2% kernel`rn_match 1443 1.3% kernel`__rw_rlock 1724 1.6% pf.ko`pf_test_rule 1741 1.6% pf.ko`pf_match_translation 3130 2.9% kernel`bcmp 4555 4.2% kernel`sched_idletd 15105 14.0% kernel`acpi_cpu_c1 25146 23.4% kernel`cpu_idle 36280 33.7% systat -v 1 2 users Load 1,31 1,79 2,34 9 п╟п©я─ 19:28 Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 45292 6076 829596 8932 662252 count All 6014920 8108 881160 44032 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt ioflt 36847 total 26 5 67k 213 1377 32k 62 111 61 cow atkbd0 1 47 zfod ehci0 16 1,2%Sys 24,4%Intr 0,0%User 0,0%Nice 74,4%Idle ozfod ehci1 23 | | | | | | | | | | %ozfod 1001 cpu0:timer =++++++++++++ daefr 11084 ix0:que 0 dtbuf 387 prcfr 10569 ix0:que 1 Namei Name-cache Dir-cache 214017 desvn 568 totfr 10804 ix0:que 2 Calls hits % hits % 60423 numvn react 1 ix0:link 93 93 100 53500 frevn pdwak 2 em0 272 4 pdpgs ahci0 276 Disks ada0 ada1 pass0 pass1 pass2 intrn 1128 cpu3:timer KB/t 0,00 0,00 0,00 0,00 0,00 7407512 wire 1129 cpu1:timer tps 0 0 0 0 0 11076 act 1129 cpu2:timer MB/s 0,00 0,00 0,00 0,00 0,00 29932 inact %busy 0 0 0 0 0 724 cache 661528 free buf Коллеги, а профайлингом что, больше никто не занимался? По всему форуму сообщения, посвящённых профайлингу на FreeBSD, можно пересчитать по пальцам, а уж посвящённых dtrace, так и вообще по одной руке. Чувствую я потенциальную силу большую в этом, но нет никого, кто просветить бы мог. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 · Жалоба Продолжу изыскания. ;) Результат "горячих" вызовов с включенным ipfw: dtrace -n 'profile-1001hz / arg0 != 0 / { @ks[stack()]=count() }' kernel`dn_ht_find+0xa1 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 26895 kernel`rn_match+0x5a kernel`ipfw_lookup_table+0x48 kernel`ipfw_chk+0x2ae3 kernel`ipfw_check_packet+0xff kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x352 kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 28748 kernel`__mtx_lock_sleep+0x212 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 28905 kernel`__mtx_lock_sleep+0x215 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 33138 kernel`fsk_match+0xf kernel`dummynet_io+0x11b kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 85591 kernel`cpu_idle+0xbe kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 158647 kernel`acpi_cpu_c1+0x6 kernel`cpu_idle_acpi+0x3f kernel`cpu_idle+0x93 kernel`sched_idletd+0x1ee kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 187387 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 · Жалоба А так с выключенным ipfw: kernel`bcmp+0xb pf.ko`pf_test+0x77c pf.ko`pf_check_out+0x3c kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 14014 kernel`bcmp+0xb pf.ko`pf_test+0x899 pf.ko`pf_check_out+0x3c kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 18023 kernel`bcmp+0xb pf.ko`pf_test+0x899 pf.ko`pf_check_in+0x1d kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x352 kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 18167 kernel`sched_idletd+0x187 kernel`0xffffffff8062f4be 36810 kernel`sched_idletd+0x18b kernel`0xffffffff8062f4be 58715 kernel`sched_idletd+0x18d kernel`0xffffffff8062f4be 58949 kernel`sched_idletd+0x180 kernel`0xffffffff8062f4be 81147 kernel`acpi_cpu_c1+0x6 kernel`cpu_idle_acpi+0x3f kernel`cpu_idle+0x93 kernel`sched_idletd+0x1ee kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 436591 kernel`cpu_idle+0xbe kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 620206 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 9 апреля, 2014 · Жалоба Отключил ipfw. Трафик увеличился до 1200 Мбит/сек и 130 kpps, но нагрузка заметно снизилась, в том числе и по, почему-то, прерываниям Потому что у тебя нет.иср=директ и всё обрабатывается в контексте обработчика прерываний. Коллеги, а профайлингом что, больше никто не занимался? По всему форуму сообщения, посвящённых профайлингу на FreeBSD, можно пересчитать по пальцам, а уж посвящённых dtrace, так и вообще по одной руке. Чувствую я потенциальную силу большую в этом, но нет никого, кто просветить бы мог. А что именно нужно освещать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 (изменено) · Жалоба Потому что у тебя нет.иср=директ и всё обрабатывается в контексте обработчика прерываний. Переключил с direct на deferred. При выключенном ipfw загрузка процессоров не изменилась вообще (как было по 40% от ix0:que на ядро, так и осталось). Это для 130Kpps и 1100 Mbit/sec. При включенном ipfw загрузка процессоров 90-100% на ядро всё от тех же ix0:que, трафик 110 Kpps и 880 Mbit/sec Переключение net.isr почему-то вообще никак не сказалось, другими словами kernel`__mtx_lock_sleep+0x212 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 1377 kernel`__mtx_lock_sleep+0x215 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 1643 kernel`fsk_match+0xf kernel`dummynet_io+0x11b kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_fastforward+0x43e kernel`ether_demux+0x113 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ether_demux+0x95 kernel`ether_nh_input+0x34a kernel`netisr_dispatch_src+0x5e kernel`ixgbe_rxeof+0x4f8 kernel`ixgbe_msix_que+0xc0 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 4064 kernel`cpu_idle+0xbe kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 4403 kernel`acpi_cpu_c1+0x6 kernel`cpu_idle_acpi+0x3f kernel`cpu_idle+0x93 kernel`sched_idletd+0x1ee kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 4968 А что именно нужно освещать? Понять, как правильно профилировать вот загрузку ядра и прерываний. Кем вызываются, сколько времени процессором на них проводятся и в ходе каких вызовов. То есть что-то похожее на приведённый код выше. Update: Ага, понял, почему переключение net.isr не дало результатов. Был включен fastforwarding. Выключил, структура загрузки изменилась, вот только результат всё равно ужасает: top -aSCHIP last pid: 76837; load averages: 3.44, 3.19, 2.45 up 2+20:33:01 19:36:24 284 processes: 7 running, 249 sleeping, 1 zombie, 26 waiting, 1 lock CPU 0: 0.0% user, 0.0% nice, 0.0% system, 66.7% interrupt, 33.3% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 66.7% interrupt, 33.3% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 100% interrupt, 0.0% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 9872K Active, 33M Inact, 7290M Wired, 724K Cache, 587M Free ARC: 6088M Total, 1660M MFU, 3993M MRU, 912K Anon, 82M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 12 root -72 - 0K 464K *dn_uh 0 26:13 100.00% [intr{swi1: netisr 0}] 12 root -72 - 0K 464K CPU2 2 28:26 99.17% [intr{swi1: netisr 2}] 11 root 155 ki31 0K 64K RUN 3 48.5H 95.26% [idle{idle: cpu3}] 12 root -72 - 0K 464K CPU1 1 27:43 94.38% [intr{swi1: netisr 1}] 12 root -92 - 0K 464K WAIT 2 19.4H 5.66% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 5.27% [intr{irq266: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.7H 4.88% [intr{irq264: ix0:que }] 11 root 155 ki31 0K 64K RUN 0 61.0H 1.66% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K RUN 1 47.8H 0.68% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K RUN 2 48.1H 0.39% [idle{idle: cpu2}] 12 root -60 - 0K 464K WAIT 3 42:14 0.29% [intr{swi4: clock}] Так изменилась структура вызовов, соответственно (ipfw включен, net.isr.dispatch=deferred, net.inet.ip.fastforwarding=0): kernel`sched_idletd+0x187 kernel`0xffffffff8062f4be 2917 kernel`rn_match+0x5a kernel`ipfw_lookup_table+0x48 kernel`ipfw_chk+0x2ae3 kernel`ipfw_check_packet+0xff kernel`pfil_run_hooks+0x83 kernel`ip_input+0x36f kernel`swi_net+0x132 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 3059 kernel`__mtx_lock_sleep+0x212 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_output+0x8a4 kernel`ip_forward+0x284 kernel`ip_input+0x682 kernel`swi_net+0x132 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 3094 kernel`dn_ht_find+0xa1 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_output+0x8a4 kernel`ip_forward+0x284 kernel`ip_input+0x682 kernel`swi_net+0x132 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 3189 kernel`__mtx_lock_sleep+0x215 kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_output+0x8a4 kernel`ip_forward+0x284 kernel`ip_input+0x682 kernel`swi_net+0x132 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 3229 kernel`sched_idletd+0x18b kernel`0xffffffff8062f4be 4622 kernel`sched_idletd+0x18d kernel`0xffffffff8062f4be 4659 kernel`sched_idletd+0x180 kernel`0xffffffff8062f4be 6279 kernel`cpu_idle+0xbe kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 7245 kernel`fsk_match+0xf kernel`dummynet_io+0x11b kernel`ipfw_check_packet+0x258 kernel`pfil_run_hooks+0x83 kernel`ip_output+0x8a4 kernel`ip_forward+0x284 kernel`ip_input+0x682 kernel`swi_net+0x132 kernel`intr_event_execute_handlers+0xab kernel`ithread_loop+0x96 kernel`fork_exit+0x9a kernel`0xffffffff8062f4be 9396 Изменено 9 апреля, 2014 пользователем Dyr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 9 апреля, 2014 (изменено) · Жалоба Убранные из ipfw правила pipe немного снизили нагрузку на процессор с одновременным (что естественно) увеличением проходящего трафика до 160 Kpps и 1400 Мbit/sec last pid: 85948; load averages: 2.79, 3.17, 2.75 up 2+20:39:49 19:43:12 283 processes: 8 running, 248 sleeping, 1 zombie, 26 waiting CPU 0: 0.0% user, 0.0% nice, 4.3% system, 67.7% interrupt, 28.0% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 81.5% interrupt, 18.5% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 90.6% interrupt, 9.4% idle CPU 3: 0.0% user, 0.0% nice, 0.8% system, 7.5% interrupt, 91.7% idle Mem: 9900K Active, 33M Inact, 7293M Wired, 724K Cache, 584M Free ARC: 6089M Total, 1660M MFU, 3994M MRU, 1168K Anon, 82M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 3 48.7H 96.97% [idle{idle: cpu3}] 12 root -72 - 0K 464K CPU2 2 34:31 86.28% [intr{swi1: netisr 2}] 12 root -72 - 0K 464K CPU1 1 33:52 80.27% [intr{swi1: netisr 1}] 12 root -72 - 0K 464K CPU0 0 31:25 78.86% [intr{swi1: netisr 0}] 11 root 155 ki31 0K 64K RUN 0 61.0H 26.56% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K RUN 1 47.8H 15.58% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K RUN 2 48.1H 14.70% [idle{idle: cpu2}] 12 root -92 - 0K 464K WAIT 2 19.4H 5.76% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.7H 5.37% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 5.37% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 3 42:19 0.39% [intr{swi4: clock}] Убранный из ipfw ng_tee на ng_netflow ещё сильнее снизил загрузку на процессор (на 20% по прерываниям!) при том же трафике: last pid: 86038; load averages: 2.24, 2.63, 2.61 up 2+20:44:07 19:47:30 284 processes: 7 running, 249 sleeping, 1 zombie, 27 waiting CPU 0: 0.0% user, 0.0% nice, 3.9% system, 49.0% interrupt, 47.1% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 59.2% interrupt, 40.8% idle CPU 2: 0.0% user, 0.0% nice, 0.4% system, 64.7% interrupt, 34.9% idle CPU 3: 0.0% user, 0.0% nice, 0.8% system, 7.5% interrupt, 91.8% idle Mem: 11M Active, 34M Inact, 7294M Wired, 724K Cache, 582M Free ARC: 6090M Total, 1660M MFU, 3994M MRU, 912K Anon, 82M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 3 48.7H 94.68% [idle{idle: cpu3}] 12 root -72 - 0K 464K CPU2 2 37:10 57.28% [intr{swi1: netisr 2}] 12 root -72 - 0K 464K WAIT 0 33:49 53.96% [intr{swi1: netisr 0}] 12 root -72 - 0K 464K CPU1 1 36:21 51.86% [intr{swi1: netisr 1}] 11 root 155 ki31 0K 64K CPU0 0 61.1H 50.88% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K RUN 1 47.9H 44.09% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K RUN 2 48.1H 40.09% [idle{idle: cpu2}] 12 root -92 - 0K 464K WAIT 1 19.7H 5.76% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 2 19.4H 5.37% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 5.08% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 2 42:21 0.20% [intr{swi4: clock}] Отключение ipfw полностью (sysctl net.inet.ip.fw.enable=0) ещё сильнее уменьшает загрузку на процессор (на ~15% по прерываниям): last pid: 86093; load averages: 1.58, 2.15, 2.41 up 2+20:46:52 19:50:15 284 processes: 6 running, 249 sleeping, 1 zombie, 28 waiting CPU 0: 0.0% user, 0.0% nice, 4.3% system, 25.6% interrupt, 70.1% idle CPU 1: 0.0% user, 0.0% nice, 0.4% system, 42.5% interrupt, 57.1% idle CPU 2: 0.0% user, 0.0% nice, 0.4% system, 42.1% interrupt, 57.5% idle CPU 3: 0.0% user, 0.0% nice, 0.8% system, 2.8% interrupt, 96.5% idle Mem: 10M Active, 34M Inact, 7294M Wired, 724K Cache, 583M Free ARC: 6090M Total, 1660M MFU, 3994M MRU, 912K Anon, 83M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 3 48.8H 98.00% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K RUN 0 61.1H 69.68% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K CPU2 2 48.2H 66.16% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K RUN 1 47.9H 60.89% [idle{idle: cpu1}] 12 root -72 - 0K 464K WAIT 1 37:29 33.69% [intr{swi1: netisr 1}] 12 root -72 - 0K 464K WAIT 2 38:16 33.59% [intr{swi1: netisr 2}] 12 root -72 - 0K 464K CPU0 0 34:51 31.88% [intr{swi1: netisr 0}] 12 root -92 - 0K 464K WAIT 2 19.4H 5.47% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.7H 5.27% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 5.08% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 3 42:23 0.10% [intr{swi4: clock}] Загрузка ipfw с правилами pipe, но без правил ng_netflow, тут же приводит к увеличению нагрузки "под потолок": last pid: 86093; load averages: 1.58, 2.15, 2.41 up 2+20:46:52 19:50:15 284 processes: 6 running, 249 sleeping, 1 zombie, 28 waiting CPU 0: 0.0% user, 0.0% nice, 4.3% system, 25.6% interrupt, 70.1% idle CPU 1: 0.0% user, 0.0% nice, 0.4% system, 42.5% interrupt, 57.1% idle CPU 2: 0.0% user, 0.0% nice, 0.4% system, 42.1% interrupt, 57.5% idle CPU 3: 0.0% user, 0.0% nice, 0.8% system, 2.8% interrupt, 96.5% idle Mem: 10M Active, 34M Inact, 7294M Wired, 724K Cache, 583M Free ARC: 6090M Total, 1660M MFU, 3994M MRU, 912K Anon, 83M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K RUN 3 48.8H 98.00% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K RUN 0 61.1H 69.68% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K CPU2 2 48.2H 66.16% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K RUN 1 47.9H 60.89% [idle{idle: cpu1}] 12 root -72 - 0K 464K WAIT 1 37:29 33.69% [intr{swi1: netisr 1}] 12 root -72 - 0K 464K WAIT 2 38:16 33.59% [intr{swi1: netisr 2}] 12 root -72 - 0K 464K CPU0 0 34:51 31.88% [intr{swi1: netisr 0}] 12 root -92 - 0K 464K WAIT 2 19.4H 5.47% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.7H 5.27% [intr{irq264: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 5.08% [intr{irq266: ix0:que }] 12 root -60 - 0K 464K WAIT 3 42:23 0.10% [intr{swi4: clock}] Загрузка ipfw, состоящего только из двух правил pipe, увеличивает нагрузку до 70-80% по прерываниям. ipfw list 03000 pipe tablearg ip from any to table(4) { xmit vlan11 or xmit vlan12 } // Incoming traffic shaping 03000 pipe tablearg ip from table(5) to any xmit vlan3918 // Outgoing traffic shaping 65535 allow ip from any to any last pid: 86249; load averages: 2.40, 2.28, 2.38 up 2+20:51:20 19:54:43 284 processes: 8 running, 248 sleeping, 1 zombie, 27 waiting CPU 0: 0.0% user, 0.0% nice, 24.3% system, 54.9% interrupt, 20.8% idle CPU 1: 0.0% user, 0.0% nice, 0.4% system, 75.3% interrupt, 24.3% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 67.1% interrupt, 32.9% idle CPU 3: 0.4% user, 0.0% nice, 0.8% system, 8.6% interrupt, 90.2% idle Mem: 10M Active, 33M Inact, 7294M Wired, 724K Cache, 583M Free ARC: 6090M Total, 1660M MFU, 3994M MRU, 1168K Anon, 83M Header, 352M Other Swap: 4096M Total, 9852K Used, 4086M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K CPU3 3 48.8H 100.00% [idle{idle: cpu3}] 12 root -72 - 0K 464K WAIT 1 40:20 70.75% [intr{swi1: netisr 1}] 12 root -72 - 0K 464K CPU0 0 37:18 70.75% [intr{swi1: netisr 0}] 12 root -72 - 0K 464K CPU2 2 41:09 64.99% [intr{swi1: netisr 2}] 11 root 155 ki31 0K 64K RUN 0 61.1H 31.05% [idle{idle: cpu0}] 11 root 155 ki31 0K 64K RUN 2 48.2H 29.05% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K RUN 1 47.9H 27.78% [idle{idle: cpu1}] 12 root -92 - 0K 464K WAIT 2 19.4H 6.15% [intr{irq265: ix0:que }] 12 root -92 - 0K 464K WAIT 3 19.4H 6.05% [intr{irq266: ix0:que }] 12 root -92 - 0K 464K WAIT 1 19.7H 5.96% [intr{irq264: ix0:que }] 12 root -60 - 0K 464K WAIT 3 42:25 0.10% [intr{swi4: clock}] Выводы: ipfw становится при моей конфигурации узким местом, существенно ограничивая производительность. Загрузка процессоров: Отключенный ipfw: 40% netisr per cpu ipfw с pipe, без ng_netflow и без фильтров : 70% netisr per cpu ipfw с pipe, без ng_netflow и с фильтрами: 90-100% netisr per cpu ipfw без pipe, с ng_netflow и с фильтрами: 75% netisr per cpu ipfw без pipe, без ng_netflow и с фильтрами: 55% netisr per cpu Кстати, интересная особенность - несмотря на создание 4 очередей netisr, активно ровно столько же, сколько и очередей от сетевой карты. Поскольку я специально уменьшал количество последних с 4 до 3 (чтобы освободить одно ядро процессора под dummynet), то и netisr работает только тремя очередями. Причём, что неприятно, прибивается к ядрам не в той очерёдности, в которой были прибиты сетевые (0 процессор оставляем под dummynet и вешаем на 1,2 и 3). Изменено 9 апреля, 2014 пользователем Dyr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DVM-Avgoor Опубликовано 9 апреля, 2014 (изменено) · Жалоба Сколько рулесов в ipfw? Сколько в его таблицах включений? Зачем удлинять путь пакета навешивая и pf и ipfw? Почему не использовать netgraph? Изменено 9 апреля, 2014 пользователем DVM-Avgoor Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 10 апреля, 2014 · Жалоба Кстати, интересная особенность - несмотря на создание 4 очередей netisr, активно ровно столько же, сколько и очередей от сетевой карты. Поскольку я специально уменьшал количество последних с 4 до 3 (чтобы освободить одно ядро процессора под dummynet), то и netisr работает только тремя очередями. Причём, что неприятно, прибивается к ядрам не в той очерёдности, в которой были прибиты сетевые (0 процессор оставляем под dummynet и вешаем на 1,2 и 3). Особенностей там куда больше :) Например, использование сразу двух фаеров больше вымывает кеш. Так же его вымывает частое переключение задач, за которое отвечает hz=1000. Ещё кеш может быть не совсем общим: интел любил делать четрёх ядреные процессоры путём склеивания двух двух ядерных. А передача пакетов/данных между ядрами в разных половинках более затратно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 10 апреля, 2014 · Жалоба Зачем удлинять путь пакета навешивая и pf и ipfw? pf nat гораздо удобней и в принципе, производительней других вариантов natов на FreeBSD. Шейперы в ipfw, без вариантов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 11 апреля, 2014 · Жалоба Вчера попробовал с kern.hz=200, практически не помогло. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 11 апреля, 2014 (изменено) · Жалоба Dyr, привожу свои данные с сервера с Intel X520-DA2 и CPU Xeon E3-1270 (v1), есть еще 2 роутера под фрей, но там уже стоит E5-1660v2. На этой машине стоит FreeBSD 8.4 Stable. HT в биосе включен. 7 очередей на каждую ixgbe, каждое прибито к своему ядру с 1 по 7. dummynet прибит к 0 ядру. Некоторе время тоже не хотел уходить с pf nat, но однажды ушел на ipfw nat и не жалею. Неудобно, но 1 раз переписать скрипты и все ок. Шейпер на dummynet. Netflow нет, но есть в планах запустить. Вчера в ЧНН (ix0 смотрит в сторону UPlink): netstat -I ix0 -w1 -h input (ix0) output packets errs idrops bytes packets errs bytes colls 179k 0 0 181M 146k 0 72M 0 175k 0 0 178M 139k 0 68M 0 182k 0 0 185M 147k 0 72M 0 193k 0 0 200M 154k 0 75M 0 192k 0 0 201M 147k 0 70M 0 193k 0 0 201M 150k 0 70M 0 183k 0 0 187M 146k 0 73M 0 184k 0 0 184M 149k 0 79M 0 176k 0 0 175M 142k 0 74M 0 174k 0 0 170M 143k 0 77M 0 175k 0 0 175M 140k 0 72M 0 188k 0 0 190M 149k 0 76M 0 netstat -m , vmstat -i , vmstat -z 59469/13731/73200 mbufs in use (current/cache/total) 59332/8498/67830/262144 mbuf clusters in use (current/cache/total/max) 59332/7100 mbuf+clusters out of packet secondary zone in use (current/cache) 0/151/151/262144 4k (page size) jumbo clusters in use (current/cache/total/max) 0/0/0/65536 9k jumbo clusters in use (current/cache/total/max) 0/0/0/32768 16k jumbo clusters in use (current/cache/total/max) 134043K/21032K/155076K bytes allocated to network (current/cache/total) 0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters) 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 # vmstat -i interrupt total rate irq16: ehci0 6358074 3 irq20: atapci0 9050750 4 irq23: ehci1 3464227 1 cpu0: timer 3755521931 2000 irq256: ix0:que 0 21524892323 11463 irq257: ix0:que 1 20049944731 10677 irq258: ix0:que 2 20281395514 10801 irq259: ix0:que 3 20294240802 10807 irq260: ix0:que 4 20281282427 10801 irq261: ix0:que 5 19993490420 10647 irq262: ix0:que 6 19934646940 10616 irq263: ix0:link 3 0 irq264: ix1:que 0 17927446830 9547 irq265: ix1:que 1 16742538179 8916 irq266: ix1:que 2 17025852569 9067 irq267: ix1:que 3 16998528574 9052 irq268: ix1:que 4 16991482651 9049 irq269: ix1:que 5 16419253213 8744 irq270: ix1:que 6 16389715267 8728 irq271: ix1:link 3 0 cpu1: timer 3755518269 2000 cpu3: timer 3755515598 2000 cpu6: timer 3755429141 2000 cpu4: timer 3755517378 2000 cpu2: timer 3755516333 2000 cpu5: timer 3755425814 1999 cpu7: timer 3755514905 2000 Total 290917542866 154931 # vmstat -z ITEM SIZE LIMIT USED FREE REQUESTS FAILURES UMA Kegs: 208, 0, 105, 14, 105, 0 UMA Zones: 448, 0, 105, 7, 105, 0 UMA Slabs: 568, 0, 3662, 125, 288587, 0 UMA RCntSlabs: 568, 0, 34066, 1242, 40344, 0 UMA Hash: 256, 0, 0, 0, 3, 0 16 Bucket: 152, 0, 28, 122, 206, 0 32 Bucket: 280, 0, 67, 115, 405, 15 64 Bucket: 536, 0, 122, 123, 928, 124 128 Bucket: 1048, 0, 2452, 2, 169139, 12281 VM OBJECT: 216, 0, 53220, 28770, 523925112, 0 MAP: 232, 0, 7, 25, 7, 0 KMAP ENTRY: 120, 394475, 42, 578, 541460, 0 MAP ENTRY: 120, 0, 2264, 12306, 1527424124, 0 DP fakepg: 120, 0, 0, 124, 18, 0 SG fakepg: 120, 0, 0, 0, 0, 0 mt_zone: 2056, 0, 233, 63, 235, 0 16: 16, 0, 2777, 1423, 90401981, 0 32: 32, 0, 4192, 1161, 39680351, 0 64: 64, 0, 4194, 2022, 209259803, 0 128: 128, 0, 837420, 183786, 4948173192, 0 256: 256, 0, 25780, 9200, 412156878049, 0 512: 512, 0, 8336, 1807, 2446686377, 0 1024: 1024, 0, 67, 1097, 18089530, 0 2048: 2048, 0, 69, 821, 741282, 0 4096: 4096, 0, 293, 1246, 18058744, 0 Files: 80, 0, 373, 3047, 224463346, 0 TURNSTILE: 136, 0, 3508, 352, 3634, 0 umtx pi: 96, 0, 0, 0, 0, 0 MAC labels: 40, 0, 0, 0, 0, 0 PROC: 1136, 0, 84, 2673, 17803577, 0 THREAD: 1128, 0, 2831, 676, 11180, 0 SLEEPQUEUE: 80, 0, 3508, 349, 3634, 0 VMSPACE: 392, 0, 65, 2745, 17803558, 0 cpuset: 72, 0, 116, 384, 149, 0 audit_record: 952, 0, 0, 0, 0, 0 mbuf_packet: 256, 0, 59358, 7074, 311627223635, 0 mbuf: 256, 0, 100, 6668, 680874189429, 0 mbuf_cluster: 2048, 262144, 66432, 1398, 474368, 0 mbuf_jumbo_page: 4096, 262144, 0, 151, 610, 0 mbuf_jumbo_9k: 9216, 65536, 0, 0, 0, 0 mbuf_jumbo_16k: 16384, 32768, 0, 0, 0, 0 mbuf_ext_refcnt: 4, 0, 0, 0, 0, 0 NetGraph items: 72, 65540, 0, 203, 32, 0 NetGraph data items: 72, 65540, 0, 1566, 64919857, 0 g_bio: 232, 0, 0, 1520, 36210799, 0 ttyinq: 160, 0, 195, 237, 510, 0 ttyoutq: 256, 0, 104, 121, 272, 0 ata_request: 320, 0, 0, 1488, 9052755, 0 ata_composite: 336, 0, 0, 0, 0, 0 VNODE: 472, 0, 49158, 3018, 439567, 0 VNODEPOLL: 112, 0, 0, 0, 0, 0 NAMEI: 1024, 0, 0, 1332, 323634608, 0 S VFS Cache: 108, 0, 1924, 1046, 10502899, 0 STS VFS Cache: 148, 0, 0, 0, 0, 0 L VFS Cache: 328, 0, 4557, 831, 156961, 0 LTS VFS Cache: 368, 0, 0, 0, 0, 0 DIRHASH: 1024, 0, 103, 829, 8912, 0 pipe: 728, 0, 6, 1339, 33348127, 0 ksiginfo: 112, 0, 2726, 1531, 364353, 0 itimer: 344, 0, 1, 32, 2, 0 KNOTE: 128, 0, 0, 1160, 1488045, 0 socket: 680, 262146, 232, 2678, 33697628, 0 ipq: 56, 8253, 0, 315, 26, 0 udp_inpcb: 336, 262152, 149, 1248, 18081715, 0 udpcb: 16, 262248, 149, 1363, 18081715, 0 tcp_inpcb: 336, 262152, 32, 2916, 307169, 0 tcpcb: 944, 262144, 21, 2987, 307169, 0 tcptw: 72, 27800, 3, 1097, 85187, 0 syncache: 144, 15366, 0, 442, 117514, 0 hostcache: 136, 15372, 51, 453, 3577, 0 tcpreass: 40, 16464, 0, 672, 556, 0 sackhole: 32, 0, 0, 909, 121, 0 sctp_ep: 1320, 262146, 0, 0, 0, 0 sctp_asoc: 2288, 40000, 0, 0, 0, 0 sctp_laddr: 48, 80064, 0, 576, 148, 0 sctp_raddr: 696, 80000, 0, 0, 0, 0 sctp_chunk: 136, 400008, 0, 0, 0, 0 sctp_readq: 104, 400032, 0, 0, 0, 0 sctp_stream_msg_out: 104, 400032, 0, 0, 0, 0 sctp_asconf: 40, 400008, 0, 0, 0, 0 sctp_asconf_ack: 48, 400032, 0, 0, 0, 0 ripcb: 336, 262152, 3, 591, 174214, 0 unpcb: 240, 262144, 47, 1025, 409578, 0 rtentry: 200, 0, 1120, 457, 7362, 0 pfsrctrpl: 152, 0, 0, 0, 0, 0 pfrulepl: 912, 0, 0, 0, 0, 0 pfstatepl: 392, 10000, 0, 0, 0, 0 pfaltqpl: 240, 0, 0, 0, 0, 0 pfpooladdrpl: 88, 0, 0, 0, 0, 0 pfrktable: 1296, 0, 0, 0, 0, 0 pfrkentry: 216, 0, 0, 0, 0, 0 pfrkentry2: 216, 0, 0, 0, 0, 0 pffrent: 32, 5050, 0, 0, 0, 0 pffrag: 80, 0, 0, 0, 0, 0 pffrcache: 80, 10035, 0, 0, 0, 0 pffrcent: 24, 50022, 0, 0, 0, 0 pfstatescrub: 40, 0, 0, 0, 0, 0 pfiaddrpl: 120, 0, 0, 0, 0, 0 pfospfen: 112, 0, 0, 0, 0, 0 pfosfp: 40, 0, 0, 0, 0, 0 IPFW dynamic rule: 120, 0, 101, 1418, 21596608, 0 selfd: 56, 0, 2941, 3107, 6624395980, 0 SWAPMETA: 288, 116519, 1, 142, 1140, 0 Mountpoints: 752, 0, 9, 16, 9, 0 FFS inode: 168, 0, 49114, 2916, 439507, 0 FFS1 dinode: 128, 0, 0, 0, 0, 0 FFS2 dinode: 256, 0, 49114, 3116, 439507, 0 top -aSCHPI last pid: 30941; load averages: 5.33, 5.18, 5.17 up 21+17:34:18 22:58:41 174 processes: 15 running, 118 sleeping, 41 waiting CPU 0: 0.0% user, 0.0% nice, 51.1% system, 0.0% interrupt, 48.9% idle CPU 1: 0.0% user, 0.0% nice, 1.1% system, 45.9% interrupt, 53.0% idle CPU 2: 0.4% user, 0.0% nice, 2.2% system, 64.0% interrupt, 33.3% idle CPU 3: 0.0% user, 0.0% nice, 2.3% system, 48.5% interrupt, 49.2% idle CPU 4: 0.4% user, 0.0% nice, 0.8% system, 43.2% interrupt, 55.6% idle CPU 5: 0.4% user, 0.0% nice, 1.1% system, 59.4% interrupt, 39.1% idle CPU 6: 0.0% user, 0.0% nice, 0.7% system, 51.7% interrupt, 47.6% idle CPU 7: 0.0% user, 0.0% nice, 0.7% system, 44.9% interrupt, 54.3% idle Mem: 805M Active, 1913M Inact, 1008M Wired, 86M Cache, 417M Buf, 130M Free Swap: 8192M Total, 4K Used, 8192M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 171 ki31 0K 128K RUN 0 277.6H 100.00% [idle{idle: cpu0}] 11 root 171 ki31 0K 128K RUN 5 347.9H 59.77% [idle{idle: cpu5}] 11 root 171 ki31 0K 128K RUN 4 347.9H 59.28% [idle{idle: cpu4}] 11 root 171 ki31 0K 128K RUN 7 349.7H 52.29% [idle{idle: cpu7}] 11 root 171 ki31 0K 128K RUN 1 335.8H 51.76% [idle{idle: cpu1}] 11 root 171 ki31 0K 128K CPU3 3 346.0H 50.49% [idle{idle: cpu3}] 12 root -68 - 0K 736K CPU2 2 94.0H 40.87% [intr{irq257: ix0:que }] 12 root -68 - 0K 736K WAIT 6 92.1H 39.36% [intr{irq261: ix0:que }] 11 root 171 ki31 0K 128K CPU2 2 341.4H 33.98% [idle{idle: cpu2}] 11 root 171 ki31 0K 128K CPU6 6 347.3H 32.28% [idle{idle: cpu6}] 12 root -68 - 0K 736K WAIT 7 89.5H 31.98% [intr{irq262: ix0:que }] 12 root -68 - 0K 736K WAIT 6 67.2H 29.49% [intr{irq269: ix1:que }] 12 root -68 - 0K 736K RUN 1 96.4H 28.76% [intr{irq256: ix0:que }] 12 root -68 - 0K 736K WAIT 2 72.6H 26.37% [intr{irq265: ix1:que }] 12 root -68 - 0K 736K WAIT 4 87.9H 26.17% [intr{irq259: ix0:que }] 12 root -68 - 0K 736K WAIT 3 91.5H 25.20% [intr{irq258: ix0:que }] 12 root -68 - 0K 736K CPU5 5 91.4H 23.58% [intr{irq260: ix0:que }] 12 root -68 - 0K 736K WAIT 3 69.7H 22.07% [intr{irq266: ix1:que }] 12 root -68 - 0K 736K CPU1 1 74.6H 20.56% [intr{irq264: ix1:que }] 12 root -68 - 0K 736K CPU7 7 67.2H 19.38% [intr{irq270: ix1:que }] 12 root -68 - 0K 736K WAIT 4 70.8H 17.58% [intr{irq267: ix1:que }] 12 root -68 - 0K 736K WAIT 5 67.6H 16.55% [intr{irq268: ix1:que }] 0 root -68 0 0K 480K CPU0 0 238.0H 1.66% [kernel{dummynet}] 0 root -68 0 0K 480K - 2 230:28 0.88% [kernel{ix0 que}] 0 root -68 0 0K 480K - 3 239:17 0.68% [kernel{ix0 que}] 0 root -68 0 0K 480K - 7 227:38 0.68% [kernel{ix0 que}] 0 root -68 0 0K 480K - 6 243:19 0.59% [kernel{ix0 que}] 0 root -68 0 0K 480K - 3 240:28 0.49% [kernel{ix0 que}] 0 root -68 0 0K 480K - 1 242:14 0.39% [kernel{ix0 que}] 0 root -68 0 0K 480K - 3 153:39 0.20% [kernel{ix1 que}] 0 root -68 0 0K 480K - 6 162:12 0.10% [kernel{ix1 que}] 0 root -68 0 0K 480K - 6 153:02 0.10% [kernel{ix1 que}] 0 root -68 0 0K 480K - 4 147:41 0.10% [kernel{ix1 que}] loader.conf , sysctl.conf # cat /boot/loader.conf kern.ipc.nmbclusters=262144 kern.ipc.nmbjumbop=262144 kern.ipc.somaxconn=32768 kern.ipc.maxsockets=204800 kern.maxfiles=256000 kern.maxfilesperproc=230400 hw.igb.lro=0 hw.igb.rxd=4096 hw.igb.txd=4096 hw.igb.max_interrupt_rate=32000 hw.igb.rx_process_limit=4096 hw.igb.num_queues=3 net.link.ifqmaxlen=10240 net.isr.defaultqlimit=8192 net.isr.bindthreads=1 net.isr.maxthreads=4 hw.ixgbe.lro=0 hw.ixgbe.rxd=4096 hw.ixgbe.txd=4096 hw.ixgbe.rx_process_limit=4096 hw.ixgbe.num_queues=7 hw.intr_storm_threshold=19000 net.graph.maxalloc=65536 net.graph.maxdata=65536 # cat /etc/sysctl.conf hw.intr_storm_threshold=19000 kern.ipc.nmbclusters=262144 kern.ipc.nmbjumbop=262144 kern.ipc.somaxconn=32768 kern.ipc.maxsockbuf=83886080 kern.maxfiles=256000 kern.maxfilesperproc=230400 kern.random.sys.harvest.ethernet=0 kern.random.sys.harvest.interrupt=0 net.inet.ip.fw.one_pass=0 net.inet.ip.dummynet.io_fast=1 net.inet.ip.fw.dyn_buckets=16384 net.inet.ip.fastforwarding=0 net.inet.ip.dummynet.hash_size=16384 net.inet.icmp.drop_redirect=1 net.inet.ip.redirect=0 net.inet.ip.dummynet.pipe_slot_limit=4096 net.inet.ip.intr_queue_maxlen=10240 net.graph.recvspace=35000 net.graph.maxdgram=35000 net.inet.tcp.blackhole=2 net.inet.tcp.delayed_ack=0 net.inet.tcp.drop_synfin=1 net.inet.tcp.nolocaltimewait=1 net.inet.udp.blackhole=1 Изменено 11 апреля, 2014 пользователем John_obn Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 12 апреля, 2014 · Жалоба Немного оффтопично, но... а теперь попробуйте уйти на Linux, и реализовать всё то же самое. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DVM-Avgoor Опубликовано 12 апреля, 2014 · Жалоба pf nat гораздо удобней и в принципе, производительней других вариантов natов на FreeBSD. Ничего он не производительней. ng_nat / ipfw nat очень хороши, а создавая лишний инстанс в пути пакета вы добавляете нагрузки в систему, сотню лишних переходов. С такими идеями лучше действительно уйти на линукс, там вариант ровно 1 и крутить особо нечего. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 14 апреля, 2014 · Жалоба Ничего он не производительней. ng_nat / ipfw nat очень хороши, а создавая лишний инстанс в пути пакета вы добавляете нагрузки в систему, сотню лишних переходов. Вы тестировали? Мои тесты показали крайне удручающую картину. Отдельно отмечу невозможность настроек таймаутов соединений (кроме разве что перекомпилирования?). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DVM-Avgoor Опубликовано 14 апреля, 2014 · Жалоба Вы тестировали? Мои тесты показали крайне удручающую картину. Отдельно отмечу невозможность настроек таймаутов соединений (кроме разве что перекомпилирования?). Поставьте уже линукс. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Giga-Byte Опубликовано 15 апреля, 2014 · Жалоба Немного оффтопично, но... а теперь попробуйте уйти на Linux, и реализовать всё то же самое. согласен. как я ни бился завести (чтобы работало месяцами а не днями) ipv6 на freebsd (7,8,9), безрезультатно. пы.сы. у меня 7.2 фря работала годами (как BRAS с mpd, ng_bpf, ng_car, ipfw, где-то dumynet для особо важных), но на ней с zebr-ой, с ND проблемы, не уходят neighbor discovery на ng интерфейсы. долго бился с 8-й и 9-й веткой. крашится падла раз в два-семь дней. ничего не помогало, я полгода убил наверное на всякие эксперименты перешел на линух, всё запустилось и заработало. аптайм скоро будет год. ipv6 трафик пока мал, до 15% в вечернее время и у меня всё работает в qemu-kvm. а вы тут с мега-тазиками да с 10GE сетевыми :) мои данные: аплинк 1гбит (2х1Гб физика). средний размер пакета у провайдера 600байт, PPS собсно из этого ясен (порядка 180кппс) около 900Мбит и уходит к клиентам через 2 х EXPI9402 (по два порта 1Гб в LACP) через прокинутые в виртуалку PCI-Express девайсы. что сподвигло на такое: выкинуть две стойки серверов, выкинуть два кондиционера, заменить ИБП на более слабые и более качественные (Inelt-ы слабые есть без батарей за 5т.р. с током зарядки до 7А или 10А, в следствии чего можно подключить из коробки как говорится батареи на 70Ач или 100Ач) поставив один 2U сервер Asus RS720-X7-RS8 с iKVM (чтобы управление было удалённое) c 32Гигами памяти и одним процом E5-2670 ну второй такойже в горячий резерв на другую площадку в случае глобального дизастера (пожар, затопление и т.п.). охлаждение не требует, и работает. с 8-ю потоками E5-2670 нагружен на 20%. а там около 30 виртуалок. главные пожиратели процессорного времени - BRAS и база данных биллинга. вот так вот. а фря нравилась... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...