È sicuro aumentare quel valore e quali sarebbero le conseguenze di un valore troppo alto?
Sì, è sicuro aumentare quel valore e sotto ci sono i possibili costi [fonte]:
- Ogni usato inotify watch occupa 540 byte (sistema a 32 bit) o 1 kB (doppio - su 64 bit) [fonti:1, 2]
- Questo viene dalla memoria del kernel , che non è scambiabile.
- Supponendo che tu abbia impostato il massimo a 524288 e che tutti siano stati utilizzati (improbabile), utilizzeresti circa 256 MB/512 MB di memoria del kernel a 32 bit/64 bit.
- Tieni presente che la tua applicazione utilizzerà anche memoria aggiuntiva per tenere traccia degli handle di inotify, dei percorsi di file/directory, ecc. -- quanto dipende dal suo design.
Per controllare il numero massimo di inotify watch:
cat /proc/sys/fs/inotify/max_user_watches
Per impostare il numero massimo di inotify watch
Temporaneamente:
- Esegui
sudo sysctl fs.inotify.max_user_watches=
con il tuo valore preferito alla fine.
Permanentemente (informazioni più dettagliate):
- inserisci
fs.inotify.max_user_watches=524288
nelle impostazioni di sysctl. A seconda del tuo sistema, potrebbero trovarsi in uno dei seguenti posti:- Debian/RedHat:
/etc/sysctl.conf
- Arch:inserisce un nuovo file in
/etc/sysctl.d/
, per esempio./etc/sysctl.d/40-max-user-watches.conf
- Debian/RedHat:
- potresti voler ricaricare le impostazioni di sysctl per evitare un riavvio:
sysctl -p
(Debian/RedHat) osysctl --system
(Arco)
Controlla se è stato raggiunto il numero massimo di inotify watch:
Usa tail
con -f
(segui) opzione su qualsiasi vecchio file, ad es. tail -f /var/log/dmesg
:- Se tutto va bene, mostrerà le ultime 10 righe e farà una pausa; annulla con Ctrl-C- Se sei senza orologi , fallirà con questo errore un po' criptico:
tail: cannot watch '/var/log/dmsg': No space left on device
Per vedere cosa sta esaurendo inotify watch
find /proc/*/fd -lname anon_inode:inotify |
cut -d/ -f3 |
xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
uniq -c |
sort -nr
La prima colonna indica il numero di inotify fds (non il numero di watch però) e la seconda mostra il PID di quel processo [fonti:1, 2].