Não é possível editar / proc / sys / kernel / threads-max

0

Atualmente, estou construindo uma ferramenta de teste de estresse e, como tal, preciso de um grande número de threads. Já passei por todas as configurações para aumentar o limite, mas há uma última configuração, o limite superior do sistema em /proc/sys/kernel/threads-max , que não consigo alterar.

Eu tentei

sysctl -w kernel.threads-max=200000

Editando manualmente com nano ou echo

echo 200000 > /proc/sys/kernel/threads-max

Editando /etc/sysctl.conf e executando

sysctl -f

Se eu executar esses como sudo , não mostrarei nenhum erro (o novo valor é exibido), mas ao verificar novamente, o valor também não foi alterado. Ao tentar editar o valor com gedit , ele cuspiu um

invalid argument"

qualquer que seja o valor que eu tente, mesmo o original. Não tive nenhum problema em alterar o valor pid_max .

Eu realmente não tenho ideia de por que ele recusa minhas edições, e eu não consegui encontrar ninguém com um problema semelhante, então eu ficaria muito grato se alguém pudesse explicar o que está acontecendo.

    
por Anarkopsykotik 16.06.2017 / 16:04

1 resposta

2

A repsonse encontra-se em man proc(5) , aqui está a parte interessante:

 /proc/sys/kernel/threads-max (since Linux 2.3.11)
                     This file specifies the system-wide limit on the number
                     of threads (tasks) that can be created on the system.

                     Since Linux 4.1, the value that can be written to
                     threads-max is bounded.  The minimum value that can be
                     written is 20.  The maximum value that can be written
                     is given by the constant FUTEX_TID_MASK (0x3fffffff).
                     If a value outside of this range is written to threads-
                     max, the error EINVAL occurs.

                     The value written is checked against the available RAM
                     pages.  If the thread structures would occupy too much
                     (more than 1/8th) of the available RAM pages, threads-
                     max is reduced accordingly.

Eu suponho que sua versão do kernel é > 4.1, então desde 200000 (o número que você tenta) é menor que 0x3fffffff, o problema parece que a RAM disponível não é suficiente.

    
por 23.08.2017 / 11:08