Como o limite máximo e máximo de “arquivos abertos máximos” são definidos para processos específicos?

3

Eu usei o comando cat /proc/<pid>/limits para verificar o limite máximo e máximo do arquivo aberto Max, mas quero saber como esse valor será definido e pode ser aumentado ou diminuído?

Este valor está definido em algum arquivo de configuração?

Eu tentei o comando ulimit , mas isso não é útil para definir o limite de um processo específico.

# ulimit -n 2048

Mas ainda estou vendo 1024 em

# cat /proc/<pid>/limits
..
Max open files            1024                 4096                 files
..

Eu sei que perguntas semelhantes são feitas, mas não consigo encontrar uma resposta melhor.

    
por Gaurav KS 27.04.2016 / 09:06

2 respostas

4

Se você tiver o pacote util-linux instalado, defina limites rígidos e flexíveis para um processo específico usando o comando prlimit . Para definir os limites máximo e flexível para o número máximo de arquivos abertos para 10 e 20, respectivamente, para um comando command , execute:

prlimit -n10:20 command

Argumentos para o comando também podem ser fornecidos:

prlimit -n10:20 command arg1 arg2 ...

Para mais informações, consulte man prlimit .

Nota: ao contrário de muitos outros comandos Unix, prlimit não permite espaço entre uma opção e seu argumento. Assim, -n10:20 funciona, mas -n 10:20 não.

    
por 27.04.2016 / 09:16
1

Se estamos falando de um daemon, você pode fornecer ulimt -n $your_number no script de inicialização. Se já é um processo em andamento e você não pode reiniciá-lo, use prlimit como proposto por John1024 .

    
por 23.08.2016 / 20:19