Primeiramente, obrigado por todas as suas respostas. Eles estão bem, claro, mas o motivo do meu problema foi um pouco mais profundo, dentro do código-fonte do kernel:)
Eu tento eplain minha solução passo a passo, o que eu encontrei.
Então, como @citrin disse que kern.threads.max_threads_per_proc
é necessário para ser configurado em sysctl.conf. Mas isso não ajuda a mudar o valor mais de 1500 (isso é kernel max e defaul pelo caminho). Portanto, isso ocorre porque existe outro limite no sistema que substitui qualquer um dos valores definidos pelo usuário. Eu não sabia exatamente onde está, então tentei encontrar algo nas fontes do kernel.
Eu encontrei este valor dentro das fontes do kernel: /usr/src/sys/kern/kern_thread.c
. Ele contém código como este:
int max_threads_per_proc = 1500;
SYSCTL_INT(_kern_threads, OID_AUTO, max_threads_per_proc, CTLFLAG_RW,
&max_threads_per_proc, 0, "Limit on threads per proc");
Eu alterei esse valor para 5000 e construo um novo kernel com a configuração GENERIC
e o instalei. Houve uma pequena surpresa para mim porque eu tinha limite de thread configurado 4096 dentro de sysctl.conf, mas o valor de trabalho era 5000, como nas fontes.
Embora os valores do kernel de algum modo substituam o definido pelo usuário, isso ainda causa perguntas, mas agora meu problema está resolvido, o limite do thread foi permanentemente aumentado.
Obrigado pelas suas respostas novamente.