LINUX.ORG.RU
ФорумAdmin

Переполнение очереди запросов в freebsd (Listen queue overflow)

 , , , ,


0

0

На freebsd 9.2 крутится торрент (transmission), в моменты мощной закачки в логах начинается срач типа

sonewconn: pcb 0xfffffe0058b7d7a8: Listen queue overflow: 193 already in queue awaiting acceptance
как я разгуглил, 193 это превышение 3/2 лимита tcp сокетов, а среди активных очередей запросов 128 только у торрента (видно по порту в netstat), то есть виновник переполнения очереди найден.
netstat -LaAn | grep fffffe00
fffffe00b9f6c3d0 tcp4  19/0/128       *.56789

А дальше то что делать? везде пишут что надо увеличить лимит kern.ipc.somaxconn, так у меня этот параметр и так стоит 1024, я руками даже забиваю sysctl kern.ipc.somaxconn=4096 а netstat все равно показывает что лимит (QLIM) 128. Покурил еще манов.

sysctl kern.ipc.maxsockets=204800
kern.ipc.maxsockets: 65536 -> 204800
и опять бестолку.

Вот тут http://lawrencechen.net/2014/sonewconn-pcb-0xfffffe006acd9310-listen-queue чувак расписал подобный траходром более подробно, но тоже не написал что делать.

★★★★★

Могу ошибаться, но крутишь ты не там. Посмотри в сторону /etc/login.conf на предмет параметра openfiles-max для группы, в которой бежит transmission.

TL;RD: ulimit -n

beastie ★★★★★ ()

netstat -L покажет listen queue каждого процесса, который случает сокет. Скорее всего нужно увеличивать listen queue на уровне самого приложения.

iron ★★★★★ ()
Ответ на: комментарий от iron

нужно увеличивать listen queue на уровне самого приложения

в тонких настройках transmission ничего подобного нет, есть ограничения на общее количество соединений (стоит 1000), но тут нюанс в том, что ОС выделяет приложению очередь сетевых сокетов всего 128, при том что все известные мне настройки ядра выставлены намного больше

Lordwind ★★★★★ ()
Ответ на: комментарий от beastie

Особенность торрентов в том, что куча соединений может идти к нескольким файлам. Даже если могло быть ограничение на их количество, то:

kern.maxfiles: 256000
kern.maxfilesperproc: 230400

Lordwind ★★★★★ ()

Прикол

После sysctl kern.ipc.somaxconn=4096 надо рестартануть сервис, чтобы изменения вступили в силу

anonymous ()
Ответ на: Прикол от anonymous

Дык я и перегруз делал, толку ноль

Lordwind ★★★★★ ()
Ответ на: комментарий от Lordwind

решение найдено? а то столкнулся с этим....

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.