o processo não está usando a nova configuração de arquivo aberto que eu configurei?

1

Eu tenho um processo que está sendo executado como golden user e estou tentando aumentar o limite de arquivos abertos para esse usuário, para que todo o processo iniciado por esse usuário use as configurações. Eu mudei os limites para o arquivo abaixo e as alterações não estão afetando:

/etc/security/limits.conf:

*       soft    nofile  65535
*       hard    nofile  100000

Eu modifiquei as configurações para todos os usuários alterando os limites de * curinga como mostrado acima. Agora eu iniciei meu processo como usuário dourado e executei o comando abaixo cat e vejo que ele está usando 8092 como arquivos abertos, por isso não sei por que minhas alterações não estão afetando.

golden@machineA:~$ cat /proc/1442/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             483036               483036               processes
Max open files            8092                 8092                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       483036               483036               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Estou usando a caixa do Ubuntu 14.04. Alguma ideia do que está errado aqui e como posso ter certeza de que todo o processo iniciado com golden user use a nova configuração de arquivo aberto? Eu acho que há algum lugar onde 8092 é codificado por causa do qual não está substituindo esse valor.

cat /proc/sys/fs/file-max
6145946
    
por david 09.09.2017 / 04:22

1 resposta

2

/etc/limits é uma configuração de tempo de login. Uma alteração ali se aplica quando um usuário efetua login, não quando um processo é iniciado. Não há configuração para a inicialização do processo. Um processo herda os limites de seu pai.

Observe que um processo pode sempre escolher reduzir seus limites. Se você iniciar uma sessão de login e confirmar os limites mais altos executando ulimit -a em um shell e executar o processo nesse shell , e os limites do processo ficarem mais baixos, isso significa que o processo é abaixando seus limites. Em caso afirmativo, você terá que explorar a configuração do programa para ver se você pode evitar que isso aconteça.

    
por 09.09.2017 / 17:22