GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile aumentare il limite di file aperti oltre 4096 (Ubuntu)

Ok, finalmente l'ho capito. I limiti che stavo impostando in /etc/security/limits.conf venivano applicati, ma non venivano applicati al login grafico. Questo può essere verificato in questo modo da una finestra di terminale:

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

Ulteriori ricerche mi hanno portato a questa segnalazione di bug, che mi ha indirizzato nella giusta direzione. Per modificare il limite utilizzato dalla shell di login, dobbiamo aggiungere la seguente riga a /etc/systemd/user.conf :

DefaultLimitNOFILE=65535

Questa modifica funziona, ma influisce solo sul limite flessibile. (Lasciandoci ancora con un limite rigido di 4096.) Per influenzare anche il limite rigido, dobbiamo modificare /etc/systemd/system.conf con la stessa modifica.

Le modifiche apportate in /etc/pam.d non erano necessari. Almeno su Ubuntu, funziona già. Inoltre, non è stato necessario modificare le impostazioni per root e * in limits.conf. Modifica dei limiti per mkasberg era sufficiente, almeno per il mio caso d'uso.

In sintesi

Se vuoi aumentare il limite mostrato da ulimit -n , dovresti:

  • Modifica /etc/systemd/user.conf e /etc/systemd/system.conf con la riga seguente (questa si occupa del login grafico):

    DefaultLimitNOFILE=65535
    
  • Modifica /etc/security/limits.conf con le seguenti righe (questo si prende cura del login non-GUI):

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • Riavvia il computer per rendere effettive le modifiche.


Non è necessario modificare nulla nel /etc/security/limits.conf file, viene ignorato se si utilizza systemd.

(riproduce una risposta modificata a un'altra domanda sulla rete...)

Un'alternativa per coloro che preferiscono non modificare il /etc/systemd/system.conf predefinito e /etc/systemd/user/conf file:

  1. crea un nuovo file /etc/systemd/system.conf.d/limits.conf con questi contenuti:

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. eseguire systemctl daemon-reexec come root

  3. disconnettiti e accedi di nuovo

  4. controlla il tuo nuovo limite con ulimit -n .

Fare riferimento al systemd-system.conf manpage per i dettagli.


TL;DRI ha sentito il bisogno di concentrare le risposte, quindi sono più facili da trovare. Mi ci sono voluti anni per mettere insieme tutti i pezzi per farlo funzionare correttamente...

Ci sono 2 posizioni da considerare.

  1. Sessione GUI

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

    o meglio qui:

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. ambiente shell

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

    o meglio qui:

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. Dopo aver modificato le impostazioni nei file precedenti, riavvia e poi controlla i limiti con:ulimit -n -Hn -Sn


Linux
  1. Non riesco ad aprire le impostazioni di sistema in Ubuntu 17.10?

  2. Come aumentare le dimensioni dello scambio su Ubuntu Linux

  3. Come aumentare il limite di file aperti in Ubuntu?

  4. Come aumentare il limite di dimensione del download di file in Apache

  5. libaio.so.1:impossibile aprire il file oggetto condiviso

Come aprire file ISO su Ubuntu Linux

Come aumentare il limite del numero di file aperti in Linux

Come decomprimere (aprire) il file Gz

Come modificare il limite di file aperti in Linux

Come aprire il file manager di Ubuntu come utente root

ImportError:libtk8.6.so:impossibile aprire il file oggetto condiviso:file o directory non presenti