“Too many open files” in ambiente Unix/Linux

Se la vostra applicazione java mentre è in esecuzione in ambiente Linux/Unix e rilancia questa eccezione:

java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)

Non disperate, questo errore è  comune in applicazioni che sotto carico tendono ad aprire troppi file o socket. Questo potrebbe non essere un problema applicativo, ma un comportamento atteso, come nel caso di applicazioni web con molti accessi contemporanei.

Per verificare quanti file in contemporanea potete aprire scivete:

ulimit -n

e apparirà il numero dei file che è possibile aprire in contemporaneamente, solitamente dovrebbe apparire 1024.

Per risolvere questo problema dovete aprire in edit il file:

etc/security/limits.conf

Ed aggiungere alla fine una riga simile alla seguente:

USERNAME – nofile 10240

Dove USERNAME è il nome dell’utente per il quale volete aumentare il numero di file che può apire ed il valore che desiderate impostare, in questo esempio ho messo 10240, ma potete mettere quello che desiderate.

Per verificare che il cambiamento sia stato effettuato rieseguite il comando ulimit -n e dovreste vedere apparire il valore da voi inserito.

Annunci

~ di jesty su marzo 11, 2008.

2 Risposte to ““Too many open files” in ambiente Unix/Linux”

  1. Ciao,
    ho appena fatto
    sudo gedit /etc/security/limits.conf
    e ho visto che c’è già un sacco di codice commento.
    Ho aggiunto
    “usr – nofile 10240”
    salvato il file.
    Ma, da terminale ricevo questo:
    ale@Ale:~$ ulimit -n
    1024
    ale@Ale:~$

    Quindi non è cambiato un bel niente.
    Perchè?

  2. Sei sicuro della sintassi?
    Per me è da scrivere solo
    “usr nofile 10240”

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: