Come impostare e comprendere fs.notify.max_user_watches


13

Non capisco il modo migliore per impostare fs.inotify.max_user_watchescon sysctl. In realtà, non capisco molto di ciò che sta accadendo qui oltre al fatto che ho bisogno di impostare il numero di file che possono essere guardati da un particolare processo.

Credo di poter vedere il numero massimo di utenti eseguendo questo comando:

cat /proc/sys/fs/inotify/max_user_watches

La mia comprensione è che alcune persone suggeriscono di cambiare /proc/sys/fs/inotify/max_user_watchesaprendosi /etc/sysctl.confin un editor e aggiungendo questo ad esso:

fs.inotify.max_user_watches=524288

Quindi eseguire sudo sysctl -pper - presumibilmente - elaborare le modifiche apportate al file.

Altri suggeriscono di eseguire comandi come questo:

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

So che -wsta per scrivere, ma cosa viene scritto e dove? È solo che questo comando cambia /proc/.../max_user_watches?

Quale dei due approcci descritti sopra è il migliore? Capisco che 524288 e 12288 sono numeri diversi, ma non capisco la differenza tra l'effetto della corsa -pe -w.

Risposte:


10

sysctl -wscrive i valori dei parametri del kernel nelle chiavi corrispondenti in /proc/sys:

sudo sysctl -w fs.inotify.max_user_watches=12288

scrive 12288a /proc/sys/fs/inotify/max_user_watches. (Non è equivalente, è esattamente questo; i lettori interessati possono stracevederlo da soli.)

sysctl -p

carica le impostazioni da un file, /etc/sysctl.conf(predefinito) o qualunque file sia specificato successivamente -p.

La differenza tra entrambi gli approcci, oltre alle diverse fonti dei parametri e dei valori che scrivono, è che -wcambia i parametri solo fino al prossimo riavvio, mentre i valori memorizzati /etc/sysctl.confverranno applicati nuovamente ogni volta che il sistema si avvia. Il mio approccio abituale è utilizzare -wper testare i valori, quindi una volta che sono sicuro che le nuove impostazioni siano OK, scriverle /etc/sysctl.confo un file in /etc/sysctl.d(di solito /etc/sysctl.d/local.conf).

Vedere le pagine del manuale sysctle sysctl.conf( man sysctle man sysctl.confsul proprio sistema) per i dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.