2016-06-30 2 views
2

Ich legte einen Java-Wrapper-Service in Linux rc.local-Datei. , wenn ich das System neu starten, starten Sie dann 200 Anforderung pro Sekunde, wird wie Ausnahmen steigen: enter image description hereLinux Java Wrapper Service, NoClassDefFoundError durch zu viele offene Dateien verursacht

Aber wenn ich den Dienst beenden und manuell geschieht beginnen keine Ausnahme.

I verwendet lsof | wc -l, Ergebniszähler nicht größer als 30000.

Was dieses Problem verursachen kann?

Einige Linux-Konfiguration wie:

[[email protected] ~]# ulimit -a 
core file size   (blocks, -c) 0 
data seg size   (kbytes, -d) unlimited 
scheduling priority    (-e) 0 
file size    (blocks, -f) unlimited 
pending signals     (-i) 63674 
max locked memory  (kbytes, -l) 64 
max memory size   (kbytes, -m) unlimited 
open files      (-n) 655350 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
real-time priority    (-r) 0 
stack size    (kbytes, -s) 10240 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 63674 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 

[[email protected] ~]# cat /proc/sys/fs/file-nr 
25632 0  1619324 
[[email protected] ~]# cat /proc/sys/fs/file-max 
1619324 

Antwort

0

ich die Ursache gefunden zu haben.

Die wirkliche Grenze ein Verfahren kann durch cat /proc/[PID]/limits

I geöffnete Dateien Limit konfigurieren kann in /etc/security/limits.conf und /etc/sysctl.conf finden. Ich kann konfigurierte Nummer von ulimit -a sehen, weil ich logined, finden wir limits.conf ist Config für das Modul pam_limits von "man", für Login-Sitzung. Wenn jedoch der Dienst in rc.local gestartet wird, wirkt sich das Modul pam_limits nicht aus.

Schließlich beschloss ich dieses Problem, indem ulimit Befehl in rc.local hinzufügen: ulimit -SHn 655350

+0

Ich weiß nicht, ist, dass eine gute Lösung. Gibt es noch andere Möglichkeiten? – xiaosunzhu

Verwandte Themen