GNU/Linux >> Znalost Linux >  >> Linux

Byl dosažen limit sledování jádra inotify

Je bezpečné zvýšit tuto hodnotu a jaké by byly důsledky příliš vysoké hodnoty?

Ano, je bezpečné tuto hodnotu zvýšit a níže jsou možné náklady [zdroj]:

  • Každý použitý hodinky inotify zabírají 540 bajtů (32bitový systém) nebo 1 kB (dvojitý - na 64bitovém) [zdroje:1, 2]
  • To vychází z paměti jádra , který je nezaměnitelný.
  • Za předpokladu, že nastavíte maximum na 524288 a všechny byly použity (nepravděpodobné), použili byste přibližně 256 MB/512 MB paměti 32bitového/64bitového jádra.
    • Všimněte si, že vaše aplikace bude také využívat další paměť ke sledování popisovačů inotify, cest k souborům/adresářům atd. – kolik závisí na jejím návrhu.

Chcete-li zkontrolovat maximální počet hodinek inotify:

cat /proc/sys/fs/inotify/max_user_watches

Nastavení maximálního počtu hodinek inotify

Dočasně:

  • Spusťte sudo sysctl fs.inotify.max_user_watches= s vámi preferovanou hodnotou na konci.

Trvale (podrobnější informace):

  • zadejte fs.inotify.max_user_watches=524288 do nastavení sysctl. V závislosti na vašem systému mohou být na jednom z následujících míst:
    • Debian/RedHat:/etc/sysctl.conf
    • Arch:vložte nový soubor do /etc/sysctl.d/ , např. /etc/sysctl.d/40-max-user-watches.conf
  • možná budete chtít znovu načíst nastavení sysctl, abyste se vyhnuli restartování:sysctl -p (Debian/RedHat) nebo sysctl --system (oblouk)

Zkontrolujte, zda bylo dosaženo maximálního počtu hodinek inotify:

Použijte tail s -f (sledovat) volbu na libovolném starém souboru, např. tail -f /var/log/dmesg :- Pokud je vše v pořádku, zobrazí se posledních 10 řádků a pauza; přerušit pomocí Ctrl-C- Pokud jste mimo hodinky , selže s touto poněkud záhadnou chybou:

tail: cannot watch '/var/log/dmsg': No space left on device

Chcete-li zjistit, co spotřebovává hodinky, inotify

find /proc/*/fd -lname anon_inode:inotify |
   cut -d/ -f3 |
   xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
   uniq -c |
   sort -nr

První sloupec udává počet inotify fds (nikoli však počet sledování) a druhý ukazuje PID tohoto procesu [zdroje:1, 2].


Linux
  1. "Panika jádra"?

  2. Limit paměti PHP

  3. Limit linky Shebang v bash a linuxovém jádře

  1. Trasování jádra pomocí trace-cmd

  2. Prostředí hackování jádra

  3. Popis hodnot kernel.printk

  1. Linux – Kernel:Podpora jmenných prostorů?

  2. Linux – Kernel IP Forwarding?

  3. Linux – poskvrněné jádro v Linuxu?