Как увеличить макс сокет соединений для Yosemite 10.10

2

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

Я настроил /etc/sysctl.conf со следующим:

kern.maxfiles=65536
kern.maxfilesperproc=65536
kern.ipc.somaxconn=10000

С этим на месте, ulimit -n показывает, что у меня максимум 65536 "открытых файлов". Все же мой сервис все еще застревает вокруг 1000-го соединения.

Думая, что, возможно, это что-то особенное для платформы (Node), я повторно реализовал упрощенную версию этого в Golang, но у него есть та же проблема.

Это также происходит, если я разделю сторону «клиента» на несколько процедур, каждый из которых открывает несколько соединений. Сервис всегда застревает вокруг 1000-го соединения.

lsof -p <pid> показывает 1011 соединений IPv6 примерно так:

gochat  25034 username  178u    IPv6 0x11c1273e19ee5c8f       0t0       TCP localhost:http-alt->localhost:50080 (ESTABLISHED)

Что навязывает этот максимальный предел сокетного соединения и как его расширить?

Caffeine Coma
источник
как насчет этого blog.whatsapp.com/196/1-million-is-so-2011
Buscar웃
@ buscar - выглядит многообещающе, но не работает на OSX: sysctl: unknown oid 'kern.ipc.numopensockets'
Caffeine Coma
как насчет этого stackoverflow.com/a/9676852 ) на сервере Linux. И этот stackoverflow.com/a/7580233
Buscar웃

Ответы:

1

Вот и получается, что Go библиотека socketio имеет максимальную настройку по умолчанию 1000 одновременных соединений сокетов. призвание server.SetMaxConnection(10000) (в сочетании с соответственно высоким ulimit -nкак уже упоминалось в вопросе) позволит & gt; 1000 одновременных клиентских подключений.

Caffeine Coma
источник