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

Странности в MPD Большие странности

У меня ситуация- когда на на nas где стоит mpd появляется сессий > ~ 700-800 то у абонентов начинаются проблемы со скоростью. < 5кб. И не важно есть ли ограничение по скорости у этих абонентов или нет, плохо всем. В чем может быть проблема? какие конфиги/логи выложить?

# ngctl list
ngctl: send msg: No buffer space available

нетфлоу генерируется самим MPD

set netflow timeouts 1 1

может быть в этом проблема? как посмотреть в каком месте узко, что мешает правильно скорость выдавать абонентам?

Share this post


Link to post
Share on other sites

с трафиком всё нормально? процы себя как чуствуют? покажите топы

Share this post


Link to post
Share on other sites

23-32 % загрузки при 2000 сессиях. Проц i7

а это

CPU 0:  0.0% user,  0.0% nice,  0.0% system, 10.2% interrupt, 89.8% idle
CPU 1:  0.0% user,  0.0% nice,  0.4% system,  0.0% interrupt, 99.6% idle
CPU 2:  0.0% user,  0.0% nice, 19.2% system,  0.0% interrupt, 80.8% idle
CPU 3:  0.0% user,  0.0% nice,  0.8% system,  0.0% interrupt, 99.2% idle
CPU 4:  0.0% user,  0.0% nice,  0.0% system,  0.4% interrupt, 99.6% idle
CPU 5:  0.0% user,  0.0% nice,  0.0% system, 15.8% interrupt, 84.2% idle
CPU 6:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle

при

# ifconfig | grep ^ng | wc -l
     420

что значит с трафиком все нормально? Не понял

Edited by skyb

Share this post


Link to post
Share on other sites

Буфера тюньте, уже много раз тема обсуждалась в инете и тут в частности, поиск в помощь!

Share this post


Link to post
Share on other sites

kern.ipc.maxsockbuf=2621440
net.graph.recvspace=1024000
net.graph.maxdgram=1024000

этого хватит? их через sysctl на лету увеличить можно?

Share this post


Link to post
Share on other sites

kern.ipc.maxsockbuf=4097152
net.graph.recvspace=512000
net.graph.maxdgram=512000

 

хватает для 700 online,

 

# ngctl list
ngctl: send msg: No buffer space available

 

говорит именно о нехватке этих буферов. На лету можно.

Edited by hRUst

Share this post


Link to post
Share on other sites

Простите за глупый вопрос, но уверенным охото быть, то что написали про увеличении буферов это панацея?

Share this post


Link to post
Share on other sites

Для уверенности почитать по исходникам:

 

grep -r "ENOBUFS" /usr/src/sys/netgraph

 

через kldstat посмотреть какие ng модули загружены, те и смотреть по найденному.

 

Вообще, mbuf - используется очень агрессивно для хранения пакетов или их частей, при обработке часто требуются доп мбуф-ы, если их нет - пакеты начинают отбрасываться в никуда.

Share this post


Link to post
Share on other sites
kern.ipc.maxsockbuf=4097152
net.graph.recvspace=512000
net.graph.maxdgram=512000

 

хватает для 700 online,

 

# ngctl list
ngctl: send msg: No buffer space available

 

говорит именно о нехватке этих буферов. На лету можно.

# sysctl net.graph.recvspace=1024000
net.graph.recvspace: 20480 -> 1024000
pppoe# sysctl net.graph.maxdgram=1024000
net.graph.maxdgram: 20480 -> 1024000
pppoe# ngctl list
ngctl: can't create node: No buffer space available
# sysctl -a | grep graph
net.graph.msg_version: 8
net.graph.abi_version: 11
net.graph.maxdata: 512
net.graph.maxalloc: 4096
net.graph.threads: 8
net.graph.control.proto: 2
net.graph.data.proto: 1
net.graph.family: 32
net.graph.recvspace: 1024000
net.graph.maxdgram: 1024000

что я делаю неправильно?

# ifconfig | grep ^ng | wc -l
     311

Edited by skyb

Share this post


Link to post
Share on other sites

Вы не хотите познавать.

 

google: mbuf увеличить

выдаёт

http://www.opennet.ru/base/net/tune_freebsd.txt.html

 

Состояние задействованных mbuf кластеров можно посмотреть командой:

 

>netstat -m

4/1421/1425 mbufs in use (current/cache/total)

0/614/614/25600 mbuf clusters in use (current/cache/total/max)

 

 

Увеличение числа mbuf кластеров во FreeBSD 6.2 можно произвести в любой момент

через параметр kern.ipc.nmbclusters:

 

sysctl kern.ipc.nmbclusters=65536

 

 

Для более ранних версий FreeBSD число mbuf кластеров можно было установить только

на этапе загрузки:

 

/boot/loader.conf:

kern.ipc.nmbclusters=65536

 

25000 mbuf clusters = 55M

32768 mbuf clusters = 74M

65536 mbuf clusters = 144M

 

 

25000 mbuf кластеров занимают примерно 50Мб памяти, 32000 - 74 Мб, 65000 -

144Мб (рост по степени 2). 65000 - пограничное значение, превышать которое не

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

доступного ядру.

Вам нужны первые два раздела из этого доклада.

 

и ещё можно почитать

http://www.freebsd.org/doc/ru_RU.KOI8-R/bo...tml#NMBCLUSTERS

Share this post


Link to post
Share on other sites

# netstat -m
2164/5906/8070 mbufs in use (current/cache/total)
2161/4545/6706/65536 mbuf clusters in use (current/cache/total/max)

 

так и так на максимуме ....

Share this post


Link to post
Share on other sites

Проверьте правильность составления конфига и пристально посмотрите на отступы в начале строк. Из-за этого могут быть большие глюки у MPD.

Share this post


Link to post
Share on other sites

Проверьте правильность составления конфига и пристально посмотрите на отступы в начале строк. Из-за этого могут быть большие глюки у MPD.

м?

mpd.conf.zip

Edited by skyb

Share this post


Link to post
Share on other sites

ну а netstat -w1 что показывает в момент проблем ?

может сетевые не справляются уже ?

Share this post


Link to post
Share on other sites

Вы бы написали конфигурацию железа, и вывод uname -a

 

Тоже может оказать влияние:

/boot/loader.conf:

kern.maxusers=512

Share this post


Link to post
Share on other sites

4 гига оператывы, i7

uname -a
7.3-RELEASE-p3 FreeBSD 7.3-RELEASE-p3 #0: Tue Oct 12 13:14:37 VLAST 2010     :/usr/obj/usr/src/sys/GENERIC  i386

Share this post


Link to post
Share on other sites

простите, а у вас ядерной памяти хватит так увеличивать буферы?

 

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

 

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

всё равно вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать?

 

Share this post


Link to post
Share on other sites

Ядерной памяти :)

 

Я незнаю....вот интересуюсь данным вопросом. Они создаются в MPD конечно лучше все завернуть в одну и по ней уже считать, подсказывали что можно это сделать через ipfw ...неособо представляю как, да и непонятно как правильно... Подскажите. недаром обратился же :)

Share this post


Link to post
Share on other sites
Я незнаю....вот интересуюсь данным вопросом. Они создаются в MPD конечно лучше все завернуть в одну и по ней уже считать, подсказывали что можно это сделать через ipfw ...неособо представляю как, да и непонятно как правильно... Подскажите. недаром обратился же :)
ничего не понял

"лучше всё завернуть в одну и по ней считать" - это вы про что?

Share this post


Link to post
Share on other sites
вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать?

Я про это не понял тогда, я про то что netflow завенуть все в одну ноду и с ней уже работать

Share this post


Link to post
Share on other sites
вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать?
Я про это не понял тогда, я про то что netflow завенуть все в одну ноду и с ней уже работать

дык подключайте ng_netflow к физическому интерфейсу/влану сервера (man ng_netflow) - это будет весь трафик вместе со служебным

а из конфига mpd подключение нод ng_netflow уберите.

 

если чего непонятно, спрашивайте.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this