skyb Posted November 11, 2010 Posted November 11, 2010 У меня ситуация- когда на на nas где стоит mpd появляется сессий > ~ 700-800 то у абонентов начинаются проблемы со скоростью. < 5кб. И не важно есть ли ограничение по скорости у этих абонентов или нет, плохо всем. В чем может быть проблема? какие конфиги/логи выложить? # ngctl list ngctl: send msg: No buffer space available нетфлоу генерируется самим MPD set netflow timeouts 1 1 может быть в этом проблема? как посмотреть в каком месте узко, что мешает правильно скорость выдавать абонентам? Вставить ник Quote
terrible Posted November 11, 2010 Posted November 11, 2010 с трафиком всё нормально? процы себя как чуствуют? покажите топы Вставить ник Quote
skyb Posted November 11, 2010 Author Posted November 11, 2010 (edited) 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 November 11, 2010 by skyb Вставить ник Quote
Ivan_83 Posted November 11, 2010 Posted November 11, 2010 Буфера тюньте, уже много раз тема обсуждалась в инете и тут в частности, поиск в помощь! Вставить ник Quote
skyb Posted November 11, 2010 Author Posted November 11, 2010 kern.ipc.maxsockbuf=2621440 net.graph.recvspace=1024000 net.graph.maxdgram=1024000 этого хватит? их через sysctl на лету увеличить можно? Вставить ник Quote
hRUst Posted November 11, 2010 Posted November 11, 2010 (edited) kern.ipc.maxsockbuf=4097152 net.graph.recvspace=512000 net.graph.maxdgram=512000 хватает для 700 online, # ngctl list ngctl: send msg: No buffer space available говорит именно о нехватке этих буферов. На лету можно. Edited November 11, 2010 by hRUst Вставить ник Quote
skyb Posted November 11, 2010 Author Posted November 11, 2010 Простите за глупый вопрос, но уверенным охото быть, то что написали про увеличении буферов это панацея? Вставить ник Quote
Ivan_83 Posted November 11, 2010 Posted November 11, 2010 Для уверенности почитать по исходникам: grep -r "ENOBUFS" /usr/src/sys/netgraph через kldstat посмотреть какие ng модули загружены, те и смотреть по найденному. Вообще, mbuf - используется очень агрессивно для хранения пакетов или их частей, при обработке часто требуются доп мбуф-ы, если их нет - пакеты начинают отбрасываться в никуда. Вставить ник Quote
skyb Posted November 12, 2010 Author Posted November 12, 2010 (edited) 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 November 12, 2010 by skyb Вставить ник Quote
Ivan_83 Posted November 12, 2010 Posted November 12, 2010 Вы не хотите познавать. 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 Вставить ник Quote
skyb Posted November 12, 2010 Author Posted November 12, 2010 # netstat -m 2164/5906/8070 mbufs in use (current/cache/total) 2161/4545/6706/65536 mbuf clusters in use (current/cache/total/max) так и так на максимуме .... Вставить ник Quote
Kostyan Posted November 12, 2010 Posted November 12, 2010 Проверьте правильность составления конфига и пристально посмотрите на отступы в начале строк. Из-за этого могут быть большие глюки у MPD. Вставить ник Quote
skyb Posted November 12, 2010 Author Posted November 12, 2010 (edited) Проверьте правильность составления конфига и пристально посмотрите на отступы в начале строк. Из-за этого могут быть большие глюки у MPD. м? mpd.conf.zip Edited November 12, 2010 by skyb Вставить ник Quote
Lucky SB Posted November 12, 2010 Posted November 12, 2010 ну а netstat -w1 что показывает в момент проблем ? может сетевые не справляются уже ? Вставить ник Quote
Ivan_83 Posted November 12, 2010 Posted November 12, 2010 Вы бы написали конфигурацию железа, и вывод uname -a Тоже может оказать влияние: /boot/loader.conf: kern.maxusers=512 Вставить ник Quote
skyb Posted November 12, 2010 Author Posted November 12, 2010 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 Вставить ник Quote
Giga-Byte Posted November 13, 2010 Posted November 13, 2010 простите, а у вас ядерной памяти хватит так увеличивать буферы? если сильно загнуть настройки можно и панику схлопотать, либо получите какие-нибудь странности в работе самой системы. пойдем от причины. пожалуйста, объясните зачем вам видеть все ноды, всё равно вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать? Вставить ник Quote
skyb Posted November 13, 2010 Author Posted November 13, 2010 Ядерной памяти :) Я незнаю....вот интересуюсь данным вопросом. Они создаются в MPD конечно лучше все завернуть в одну и по ней уже считать, подсказывали что можно это сделать через ipfw ...неособо представляю как, да и непонятно как правильно... Подскажите. недаром обратился же :) Вставить ник Quote
Giga-Byte Posted November 13, 2010 Posted November 13, 2010 Я незнаю....вот интересуюсь данным вопросом. Они создаются в MPD конечно лучше все завернуть в одну и по ней уже считать, подсказывали что можно это сделать через ipfw ...неособо представляю как, да и непонятно как правильно... Подскажите. недаром обратился же :)ничего не понял"лучше всё завернуть в одну и по ней считать" - это вы про что? Вставить ник Quote
skyb Posted November 13, 2010 Author Posted November 13, 2010 вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать? Я про это не понял тогда, я про то что netflow завенуть все в одну ноду и с ней уже работать Вставить ник Quote
Giga-Byte Posted November 13, 2010 Posted November 13, 2010 вам надо будет фильтровать список - не проще сразу выбрать нужную ноду и с ней работать?Я про это не понял тогда, я про то что netflow завенуть все в одну ноду и с ней уже работать дык подключайте ng_netflow к физическому интерфейсу/влану сервера (man ng_netflow) - это будет весь трафик вместе со служебныма из конфига mpd подключение нод ng_netflow уберите. если чего непонятно, спрашивайте. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.