it-swarm-eu.dev

Jak mohu zvýšit limit otevřených souborů pro všechny procesy?

Mohu použít ulimit, ale myslím, že to ovlivní pouze moji Shell session. Chci zvýšit limit pro všechny procesy. Tohle je na Red Hat.

34
user5554

Justinova odpověď vám říká, jak zvýšit počet dostupných otevřených souborů celkem na celý systém. Ale myslím, že se ptáte, jak celosvětově zvýšit limit pro jednoho uživatele. Odpověď na to je přidat následující řádky do /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Pokud * znamená všechny uživatele.)

V samotném souboru a v man limits.conf Je nějaká souhrnná dokumentace. Toto je implementováno prostřednictvím modulu pam_limits.so, Který je vyžadován pro různé služby konfigurované v /etc/pam.d/.

A musím přiznat, že mám bez nápad, odkud vychází výchozí hodnota 1024. A věřte mi, podíval jsem se. Dokonce jsem to zkusil bez nakonfigurovaného modulu pam_limits a stále je tam. Někde to musí být pevně zakódováno, ale nejsem si úplně jistý, kde.

27
mattdm

Zvyšte maximální počet ulimit otevřených souborů v Linuxu

1.Step: otevřete sysctl.conf a přidejte tento řádek fs.file-max = 65536

$ vi /etc/sysctl.conf

přidat nový řádek a

fs.file-max = 65536

uložit a odejít.

2.Step:

$ vi /etc/security/limits.conf

a přidejte níže uvedené

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

uložit a ukončit kontrolu max. otevřeného souboru ulimit

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

Podle článku Linux zvyšuje maximální počet otevřených souborů/deskriptorů souborů (FD) , můžete zvýšit limit otevřených souborů přidáním položky do /etc/sysctl.conf.

Připojte konfigurační směrnici takto:

fs.file-max = 100000

Poté soubor uložte a zavřete. Uživatelé se musí odhlásit a znovu přihlásit, aby se změny projevily, nebo mohou pouze napsat následující příkaz:

# sysctl -p

Nastavení můžete také ověřit příkazem:

# cat /proc/sys/fs/file-max
14
Justin Ethier

Ale pokud se snažíte zvýšit maximální počet otevřených souborů služby , jako je MariaDB nebo něco jiného (pomocí systemd) musíte udělat přímo v souboru .service

/lib/systemd/system/<servicename>.service

Bude to něco takového:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

Úplná odpověď je zde: Zvyšování nproc pro procesy spuštěné systemd na CentOS 7

8

DOPLNĚNÍ:

Můžete najít config na jiném místě: /etc/security/limits.d/*.conf

Musel jsem to upravit. Bez ní by to nefungovalo. Formát je stejný jako u limits.conf

3
Waldemar Wosiński