O kern.ipc.somaxconn pode não fazer o que você acha que faz. É o limite para conexões pendentes e não manipuladas . (por exemplo, não é um limite de conexão, mas o limite de conexão de identificador pendente ).
Para usar uma analogia não relacionada ao computador: é o número máximo de telefones tocando (antes de serem atendidos e atendidos), não o número máximo de chamadas telefônicas simultâneas.
Se você tem um backlog tão grande, então é necessário deixar seu aplicativo atender o telefone com mais frequência (por exemplo, fornecer mais recursos, mais CPU, melhor estrutura, etc.).
Observe que a seção http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/configtuning-kernel-limits.html">FreeBSD manual sobre limites de kernel declara isso: (Ênfase minha ).
The kern.ipc.somaxconn sysctl variable limits the size of the listen
queue for accepting new TCP connections. The default value of 128
is typically too low for robust handling of new connections in a
heavily loaded web server environment. For such environments, it is
recommended to increase this value to 1024 or higher. The service
daemon may itself limit the listen queue size
Não tenho experiência com o Nginx, mas também verifico seus arquivos de configuração para o limite acima mencionado do lado do aplicativo.