05.04.11 @ 18:16 Lystopad Aleksandr wrote:

>>>При попытке сделать ngctl list получаю subj. В утреннее время, когда
>>>на mpd меньше нагрузка -- ngctl list работает. В пики примерно 500
>>>интерфейсов у mpd. Утром 200-300. При этом даже в пики телнет в mpd
>>>админ-консоль пускает. Можно смотреть инфу, которую предоставляет
>>>mpd. Юзера работают даже в пики, но subj пугает.
>>
>>Смахивает на нехватку mbuf. Попробовать поднять kern.ipc.nmbclusters
>
>Это которые в netstat -m? Дык там валом, похоже.

Ну, отдельной крутилки для самих mbuf нет. В контексте прерывания доступно
не всё из свободного количества. Возможно, дело в этом, надо проверять.

Было kern.ipc.nmbclusters=128000, поднял в 2 раза. Это значит у меня
будет выделятся до 512Мб памяти для этих целей? Верно, же?

До 576, если точнее. Хотя судя по выясненному ниже, это был другой code path, дело не в кластерах, и можно вернуть nmbclusters обратно (память тоже не резиновая).

>>>Добавил в sysctl
>>>
>>>net.graph.maxdgram=128000
>>>net.graph.recvspace=128000
>>>
>>>не помогло. При больших значениях вообще mpd не запускается.
>>
>>При больших значениях надо еще проверять, чтобы kern.ipc.maxsockbuf был
>>соответствующим.
>
>Вадим, спасибо за ответ!!!!

А помогло?

Ну С kern.ipc.nmbclusters=256000 получилось поставить
net.graph.maxdgram и net.graph.recvspace в значение 196000.

mpd не перестартовывал, но ngctl list стал выводить результат, хотя
за минуту до ввода этих крутилок выдавался сабж.

Гм, не опечатка? Может таки maxsockbuf, а не nmbclusters?

А как бы без прерывания пользовательских сессий узнать поднимится ли
mpd в следующий раз при таких настройках? Или если работает сейчас,
то и поднимется?

В код mpd не смотрел. Думаю, поднимется.

>А как самому мониторить это? Где посмотреть текущее потребление?
Потребление чего именно?

Ну потребление процессом mpd буферов. Потребление вообще netgraph-ом
памяти, буферов и тд. Я хочу знать хватает или нет, может надо
добавить. Хочу это знать и мониторить.

Сам процесс mpd их почти не потребляет (можно смотреть в netstat, с разными -f), а отдельной статистики в ядре, насколько мне известно, кроме vmstat -m / vmstat -z не ведется (из соображений производительности).

--
WBR, Vadim Goncharov

Ответить