Como definir e entender fs.notify.max_user_watches

5

Eu não entendo a melhor maneira de definir fs.inotify.max_user_watches com sysctl . Na verdade, não entendo muito do que está acontecendo aqui além do fato de que preciso definir o número de arquivos que podem ser observados por um processo específico.

Acredito que posso ver o número máximo de usuários executando este comando:

cat /proc/sys/fs/inotify/max_user_watches

Meu entendimento é que algumas pessoas sugerem alterar /proc/sys/fs/inotify/max_user_watches abrindo /etc/sysctl.conf em um editor e adicionando isso a ele:

fs.inotify.max_user_watches=524288

Em seguida, execute sudo sysctl -p para - presumivelmente - processar as alterações feitas no arquivo.

Outros sugerem a execução de comandos como este:

sudo sysctl -w fs.inotify.max_user_instances=1024
sudo sysctl -w fs.inotify.max_user_watches=12288

Eu sei que -w significa escrever, mas o que está sendo escrito e onde? É só que esse comando muda /proc/.../max_user_watches ?

Qual das duas abordagens descritas acima é a melhor? Eu entendo que 524288 e 12288 são números diferentes, mas eu não entendo a diferença entre o efeito da execução de -p e -w .

    
por ccalvert 20.05.2018 / 19:17

1 resposta

6

sysctl -w escreve os valores dos parâmetros do kernel nas chaves correspondentes em /proc/sys :

sudo sysctl -w fs.inotify.max_user_watches=12288

escreve 12288 para /proc/sys/fs/inotify/max_user_watches . (Não é equivalente, é exatamente isso; os leitores interessados podem strace para ver por si mesmos.)

sysctl -p

carrega as configurações de um arquivo, seja /etc/sysctl.conf (o padrão) ou qualquer arquivo especificado após -p .

A diferença entre as duas abordagens, além das diferentes origens dos parâmetros e valores que escrevem, é que -w apenas altera os parâmetros até a próxima reinicialização, enquanto os valores armazenados em /etc/sysctl.conf serão aplicados novamente toda vez que o sistema chuteiras. Minha abordagem usual é usar -w para testar os valores. Depois que tiver certeza de que as novas configurações estão corretas, grave-as em /etc/sysctl.conf ou em /etc/sysctl.d (geralmente /etc/sysctl.d/local.conf ).

Veja o sysctl e sysctl.conf páginas de manual ( man sysctl e man sysctl.conf no seu sistema) para detalhes.

    
por 20.05.2018 / 20:44

Tags