Come impostare il valore ulimit in modo permanente?


19

Su Debian Wheezy, ulimit -adà:

open files                      (-n) 1024

Aggiungo questo a /etc/security/limits.conf

*                hard    nofile          64000

quindi riavviare.

E ulimit -afornisce ancora un numero massimo di file aperti di 1024. Qualcuno potrebbe farci luce?


è forse un host virtuale?
Dennis Nolte,

no, è un server mongodb
Icu

Risposte:


15

Opzione 1: non hai impostato anche il limite superiore più alto.

Possibile soluzione:

in /etc/security/limits.conf aggiungere

* soft nofile 2048

prova con

ulimit -n 2048 

Opzione due: si è effettuato l'accesso come utente e in alcuni file "config" (profilo, bashrc, qualcosa del genere) il limite software è impostato su un valore inferiore.

Possibile soluzione per greimit per ulimit nella cartella etc e / o home.

Avvertenza: a seconda della quantità di file / directory presenti, è possibile prendere in considerazione solo directory / file specifici

ps: ci sono molte domande simili qui che potresti voler leggere.

Limite specialmente duro vs morbido

Leggi qui per altre possibili soluzioni che vanno più nel dettaglio Troppi file aperti


In realtà, stavo cercando di impostare solo il limite hard su 64000. Quindi il limite soft era ancora su 1024. Ora ho provato a impostare un limite soft su 64000 + hard = 72000. Ma non ha funzionato. Ho provato anche "* - nofile 64000" e ottengo lo stesso risultato.
Icu,

Dopo aver letto "Troppi file aperti", ho pensato che un'impostazione del kernel avrebbe sovrascritto le impostazioni limits.conf ma: "fs.file-max = 4933738"
Icu

@Icu prova anche le risposte da questo: serverfault.com/questions/93234/… potrebbe essere correlato alla tua shell
Dennis Nolte

Ho aggiunto 'session required pam_limits.so' a /etc/pam.d/other e common-session ma non aiuta ... In alternativa, ho aggiunto un 'ulimit -n' al mio script init e funziona ma mi chiedo perché non riesco a ottenere i valori corretti nella mia shell.
Icu,

20

C'è un bug in Debian. Per aumentare ulimitè necessario aggiungere questo nel /etc/pam.d/common-sessionfile:

session required pam_limits.so

e in /etc/security/limits.confaggiunta:

*               soft    nofile          65535
*               hard    nofile          65535

Quindi riavviare il sistema.


1
non è necessario che io apporti alcuna modifica al /etc/pam.d/common-sessionfile. ha funzionato solo aggiungendo le altre due righe al limits.conffile :-)
Francesco Casula

Non dovresti aver bisogno di riavviare.
David Goodwin,

Questo è brutale. Su debian 7 ora, e questo non funziona. Non sono sicuro di cosa fare :( - Potrei aprire una nuova domanda
NiCk Newman,

12
Boom. *il carattere jolly non funziona per root. Ho aggiunto rootinvece *e funziona. Grazie!
NiCk Newman,

@FrancescoCasula - quale versione di Debian era quella?
Sto

0

Nel mio caso di Apache su Debian 10 quanto sopra non è stato d'aiuto, sebbene funzionasse:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

Ho verificato con:

cat /proc/$pid/limits

..where $pidè l'ID processo di uno dei processi Apache.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.