it-swarm.it

Come posso aumentare il limite di file aperti per tutti i processi?

Posso usare ulimit ma penso che influisca solo sulla mia sessione Shell. Voglio che il limite sia aumentato per tutti i processi. Questo è su Red Hat.

34
user5554

La risposta di Justin spiega come aumentare il numero di file aperti disponibili totale all'intero sistema. Ma penso che stai chiedendo come aumentare il limite per utente, a livello globale. La risposta è aggiungere le seguenti righe a /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Dove * indica tutti gli utenti.)

C'è un po 'di documentazione di riepilogo nel file stesso e in man limits.conf. Questo è implementato tramite il pam_limits.so modulo chiamato per vari servizi configurati in /etc/pam.d/.

E, devo ammetterlo, ho nessuna idea da dove proviene quel default 1024. E credimi, ho guardato. Ho anche provato senza il modulo pam_limits configurato ed è ancora lì. Deve essere codificato da qualche parte, ma non sono esattamente sicuro di dove.

27
mattdm

Aumenta il numero massimo di file aperti ulimit in Linux

1.Passo: apri il sysctl.conf e aggiungi questa riga fs.file-max = 65536

$ vi /etc/sysctl.conf

aggiungi nuova riga e

fs.file-max = 65536

salva ed esci.

2.Step:

$ vi /etc/security/limits.conf

e aggiungi sotto il menzionato

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

salva ed esci verifica max file aperto ulimit

# ulimit -a

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

Secondo l'articolo Linux Aumenta il numero massimo di file aperti/descrittori di file (FD) , puoi aumentare il limite di file aperti aggiungendo una voce a /etc/sysctl.conf.

Aggiungere una direttiva di configurazione come segue:

fs.file-max = 100000

Quindi salva e chiudi il file. Gli utenti devono disconnettersi e riconnettersi per rendere effettive le modifiche oppure possono semplicemente digitare il comando seguente:

# sysctl -p

Puoi anche verificare le tue impostazioni con il comando:

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

Ma se stai cercando di aumentare il numero massimo di file aperti di un servizio come MariaDB o qualcos'altro (usando systemd) devi fare direttamente nel file .service

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

Sarà qualcosa del genere:

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

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

[Install]
WantedBy=multi-user.target

La risposta completa è qui: Aumento di nproc per i processi avviati da systemd su CentOS 7

8

Suplement:

È possibile trovare la configurazione in un altro posto: /etc/security/limits.d/*.conf

Ho dovuto modificarlo. Non ha funzionato senza di essa. Il formato è lo stesso di limits.conf

3