GNU/Linux >> Znalost Linux >  >> Linux

Nelze změnit maximální počet otevřených souborů na proces pomocí sysctl

Pro Ubuntu 17.04. Viz toto řešení.

Před Ubuntu 17.04:

Nevím, proč výše uvedená nastavení nefungují, ale zdá se, že stejného výsledku můžete získat pomocí /etc/security/limits.conf soubor.

Nastavte limit v /etc/security/limits.conf

sudo bash -c "echo '* - nofile 10240' >> /etc/security/limits.conf"
  • * znamená všechny uživatele. Můžete jej nahradit konkrétním uživatelským jménem.
  • - znamená obě soft a hard pro typ limitu, který má být vymáhán. Hard může být upraven pouze superuživatelem. Soft může být upraven uživatelem bez oprávnění root a nemůže být lepší než hard.
  • nofile je Maximální počet otevřených souborů parametr.
  • 10240 je nový limit.

Znovu načíst

Odhlaste se a znovu se přihlaste. sudo sysctl -p nezdá se, že by stačilo k opětovnému načtení.

Nový limit můžete zkontrolovat pomocí:

ulimit -n

Testováno na Ubuntu 16.04 a CentOS 6. Inspirováno touto odpovědí.


Pro MacO 10.14.6 a vyšší platí, pokud potřebujete dočasně zvýšit limit:

Zkontrolujte svůj aktuální limit:

ulimit -n

Moje byla 256

Změňte to:

ulimit -n 1024

Zkontrolujte to znovu na stejné kartě:

ulimit -n

Můj nyní ukazuje 1024.

Změna je okamžitá, není třeba se odhlašovat a znovu přihlašovat, ani otevírat novou kartu Terminál. To vyřešilo můj konkrétní problém.

Bohužel změna je dočasná. Později, když otevřete nové okno Terminálu, budete zpět se svou starou hodnotou a problémem.


Linux
  1. Proč následující způsob nezmění velikost základního souboru?

  2. Jak najít proces s maximálním počtem deskriptorů souborů?

  3. Jak zvýšit limit otevřených souborů v Ubuntu?

  1. Počítání otevřených souborů na proces

  2. Největší povolený maximální počet otevřených souborů v Linuxu

  3. Příliš mnoho otevřených souborů v Debianu

  1. Jak zvýšit limit počtu otevřených souborů v Linuxu

  2. Jak změnit příponu více souborů?

  3. Maximální hodnota ID procesu?