Мне трудно судить о росте производительности именно между 7.2 - 8.0
У нас раньше PPPoE был на всех клиентских роутерах (там кроме PPPoE еще самописная авторизация со статическими IP), а недавно выделили один из роутеров именно для PPPoE, это было уже на 8.0 RC1 (при чем для эксперимента выбрали самый слабый по железу роутер, думаем всю сетку на PPPoE переводить)
железо:
CPU: Genuine Intel(R) CPU 2160 @ 1.80GHz (1808.70-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x6f2 Stepping = 2
real memory = 1073741824 (1024 MB)
pppoe-server# uname -a
FreeBSD pppoe-server.en.net.ua 8.0-RELEASE FreeBSD 8.0-RELEASE #1: Tue Nov 24 02:14:50 EET 2009
rot@pppoe-server.en.net.ua:/usr/obj/usr/src/sys/PPPOE amd64
сейчас через него идут 200 с лишним клиентов со 150-160 мегабитами трафика. Сервер летает :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Vlan'ов там аж целый один.
Сервер используется как pptp VPN, так что количество pptp туннелей - это количество всех интерфейсов - 3
Вот общий объем трафика, проходящий через машину
Невнимательные вы. Не нужно ставить драйвера для Ядлекса.
Я выше показывал вывод команды systat -vmstat 1
Внимательно посмотрите, сколько у меня IRQ занимает каждая карточка.
Ставьте себе в сервер карточки, поддерживающие MSI-X - и все будет работать.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Далеко не у всех есть карточки с поддержкой MSI-X. И если уже есть парк серверов, без msi-x карточек и с 4-8 ядерными процессорами, то почему бы не использовать ресурсы более грамотно?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ресурсы все ракно не будут использоваться "более грамотно".
С драйверами от Яндекса, карточки будут всего-навсего работать в несколько потоков, а не использовать несколько IRQ. Во FreeBSD 8 появилась возможность распараллеливать работу netisr, привязывая каждый поток его к IRQ. Поэтому, моя карточка, использующая 3 IRQ будет использовать 3 потока netisr, а Ваша - всего один.
> The FreeBSD netisr framework has been reimplemented for parallel threading support. This is a kernel network dispatch interface which allows device drivers (and other packet sources) to direct packets to protocols for directly dispatched or deferred processing. The new implementation supports up to one netisr thread per CPU, and several benchmarks on SMP machines show substantial performance improvement over the previous version.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
FreeBSD 8 amd64, mpd5.3 из портов, сегодня заметил интересный эффект - соединение сразу падало без ошибки. из логов видно, что происходит коннект на уже существующий ng, соответственно невозможно привязать выданный ip к этому ng. В системе видно что некоторое время существуют 2 одинаковых ng. И куча ошибок ядра ifa_del_loopback_route: insertion/deletion failed
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
по netstat -in пристутствуют 2 ng с одинаковым номером, один пустой, другой с pptp. Ошибка в мпд - на этапе выдачи ip новому pptp, так как тот ng уже занят и имеет свой ip. Логи ротировались, ошибка ускакала… proxy arp закомментарен
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Выдавай интерфейс со стороны сервера из пула.
У меня так решилась проблема с loopback_route
Сейчас над этим вроде как работает Луиджи. И вроде бы как в HEAD какие-то подвижки идут. По крайней мере в maillist'е об этом была дискуссия.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
IP-адреса выдаются радиусом из биллинга :(, может быть комп сильно быстрый ? 2 4-хядерных проца… И ошибка 629 у клиента почти всегда при первом подключении…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Доброе время суток.
Кто-то пробовал уже mpd с новой FreeBSD8? Какие версии mpd? PPtP/PPPoE?
MPD 5.3 PPPoE у меня прекрасно работает на 8.0 начиная с RC1
proxy-arp не работает
vmoiseev: в 8.0 производительность возросла? Интересует сетевой стэк. Если есть конкретика, то кинь, плиз, цифры.
Спасибо.
Мне трудно судить о росте производительности именно между 7.2 - 8.0
У нас раньше PPPoE был на всех клиентских роутерах (там кроме PPPoE еще самописная авторизация со статическими IP), а недавно выделили один из роутеров именно для PPPoE, это было уже на 8.0 RC1 (при чем для эксперимента выбрали самый слабый по железу роутер, думаем всю сетку на PPPoE переводить)
железо:
CPU: Genuine Intel(R) CPU 2160 @ 1.80GHz (1808.70-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x6f2 Stepping = 2
real memory = 1073741824 (1024 MB)
pppoe-server# uname -a
FreeBSD pppoe-server.en.net.ua 8.0-RELEASE FreeBSD 8.0-RELEASE #1: Tue Nov 24 02:14:50 EET 2009
rot@pppoe-server.en.net.ua:/usr/obj/usr/src/sys/PPPOE amd64
сейчас через него идут 200 с лишним клиентов со 150-160 мегабитами трафика. Сервер летает :)
Покажи, пожалуйста, top -SH где информация о камнях.
Клиенты шейпятся?
pppoe-server# top -SH
last pid: 58081; load averages: 0.68, 0.47, 0.38 up 8+00:05:15 12:54:35
72 processes: 3 running, 57 sleeping, 12 waiting
CPU: 0.0% user, 0.0% nice, 33.6% system, 2.1% interrupt, 64.4% idle
Mem: 27M Active, 502M Inact, 201M Wired, 4K Cache, 111M Buf, 254M Free
Swap: 2048M Total, 2048M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
11 root 171 ki31 0K 32K CPU0 0 135.1H 73.78% {idle: cpu0}
11 root 171 ki31 0K 32K RUN 1 143.5H 57.57% {idle: cpu1}
0 root -68 0 0K 144K - 0 43.6H 29.39% {em0 taskq}
0 root -68 0 0K 144K - 1 25.9H 1.17% {em1 taskq}
12 root -68 - 0K 192K WAIT 0 153:24 1.17% {irq19: em1 atapc}
2511 root 44 0 9368K 3264K select 0 1:24 0.20% zebra
0 root -68 0 0K 144K - 0 29.7H 0.10% {dummynet}
13 root 44 - 0K 16K - 0 45:54 0.00% yarrow
12 root -32 - 0K 192K WAIT 1 35:43 0.00% {swi4: clock}
17 root 44 - 0K 16K syncer 1 16:37 0.00% syncer
76053 root 44 0 32080K 10328K select 0 16:15 0.00% {mpd5}
3059 root 44 0 10824K 3036K select 1 1:30 0.00% ntpd
2571 root 44 0 5992K 1544K select 0 1:21 0.00% syslogd
2517 root 44 0 12976K 5668K select 1 1:16 0.00% ospfd
12 root -32 - 0K 192K WAIT 1 1:05 0.00% {swi4: clock}
трафик каждому клиенту нарезается через ipfw pipe (отдельно инет-локалка) с пайпов снимается статистика по трафику.
Спасибо :-)
По идее должны были разгрузиться процессоры, так как netisr теперь многопоточный. Но у меня он отключен по причине нестабильной работы.
vpn8# ifconfig -lu | wc -w
2023
vpn# top -SH
last pid: 2018; load averages: 1.50, 1.59, 1.58 up 0+05:21:12 17:13:18
127 processes: 12 running, 88 sleeping, 27 waiting
CPU: 2.7% user, 0.0% nice, 12.9% system, 14.7% interrupt, 69.7% idle
Mem: 55M Active, 9012K Inact, 231M Wired, 24K Cache, 16M Buf, 3635M Free
Swap: 4096M Total, 4096M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND
10 root 171 ki31 0K 128K RUN 2 269:41 85.06% {idle: cpu2}
10 root 171 ki31 0K 128K CPU7 7 278:04 84.57% {idle: cpu7}
10 root 171 ki31 0K 128K RUN 5 264:48 83.69% {idle: cpu5}
10 root 171 ki31 0K 128K CPU6 6 269:41 80.08% {idle: cpu6}
10 root 171 ki31 0K 128K RUN 0 238:16 75.68% {idle: cpu0}
10 root 171 ki31 0K 128K CPU1 1 240:33 66.89% {idle: cpu1}
10 root 171 ki31 0K 128K CPU4 4 203:56 46.39% {idle: cpu4}
10 root 171 ki31 0K 128K CPU3 3 258:59 44.87% {idle: cpu3}
776 root 76 0 71616K 43396K select 7 52:39 7.47% {mpd5}
12 root 51 - 0K 128K sleep 7 28:18 3.37% {ng_queue5}
11 root -68 - 0K 464K WAIT 4 92:14 2.59% {irq259: em1}
12 root 51 - 0K 128K sleep 4 28:23 2.20% {ng_queue6}
12 root 50 - 0K 128K CPU6 6 28:23 2.10% {ng_queue7}
12 root 51 - 0K 128K sleep 3 28:16 1.95% {ng_queue4}
12 root 50 - 0K 128K sleep 3 28:19 1.86% {ng_queue0}
12 root 51 - 0K 128K sleep 4 28:28 1.66% {ng_queue1}
12 root 50 - 0K 128K sleep 5 28:22 1.56% {ng_queue3}
vpn#
vpn8# ifconfig -lu | wc -w
2023
это с вланами? лучше netstat -rn | grep ' ng' :-)
А покажи, плиз, сколько трафика?
Vlan'ов там аж целый один.
Сервер используется как pptp VPN, так что количество pptp туннелей - это количество всех интерфейсов - 3
Вот общий объем трафика, проходящий через машину
vpn8# ifconfig -lu | wc -w
2127
vpn8# netstat -w 1 -h
input (Total) output
packets errs bytes packets errs bytes colls
156K 0 82M 163K 0 118M 0
155K 0 82M 161K 0 117M 0
154K 0 82M 161K 0 117M 0
153K 0 81M 159K 0 116M 0
154K 0 81M 160K 0 116M 0
^C
vpn8#
А вот вывод странички systat -vmstat 1
1 users Load 1.75 1.73 1.72 Dec 3 16:57
Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER
Tot Share Tot Share Free in out in out
Act 76932 6096 405904 7248 3675760 count
All 182304 6936 1074227k 19292 pages
Proc: Interrupts
r p d s w Csw Trp Sys Int Sof Flt cow 47696 total
34 367k 10 2456 31k 1042 zfod uhci3 ehci
ozfod 2002 cpu0: time
16.4%Sys 12.0%Intr 2.3%User 0.0%Nice 69.2%Idle %ozfod 8020 em0 irq256
| | | | | | | | | | | daefr 7690 em0 irq257
========++++++> prcfr em0 irq258
15 dtbuf 497 totfr 7963 em1 irq259
Namei Name-cache Dir-cache 100000 desvn react 8000 em1 irq260
Calls hits % hits % 814 numvn pdwak em1 irq261
20 20 100 81 frevn pdpgs ahci0 262
intrn 2004 cpu6: time
Disks ada0 pass0 267504 wire 2002 cpu1: time
KB/t 0.00 0.00 58128 act 2003 cpu5: time
tps 0 0 22280 inact 2002 cpu3: time
MB/s 0.00 0.00 24 cache 2004 cpu7: time
%busy 0 0 3675736 free 2002 cpu2: time
17360 buf 2004 cpu4: time
Судя по отзывам неплохо.
Плохо только что для 8 нет драйвера em от Яндекса…
> для 8 нет драйвера em от Яндекса..
от самого intel-a их тоже еще нет.
Невнимательные вы. Не нужно ставить драйвера для Ядлекса.
Я выше показывал вывод команды systat -vmstat 1
Внимательно посмотрите, сколько у меня IRQ занимает каждая карточка.
Ставьте себе в сервер карточки, поддерживающие MSI-X - и все будет работать.
Далеко не у всех есть карточки с поддержкой MSI-X. И если уже есть парк серверов, без msi-x карточек и с 4-8 ядерными процессорами, то почему бы не использовать ресурсы более грамотно?
Ресурсы все ракно не будут использоваться "более грамотно".
С драйверами от Яндекса, карточки будут всего-навсего работать в несколько потоков, а не использовать несколько IRQ. Во FreeBSD 8 появилась возможность распараллеливать работу netisr, привязывая каждый поток его к IRQ. Поэтому, моя карточка, использующая 3 IRQ будет использовать 3 потока netisr, а Ваша - всего один.
> The FreeBSD netisr framework has been reimplemented for parallel threading support. This is a kernel network dispatch interface which allows device drivers (and other packet sources) to direct packets to protocols for directly dispatched or deferred processing. The new implementation supports up to one netisr thread per CPU, and several benchmarks on SMP machines show substantial performance improvement over the previous version.
Несколько потоков, и обрабатываться разными ядрами. Никто не спорит что msi-x лучше:)
А то что netisr распаралеливается- это огромный плюс
FreeBSD 8 amd64, mpd5.3 из портов, сегодня заметил интересный эффект - соединение сразу падало без ошибки. из логов видно, что происходит коннект на уже существующий ng, соответственно невозможно привязать выданный ip к этому ng. В системе видно что некоторое время существуют 2 одинаковых ng. И куча ошибок ядра ifa_del_loopback_route: insertion/deletion failed
Чот значит "на уже существующий ng"? По чему это видно? Почитай .
: http://lists.freebsd.org/pipermail/freebsd-net/2009-December/024030.html
по netstat -in пристутствуют 2 ng с одинаковым номером, один пустой, другой с pptp. Ошибка в мпд - на этапе выдачи ip новому pptp, так как тот ng уже занят и имеет свой ip. Логи ротировались, ошибка ускакала… proxy arp закомментарен
Выдавай интерфейс со стороны сервера из пула.
У меня так решилась проблема с loopback_route
Сейчас над этим вроде как работает Луиджи. И вроде бы как в HEAD какие-то подвижки идут. По крайней мере в maillist'е об этом была дискуссия.
IP-адреса выдаются радиусом из биллинга :(, может быть комп сильно быстрый ? 2 4-хядерных проца… И ошибка 629 у клиента почти всегда при первом подключении…
вот оно
netstat -in |grep ng206
ng206 1400 <Link#216> 2980 0 2435 0 0
ng206 1400 xx.xx.xx.7/3 xx.xx.xx.7 44137 - 0 - -
Вот лог мпд при этом -
Dec 24 10:00:44 games1 mpd: Bundle: Interface ng206 created
Dec 24 10:00:44 games1 mpd: Link: Join bundle "B-207"
Dec 24 10:00:44 games1 mpd: Bundle: Status update: up 1 link, total bandwidth 64000 bps
Dec 24 10:00:44 games1 mpd: IPCP: Open event
Dec 24 10:00:44 games1 mpd: IPCP: state change Initial -> Starting
Dec 24 10:00:44 games1 mpd: IPCP: LayerStart
Dec 24 10:00:44 games1 mpd: IPCP: Up event
Dec 24 10:00:44 games1 mpd: IPCP: state change Starting -> Req-Sent
Dec 24 10:00:44 games1 mpd: IPCP: SendConfigReq #1
Dec 24 10:00:44 games1 mpd: IPADDR xx.xx.xx..7
Dec 24 10:00:44 games1 mpd: COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
Dec 24 10:00:44 games1 mpd: IPCP: rec'd Configure Request #6 (Req-Sent)
Dec 24 10:00:44 games1 mpd: IPADDR 0.0.0.0
Dec 24 10:00:44 games1 mpd: NAKing with 10.19.6.9
Dec 24 10:00:44 games1 mpd: PRIDNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: NAKing with xx.xx.xx.1
Dec 24 10:00:44 games1 mpd: PRINBNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: SECDNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: SECNBNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: IPCP: SendConfigRej #6
Dec 24 10:00:44 games1 mpd: PRINBNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: SECDNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: SECNBNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: IPCP: rec'd Configure Reject #1
(Req-Sent)
Dec 24 10:00:44 games1 mpd: COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
Dec 24 10:00:44 games1 mpd: IPCP: SendConfigReq #2
Dec 24 10:00:44 games1 mpd: IPADDR xx.xx.xx.7
Dec 24 10:00:44 games1 mpd: IPCP: rec'd Configure Request #7 (Req-Sent)
Dec 24 10:00:44 games1 mpd: IPADDR 0.0.0.0
Dec 24 10:00:44 games1 mpd: NAKing with 10.19.6.9
Dec 24 10:00:44 games1 mpd: PRIDNS 0.0.0.0
Dec 24 10:00:44 games1 mpd: NAKing with xx.xx.xx.1
Dec 24 10:00:44 games1 mpd: IPCP: SendConfigNak #7
Dec 24 10:00:44 games1 mpd: IPADDR 10.19.6.9
Dec 24 10:00:44 games1 mpd: PRIDNS xx.xx.xx.1
Dec 24 10:00:44 games1 mpd: IPCP: rec'd Configure Ack #2 (Req-Sent)
Dec 24 10:00:44 games1 mpd: IPADDR xx.xx.xx.7
Dec 24 10:00:44 games1 mpd: IPCP: state change Req-Sent -> Ack-Rcvd
Dec 24 10:00:44 games1 mpd: IPCP: rec'd Configure Request #8 (Ack-Rcvd)
Dec 24 10:00:44 games1 mpd: IPADDR 10.19.6.9
Dec 24 10:00:44 games1 mpd: 10.19.6.9 is OK
Dec 24 10:00:44 games1 mpd: PRIDNS xx.xx.xx.1
Dec 24 10:00:44 games1 mpd: IPCP: SendConfigAck #8
Dec 24 10:00:44 games1 mpd: IPADDR 10.19.6.9
Dec 24 10:00:44 games1 mpd: PRIDNS xx.xx.xx.1
Dec 24 10:00:44 games1 mpd: IPCP: state change Ack-Rcvd -> Opened
Dec 24 10:00:44 games1 mpd: IPCP: LayerUp
Dec 24 10:00:44 games1 mpd: xx.xx.xx.7 -> 10.19.6.9
Dec 24 10:00:44 games1 mpd: IFACE: Adding IPv4 address to ng206 failed: File exists
Dec 24 10:00:44 games1 mpd: IFACE: IfaceChangeAddr() error, closing IPCP
Выдавай адреса из пула.
Не клиентские, а второй конец туннеля, который на сервере находится.