Mechanic Опубликовано 25 февраля, 2010 (изменено) · Жалоба Есть 2 сервера vpn, на mpd. На обоих используется шейпер, на 1м ng_car, на 2м dummynet. Процессоры похожие core2duo, трафика и абонов приблизительно одинаково. Используется ng_nat,ng_netflow. На обоих процессы ng_queue0 и ng_queue1 более 40-60% использования. машинка dummynet last pid: 3961; load averages: 3.29, 2.79, 2.68 up 6+17:19:48 22:30:47 105 processes: 8 running, 72 sleeping, 25 waiting CPU: 5.2% user, 0.0% nice, 66.2% system, 21.4% interrupt, 7.2% idle Mem: 227M Active, 350M Inact, 369M Wired, 199M Buf, 1006M Free Swap: 5120M Total, 5120M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 3 root -68 - 0K 8K sleep 1 71.7H 74.46% ng_queue1 2 root -68 - 0K 8K sleep 0 53.0H 25.98% ng_queue0 68 root -68 - 0K 8K - 0 39.3H 21.09% dummynet 32 root -68 - 0K 8K WAIT 0 18.0H 19.97% irq259: igb0 30 root -68 - 0K 8K WAIT 0 18.5H 19.19% irq258: igb0 861 root 51 0 51584K 36712K RUN 1 368:22 7.28% mpd5 12 root 171 ki31 0K 8K RUN 0 37.9H 7.08% idle: cpu0 41 root -68 - 0K 8K RUN 1 478:09 5.86% irq264: igb1 39 root -68 - 0K 8K RUN 1 424:13 4.39% irq263: igb1 11 root 171 ki31 0K 8K RUN 1 48.6H 4.05% idle: cpu1 vpn1# netstat -w1 input (Total) output packets errs bytes packets errs bytes colls 107440 0 52102055 108138 0 58523851 0 103402 0 51041090 101621 0 55673735 0 102850 0 49716606 102009 0 56018853 0 102684 0 48722125 102927 0 54884808 0 105994 0 50865826 105481 0 57164811 0 105159 0 49203094 103371 0 54377729 0 106051 0 50517082 103913 0 55816048 0 на ng_car сейчас чуть меньше last pid: 72449; load averages: 1.24, 1.12, 1.01 up 0+03:29:51 20:34:56 84 processes: 3 running, 64 sleeping, 17 waiting CPU: 0.0% user, 0.0% nice, 59.7% system, 0.4% interrupt, 39.9% idle Mem: 72M Active, 167M Inact, 98M Wired, 160K Cache, 199M Buf, 1565M Free Swap: 3072M Total, 3072M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 171 ki31 0K 8K RUN 1 124:29 43.80% idle: cpu1 12 root 171 ki31 0K 8K CPU0 0 116:14 42.58% idle: cpu0 26 root -68 - 0K 8K - 0 55:46 40.19% em0 taskq 3 root -68 - 0K 8K sleep 1 57:09 39.79% ng_queue1 2 root -68 - 0K 8K sleep 0 57:08 37.79% ng_queue0 13 root -32 - 0K 8K WAIT 1 1:58 0.68% swi4: clock sio 662 root 44 0 17656K 12080K select 1 2:29 0.00% mpd5 vpn2# netstat -w1 input (Total) output packets errs bytes packets errs bytes colls 56433 0 32007475 56517 0 30849636 0 52485 0 29743080 52370 0 28549218 0 56965 0 33313992 57034 0 32036304 0 59755 0 33892342 59755 0 32759495 0 56719 0 32495709 56399 0 30993926 0 но если трафик вырастит, то и показатели ng_queue повысятся. Чем обусловлен рост этого процесса ? Какие параметры смотреть ? Изменено 25 февраля, 2010 пользователем Mechanic Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
X-RaY™ Опубликовано 25 февраля, 2010 · Жалоба Странно у меня при в 2 раза большем трафе\ппс 70% айдл , шейпит dummynet, но сетевая ем и дрова яндекс, проц простой и7 920 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 26 февраля, 2010 · Жалоба Интересуют параметры sysctl и loader.conf ng_queue - это потоки для netgraph. Мне в своё время (freebsd 6.2) помогла замена ng_nat на pf nat - нагрузка упала примерно вдвое, плюс сильно упростились настройки файрволла. После этого можно попробовать заменить ng_netflow на pfflowd, чтобы netgraph не использовался вообще, но это, скорее всего, уже без разницы. проц простой и7 920наверное, и автомобиль простой порш кайен? ;-) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mechanic Опубликовано 26 февраля, 2010 · Жалоба ng_netflow - берется из Mpd cat /boot/loader.conf kern.ipc.maxpipekva=32000000 kern.ipc.maxsockbuf=1048576 kern.maxusers=512 kern.maxdsiz=1073741824 kern.dfldsiz=1073741824 kern.maxssiz=134217728 net.inet.tcp.syncache.hashsize=1024 net.inet.tcp.syncache.bucketlimit=100 net.inet.tcp.tcbhashsize=32768 net.graph.maxalloc=4096 #default 4096 #memory #512M mem for kernel vm.kmem_size=512M vm.kmem_size_max=512M #1G mem for kernel #vm.kmem_size=1G #vm.kmem_size_max=1G #Intel em-driver if_em_load="YES" #for 6.9.21 hw.em.rxd=2048 hw.em.txd=2048 hw.em.rx_int_delay=600 hw.em.tx_int_delay=600 hw.em.rx_abs_int_delay=1000 hw.em.tx_abs_int_delay=1000 #Intel ET #if_igb_load="YES" #hw.igb.rxd=2048 #hw.igb.txd=2048 #dev.igb.0.enable_lro=0 #dev.igb.1.enable_lro=0 kern.sugid_coredump=0 kern.corefile=/var/tmp/%N.core net.inet.icmp.icmplim=100 ##kern.maxfilesperproc=32768 ##kern.maxfiles=65536 kern.ipc.somaxconn=2048 kern.ipc.maxsockets=100000 kern.ipc.nmbclusters=100000 #kern.ipc.maxsockbuf=1048576 kern.ipc.maxsockbuf=2097152 #net.inet.ip.intr_queue_maxlen=10000 #net.inet.ip.fw.debug=0 net.inet.ip.fw.dyn_max=20480 net.inet.ip.fw.dyn_buckets=4096 net.inet.ip.fw.one_pass=1 # for dummynet+nat !!!! net.inet.ip.fastforwarding=1 #net.inet.tcp.msl=7500 #net.inet.tcp.rfc1323=1 net.inet.ip.portrange.first=8192 net.inet.ip.portrange.last=65535 #net.inet.ip.portrange.randomized=0 net.inet.ip.intr_queue_maxlen=4096 #add hackers options ... net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.inet.ip.redirect=1 #net.inet.udp.maxdgram=57344 net.inet.udp.recvspace=65535 net.inet.tcp.sendspace=65535 net.inet.tcp.recvspace=65535 net.graph.maxdgram=1024000 net.graph.recvspace=1024000 net.local.stream.recvspace=65535 net.local.stream.sendspace=65535 # Intel(R) PRO/1000 Network Connection 6.9.6 dev.em.0.rx_int_delay=600 dev.em.0.tx_int_delay=600 dev.em.0.rx_abs_int_delay=1000 dev.em.0.tx_abs_int_delay=1000 dev.em.0.rx_processing_limit=1024 # Intel(R) PRO/1000ET Network Connection #dev.igb.0.low_latency=1000 #dev.igb.0.ave_latency=2000 #dev.igb.0.bulk_latency=4000 #dev.igb.0.rx_processing_limit=400 #1000 #dev.igb.0.enable_aim=1 #dev.igb.1.low_latency=1000 #dev.igb.1.ave_latency=2000 #dev.igb.1.bulk_latency=4000 #dev.igb.1.rx_processing_limit=400 #1000 #dev.igb.1.enable_aim=1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 26 февраля, 2010 · Жалоба Что говорит "vmstat -i"? Изменяет ли нагрузку команда "egrep '^dev\.(em|igb)\.' /etc/sysctl.conf | xargs sysctl"? http://forum.nag.ru/forum/index.php?s=&...st&p=470176 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mechanic Опубликовано 26 февраля, 2010 · Жалоба vpn2# vmstat -i interrupt total rate irq14: ata0 7581 1 cpu0: timer 11361735 2017 irq256: em0 7840587 1392 cpu1: timer 11361546 2017 Total 30571449 5429 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mechanic Опубликовано 26 февраля, 2010 · Жалоба vpn1# sysctl dev.em dev.em.0.%desc: Intel(R) PRO/1000 Network Connection 6.9.6.Yandex[$Revision: 1.3 6.2.10 $] dev.em.0.%driver: em dev.em.0.%location: slot=25 function=0 handle=\_SB_.PCI0.ILAN dev.em.0.%pnpinfo: vendor=0x8086 device=0x10bd subvendor=0x8086 subdevice=0x0001 class=0x020000 dev.em.0.%parent: pci0 dev.em.0.debug: -1 dev.em.0.stats: -1 dev.em.0.rx_kthreads: 2 dev.em.0.rx_int_delay: 900 dev.em.0.tx_int_delay: 900 dev.em.0.rx_abs_int_delay: 1800 dev.em.0.tx_abs_int_delay: 1800 dev.em.0.rx_kthread_priority: 127 dev.em.0.wake: 0 vpn1# sysctl dev.igb dev.igb.0.%desc: Intel(R) PRO/1000 Network Connection version - 1.8.4 dev.igb.0.%driver: igb dev.igb.0.%location: slot=0 function=0 dev.igb.0.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000 dev.igb.0.%parent: pci1 dev.igb.0.debug: -1 dev.igb.0.stats: -1 dev.igb.0.flow_control: 3 dev.igb.0.enable_aim: 1 dev.igb.0.low_latency: 1000 dev.igb.0.ave_latency: 2000 dev.igb.0.bulk_latency: 4000 dev.igb.0.rx_processing_limit: 400 dev.igb.1.%desc: Intel(R) PRO/1000 Network Connection version - 1.8.4 dev.igb.1.%driver: igb dev.igb.1.%location: slot=0 function=1 dev.igb.1.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000 dev.igb.1.%parent: pci1 dev.igb.1.debug: -1 dev.igb.1.stats: -1 dev.igb.1.flow_control: 3 dev.igb.1.enable_aim: 1 dev.igb.1.low_latency: 1000 dev.igb.1.ave_latency: 2000 dev.igb.1.bulk_latency: 4000 dev.igb.1.rx_processing_limit: 400 last pid: 7569; load averages: 0.47, 0.57, 0.59 up 7+05:56:14 11:07:13103 processes: 4 running, 72 sleeping, 27 waiting CPU: 1.8% user, 0.0% nice, 33.9% system, 26.6% interrupt, 37.6% idle Mem: 219M Active, 369M Inact, 369M Wired, 199M Buf, 996M Free Swap: 5120M Total, 5120M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 3 root -68 - 0K 8K sleep 1 75.1H 62.35% ng_queue1 12 root 171 ki31 0K 8K RUN 0 43.8H 44.97% idle: cpu0 11 root 171 ki31 0K 8K RUN 1 56.3H 25.39% idle: cpu1 2 root -68 - 0K 8K sleep 0 54.6H 20.75% ng_queue0 32 root -68 - 0K 8K WAIT 0 19.3H 15.97% irq259: igb0 30 root -68 - 0K 8K WAIT 0 19.7H 14.36% irq258: igb0 861 root 47 0 51584K 36712K CPU1 1 391:45 4.20% mpd5 41 root -68 - 0K 8K WAIT 1 501:09 3.47% irq264: igb1 39 root -68 - 0K 8K WAIT 1 447:02 3.27% irq263: igb1 14 root -32 - 0K 8K WAIT 1 168:27 0.59% swi4: clock sio 899 root 47 0 17324K 13836K select 1 136:09 0.49% snmpd 35 root -68 - 0K 8K WAIT 0 129:19 0.20% irq261: igb1 26 root -68 - 0K 8K WAIT 0 75:16 0.10% irq256: igb0 после egrep '^dev\.(em|igb)\.' /etc/sysctl.conf | xargs sysctl и убрал жесткую привязку процессов к ядрам last pid: 14377; load averages: 0.43, 0.50, 0.53 up 7+06:08:09 11:19:08 103 processes: 5 running, 71 sleeping, 27 waiting CPU: 2.6% user, 0.0% nice, 39.7% system, 23.7% interrupt, 34.0% idle Mem: 219M Active, 369M Inact, 370M Wired, 199M Buf, 996M Free Swap: 5120M Total, 5120M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 12 root 171 ki31 0K 8K RUN 0 43.8H 48.29% idle: cpu0 2 root -68 - 0K 8K CPU1 1 54.6H 39.45% ng_queue0 3 root -68 - 0K 8K RUN 1 75.2H 39.26% ng_queue1 30 root -68 - 0K 8K WAIT 0 19.8H 23.10% irq258: igb0 32 root -68 - 0K 8K WAIT 1 19.3H 12.06% irq259: igb0 11 root 171 ki31 0K 8K RUN 1 56.4H 10.60% idle: cpu1 39 root -68 - 0K 8K WAIT 0 447:30 5.76% irq263: igb1 41 root -68 - 0K 8K WAIT 0 501:38 3.56% irq264: igb1 861 root 46 0 51584K 36712K select 1 392:14 2.49% mpd5 при этом трафика vpn1# netstat -w1 input (Total) output packets errs bytes packets errs bytes colls 78761 0 36239246 77050 0 40603218 0 76818 0 34644820 74683 0 39324546 0 77396 0 34999952 75757 0 39036423 0 74002 0 34453127 72652 0 39118048 0 73485 0 34118037 72418 0 38579060 0 77552 0 36123170 75736 0 41505664 0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dm1try Опубликовано 28 февраля, 2010 · Жалоба Рост ng_queue пропорционален росту графа в подсистеме Netgraph. Очевидно, что путь пакета в этом графе должен быть кратчайшим, отсюда следует, что навешивать доп. сервисы в mpd следует аккуратно и в первую очередь необходимо избавиться от NAT на NAS-ах. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Giga-Byte Опубликовано 1 марта, 2010 · Жалоба ... что навешивать доп. сервисы в mpd следует аккуратно и в первую очередь необходимо избавиться от NAT на NAS-ах. угу, а на больших скоростях и от rate-limit-та (ng_car) избавиться на NAS-ах Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 1 марта, 2010 · Жалоба угу, а на больших скоростях и от rate-limit-та (ng_car) избавиться на NAS-ах Насколько я могу судить, оно не столько от скорости зависит, сколько от количества нод и глубины графа. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mechanic Опубликовано 1 марта, 2010 · Жалоба ... что навешивать доп. сервисы в mpd следует аккуратно и в первую очередь необходимо избавиться от NAT на NAS-ах.угу, а на больших скоростях и от rate-limit-та (ng_car) избавиться на NAS-ах -nat, -ng_car и что тогда этот нас будет делать ?! авторизовать и и маршрутизировать абонов ?не слишком жирно такой функционал на одном сервере ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 1 марта, 2010 · Жалоба -nat, -ng_car и что тогда этот нас будет делать ?! авторизовать и и маршрутизировать абонов ?не слишком жирно такой функционал на одном сервере ? mpd + ipfw + dummynet на одном сервере, nat + netflow + bgp на втором.Без mpd у меня нагрузка распределилась почти поровну. Суммарная производительность такой связки оказалась выше, чем у двух параллельно работающих серверов с полным набором сервисов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
No_name Опубликовано 1 марта, 2010 · Жалоба -nat, -ng_car и что тогда этот нас будет делать ?! авторизовать и и маршрутизировать абонов ?не слишком жирно такой функционал на одном сервере ? mpd + ipfw + dummynet на одном сервере, nat + netflow + bgp на втором.Без mpd у меня нагрузка распределилась почти поровну. Суммарная производительность такой связки оказалась выше, чем у двух параллельно работающих серверов с полным набором сервисов. Аналогично! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dm1try Опубликовано 2 марта, 2010 · Жалоба ... что навешивать доп. сервисы в mpd следует аккуратно и в первую очередь необходимо избавиться от NAT на NAS-ах.угу, а на больших скоростях и от rate-limit-та (ng_car) избавиться на NAS-ах -nat, -ng_car и что тогда этот нас будет делать ?! авторизовать и и маршрутизировать абонов ?не слишком жирно такой функционал на одном сервере ? Не слишком, так Вы сможете авторизовать до 2500 абонентов (одновременных сессий) на одном сервере, а в текущей ситуации сколько?Да и в самом деле, что Core2 и Asus - это дорогое решение? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mechanic Опубликовано 2 марта, 2010 · Жалоба сейчас нормально 1000-1200 , далее проблемнее фактически если выкинуть nat и выдавать динамически ip-адреса, то можно и в текущей конфигурации выжать больше ?! bgp у меня на отельном сервере, а снятие netflow не думаю, что потребляет значительный ресурс ( используется прямо в mpd) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...