GNU/Linux >> Znalost Linux >  >> Linux

Nelze zvýšit limit otevřených souborů nad 4096 (Ubuntu)

OK, konečně jsem na to přišel. Limity, které jsem nastavoval v /etc/security/limits.conf byly použity, ale nebyly aplikovány na grafické přihlášení. To lze ověřit takto z okna terminálu:

$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535

Další výzkum mě přivedl k této zprávě o chybě, která mě nasměrovala správným směrem. Abychom mohli upravit limit, který používá přihlašovací shell, musíme přidat následující řádek do /etc/systemd/user.conf :

DefaultLimitNOFILE=65535

Tato změna funguje, ale ovlivní pouze měkký limit. (Stále nás omezuje pevný limit 4096.) Abychom ovlivnili také pevný limit, musíme upravit /etc/systemd/system.conf se stejnou změnou.

Změny, které jsem provedl v /etc/pam.d nebyly nutné. Alespoň na Ubuntu to již funguje. Také nebylo nutné měnit nastavení pro root a * v limitech.conf. Změna limitů pro mkasberg bylo dostatečné, alespoň pro můj případ použití.

V souhrnu

Pokud chcete zvýšit limit zobrazený o ulimit -n , měli byste:

  • Upravte /etc/systemd/user.conf a /etc/systemd/system.conf s následujícím řádkem (ten se stará o grafické přihlášení):

    DefaultLimitNOFILE=65535
    
  • Upravte /etc/security/limits.conf s následujícími řádky (to se postará o přihlášení bez GUI):

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • Aby se změny projevily, restartujte počítač.


Není třeba nic měnit v /etc/security/limits.conf Pokud používáte systemd, je ignorován.

(reprodukuje se upravená odpověď na jinou otázku v síti...)

Alternativa pro ty, kteří nechtějí upravovat výchozí /etc/systemd/system.conf a /etc/systemd/user/conf soubory:

  1. vytvořte nový soubor /etc/systemd/system.conf.d/limits.conf s tímto obsahem:

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. spustit systemctl daemon-reexec jako root

  3. odhlaste se a znovu se přihlaste

  4. zkontrolujte svůj nový limit pomocí ulimit -n .

Viz systemd-system.conf manuálovou stránku pro podrobnosti.


TL;DRI cítil potřebu soustředit odpovědi, aby se daly snáze najít. Trvalo mi věky, než jsem dal všechny části dohromady, aby to fungovalo správně...

Je třeba zvážit 2 místa.

  1. Relace GUI

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    nebo lépe zde:

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. prostředí prostředí

    $ grep nofile /etc/security/limits.conf
    user soft nofile 65535
    user hard nofile 65535`
    

    nebo lépe zde:

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. Po změně nastavení ve výše uvedených souborech restartujte a poté zkontrolujte limity pomocí:ulimit -n -Hn -Sn


Linux
  1. Ubuntu – Jak otevřít soubor .bak na Linuxu?

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

  3. Jak zvýšit limit velikosti stahování souborů v Apache

  1. libaio.so.1:nelze otevřít soubor sdíleného objektu

  2. Programování Prolog v Ubuntu

  3. libpulse.so.0:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář

  1. ImportError:libtk8.6.so:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář

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

  3. nginx uLimit 'worker_connections překračují limit zdroje otevřeného souboru:1024'