Non riesco a capire cosa sia esattamente necessario per consentire a tutti gli utenti di aumentare in modo permanente il numero massimo di descrittori di file.
/etc/security/limits.conf
:
root hard nofile 1500000
root soft nofile 1000000
root hard nproc 15000
root soft nproc 10000
* hard nofile 1500000
* soft nofile 1000000
* hard nproc 15000
* soft nproc 10000
Ho inserito quanto segue in /etc/pam.d/common-session
:
session required pam_limits.so
Dopo un riavvio, accedere come qualsiasi utente ed emettere ulimit -n
ha prodotto 1024
.
Successivamente, ho provato a richiedere pam_limits.so
in ogni file in /etc/pam.d
. Riavviato. Effettuato l'accesso. Nessuna tale fortuna.
Se eseguo il comando ulimit -n 1000000
, quindi controlla che il limite sia impostato come previsto. Quindi, ho inserito @reboot ulimit -n 1000000
in crontab -e
. Riavviato. Effettuato l'accesso. Nessuna fortuna.
Ho controllato /etc/ssh/sshd_config
e PAM è abilitato.
Ho provato a impostare i limiti ad ogni riavvio con:
/sbin/sysctl -w fs.file-max=1000000
/sbin/sysctl -p
Nessuna fortuna.
Ho un server che ha un sacco di traffico simultaneo e ho bisogno di quei limiti così alti, perché il server impiega molto tempo per cancellare i descrittori di file. Cosa devo fare per aumentare in modo permanente il limite del descrittore di file?
Risposta accettata:
Ho aumentato il numero di limiti di file per tutti in questo modo (segmento da /etc/security/limits.conf
):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files (Doug: - so Samba will not complain)
* - nofile 16384
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
Era su un server 12.04. Tuttavia, ho testato 100000 sul mio server 14.04 e ha funzionato bene. (Modifica:verificato anche il 20.04)
~/config/security$ ulimit -n
16384
EDIT:per la maggior parte delle applicazioni è sufficiente, ma non cambia il valore predefinito per root:
# ulimit -n
1024
Se anche il numero deve essere modificato per root, allora (2020.09.04 – ora uso 131.072):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open file descriptors
* - nofile 131072
root - nofile 131072
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
E così:
$ sudo su
# ulimit -n
131072